@libp2p/peer-store 11.0.8 → 11.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -3,7 +3,7 @@
3
3
  `).map(s=>` ${s}`).join(`
4
4
  `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
5
5
  ${t.join(`
6
- `)}`:`${e} :`}};Ja=Se;A.Constructed=Ja;Se.NAME="CONSTRUCTED";var Ln=class extends yt{fromBER(t,e,n){return e}toBER(t){return Ft}};Ln.override="EndOfContentValueBlock";var Xa,Un=class extends dt{constructor(t={}){super(t,Ln),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Xa=Un;A.EndOfContent=Xa;Un.NAME=Rr;var Qa,nr=class extends dt{constructor(t={}){super(t,yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Qa=nr;A.Null=Qa;nr.NAME="NULL";var Rn=class extends ce(yt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=M.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=M.BufferSourceConverter.toUint8Array(t);return ae(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,$i.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Rn.NAME="BooleanValueBlock";var tc,_n=class extends dt{constructor(t={}){super(t,Rn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};tc=_n;A.Boolean=tc;_n.NAME="BOOLEAN";var Vn=class extends ce(Gt){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==Wa)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?Gt.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Vn.NAME="OctetStringValueBlock";var ec,Pn=class r extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Vn),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let i=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(i.byteLength){let o=us(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Se.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${M.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return M.BufferSourceConverter.concat(t)}};ec=Pn;A.OctetString=ec;Pn.NAME=Wa;var On=class extends ce(Gt){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Za)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let f=a.valueBlock;if(this.unusedBits>0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return s}let i=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,i,e,n))return-1;let o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=us(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return Gt.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Ft;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};On.NAME="BitStringValueBlock";var rc,sr=class extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},On),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Se.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};rc=sr;A.BitString=rc;sr.NAME=Za;var nc;function Th(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f=0,l=c<o?o:c,u=0;for(let h=l;h>=0;h--,u++){switch(!0){case u<a.length:f=i[o-u]+a[c-u]+e[0];break;default:f=i[o-u]+e[0]}switch(e[0]=f/10,!0){case u>=i.length:i=An(new Uint8Array([f%10]),i);break;default:i[o-u]=f%10}}return e[0]>0&&(i=An(e,i)),i}function Ga(r){if(r>=Lr.length)for(let t=Lr.length;t<=r;t++){let e=new Uint8Array([0]),n=Lr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=i[0]/10,n[s]=i[0]%10}e[0]>0&&(n=An(e,n)),Lr.push(n)}return Lr[r]}function Ch(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f,l=0;for(let u=c;u>=0;u--,l++)switch(f=i[o-l]-a[c-l]-e,!0){case f<0:e=1,i[o-l]=f+10;break;default:e=0,i[o-l]=f}if(e>0)for(let u=o-c+1;u>=0;u--,l++)if(f=i[o-l]-e,f<0)e=1,i[o-l]=f+10;else{e=0,i[o-l]=f;break}return i.slice()}var _r=class extends ce(yt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=$i.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(qa(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let i=this.fromBER(t,e,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let f=0;f<8;f++){if((s&1)===1)switch(n){case t:e=Ch(Ga(n),e),o="-";break;default:e=Th(e,Ga(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(o+=za.charAt(e[c]));return a===!1&&(o+=za.charAt(0)),o}};nc=_r;_r.NAME="IntegerValueBlock";Object.defineProperty(nc.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var sc,pt=class r extends dt{constructor(t={}){super(t,_r),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Sn(),BigInt(this.valueBlock.toString())}static fromBigInt(t){Sn();let e=BigInt(t),n=new Ur,s=e.toString(16).replace(/^-/,""),i=new Uint8Array(M.Convert.FromHex(s));if(e<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${M.Convert.ToHex(a)}`)+e,l=M.BufferSourceConverter.toUint8Array(M.Convert.FromHex(f.toString(16)));l[0]|=128,n.write(l)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};sc=pt;A.Integer=sc;pt.NAME="INTEGER";var ic,Dn=class extends pt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};ic=Dn;A.Enumerated=ic;Dn.NAME="ENUMERATED";var Vr=class extends ce(yt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){Sn();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Ae(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let t="";if(this.isHexOnly)t=M.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Vr.NAME="sidBlock";var Mn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Vr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Ft;e.push(s)}return zi(e)}fromString(t){this.value=[];let e=0,n=0,s="",i=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new Vr;if(s>Number.MAX_SAFE_INTEGER){Sn();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Mn.NAME="ObjectIdentifierValueBlock";var oc,ir=class extends dt{constructor(t={}){super(t,Mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};oc=ir;A.ObjectIdentifier=oc;ir.NAME="OBJECT IDENTIFIER";var Pr=class extends ce(se){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Ae(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let t="";return this.isHexOnly?t=M.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Pr.NAME="relativeSidBlock";var Hn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Pr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(t);if(i.byteLength===0)return this.error=this.value[s].error,Ft;n.push(i)}return zi(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let i=new Pr;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Hn.NAME="RelativeObjectIdentifierValueBlock";var ac,Fn=class extends dt{constructor(t={}){super(t,Hn),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ac=Fn;A.RelativeObjectIdentifier=ac;Fn.NAME="RelativeObjectIdentifier";var cc,ie=class extends Se{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};cc=ie;A.Sequence=cc;ie.NAME="SEQUENCE";var lc,Kn=class extends Se{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};lc=Kn;A.Set=lc;Kn.NAME="SET";var qn=class extends ce(yt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=or}toJSON(){return{...super.toJSON(),value:this.value}}};qn.NAME="StringValueBlock";var $n=class extends qn{};$n.NAME="SimpleStringValueBlock";var At=class extends Tn{constructor({...t}={}){super(t,$n)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};At.NAME="SIMPLE STRING";var zn=class extends At{fromBuffer(t){this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=M.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=M.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf8String(t)),this.valueBlock.value=t}};zn.NAME="Utf8StringValueBlock";var uc,oe=class extends zn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};uc=oe;A.Utf8String=uc;oe.NAME="UTF8String";var Gn=class extends At{fromBuffer(t){this.valueBlock.value=M.Convert.ToUtf16String(t),this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf16String(t))}};Gn.NAME="BmpStringValueBlock";var fc,Wn=class extends Gn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};fc=Wn;A.BmpString=fc;Wn.NAME="BMPString";var Zn=class extends At{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let i=Ae(t.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=t}};Zn.NAME="UniversalStringValueBlock";var hc,jn=class extends Zn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};hc=jn;A.UniversalString=hc;jn.NAME="UniversalString";var dc,Yn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};dc=Yn;A.NumericString=dc;Yn.NAME="NumericString";var pc,Jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};pc=Jn;A.PrintableString=pc;Jn.NAME="PrintableString";var mc,Xn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};mc=Xn;A.TeletexString=mc;Xn.NAME="TeletexString";var gc,Qn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};gc=Qn;A.VideotexString=gc;Qn.NAME="VideotexString";var yc,ts=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};yc=ts;A.IA5String=yc;ts.NAME="IA5String";var bc,es=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};bc=es;A.GraphicString=bc;es.NAME="GraphicString";var wc,Or=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};wc=Or;A.VisibleString=wc;Or.NAME="VisibleString";var xc,rs=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};xc=rs;A.GeneralString=xc;rs.NAME="GeneralString";var vc,ns=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};vc=ns;A.CharacterString=vc;ns.NAME="CharacterString";var Ec,Dr=class extends Or{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Lt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Lt(this.month,2),e[2]=Lt(this.day,2),e[3]=Lt(this.hour,2),e[4]=Lt(this.minute,2),e[5]=Lt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Ec=Dr;A.UTCTime=Ec;Dr.NAME="UTCTime";var Bc,ss=class extends Dr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",i=0,o,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),u=-1),h!==-1){if(g=n.substring(h+1),n=n.substring(0,h),g.length!==2&&g.length!==4)throw new Error("Wrong input string for conversion");let x=parseInt(g.substring(0,2),10);if(isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*x,g.length===4){if(x=parseInt(g.substring(2,4),10),isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");c=u*x}}}let f=n.indexOf(".");if(f===-1&&(f=n.indexOf(",")),f!==-1){let u=new Number(`0${n.substring(f)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,f)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let l=o.exec(s);if(l===null)throw new Error("Wrong input string for conversion");for(let u=1;u<l.length;u++)switch(u){case 1:this.year=parseInt(l[u],10);break;case 2:this.month=parseInt(l[u],10);break;case 3:this.day=parseInt(l[u],10);break;case 4:this.hour=parseInt(l[u],10)+a;break;case 5:this.minute=parseInt(l[u],10)+c;break;case 6:this.second=parseInt(l[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Lt(this.year,4)),e.push(Lt(this.month,2)),e.push(Lt(this.day,2)),e.push(Lt(this.hour,2)),e.push(Lt(this.minute,2)),e.push(Lt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Lt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Bc=ss;A.GeneralizedTime=Bc;ss.NAME="GeneralizedTime";var Ac,is=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ac=is;A.DATE=Ac;is.NAME="DATE";var Sc,os=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Sc=os;A.TimeOfDay=Sc;os.NAME="TimeOfDay";var kc,as=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};kc=as;A.DateTime=kc;as.NAME="DateTime";var Ic,cs=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ic=cs;A.Duration=Ic;cs.NAME="Duration";var Tc,ls=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Tc=ls;A.TIME=Tc;ls.NAME="TIME";function q(r,t="utf8"){let e=wn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Mr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},fs=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Cc={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new fs("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var ke=Cc;async function Nc(r){let t=await ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Lh(t);return{privateKey:e[0],publicKey:e[1]}}async function Lc(r,t){let e=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function Uc(r,t,e){let n=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Lh(r){if(r.privateKey==null||r.publicKey==null)throw new K("Private and public key are required");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}function Zi(r){if(r.kty!=="RSA")throw new K("invalid key type");if(r.n==null)throw new K("invalid key modulus");return j(r.n,"base64url").length*8}var ar=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return it.createV1(114,this._multihash)}toString(){return Y.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Uc(this._key,e,t)}},Fr=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return Lc(this._key,t)}};var hs=8192,ji=18;function Rc(r){let{result:t}=Wi(r),e=t.valueBlock.value;return{n:q(Wt(e[1].toBigInt()),"base64url"),e:q(Wt(e[2].toBigInt()),"base64url"),d:q(Wt(e[3].toBigInt()),"base64url"),p:q(Wt(e[4].toBigInt()),"base64url"),q:q(Wt(e[5].toBigInt()),"base64url"),dp:q(Wt(e[6].toBigInt()),"base64url"),dq:q(Wt(e[7].toBigInt()),"base64url"),qi:q(Wt(e[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function Uh(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new K("JWK was missing components");let e=new ie({value:[new pt({value:0}),pt.fromBigInt(Zt(j(r.n,"base64url"))),pt.fromBigInt(Zt(j(r.e,"base64url"))),pt.fromBigInt(Zt(j(r.d,"base64url"))),pt.fromBigInt(Zt(j(r.p,"base64url"))),pt.fromBigInt(Zt(j(r.q,"base64url"))),pt.fromBigInt(Zt(j(r.dp,"base64url"))),pt.fromBigInt(Zt(j(r.dq,"base64url"))),pt.fromBigInt(Zt(j(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function _c(r){let{result:t}=Wi(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:q(Wt(e[0].toBigInt()),"base64url"),e:q(Wt(e[1].toBigInt()),"base64url")}}function Yi(r){if(r.n==null||r.e==null)throw new K("JWK was missing components");let e=new ie({value:[new ie({value:[new ir({value:"1.2.840.113549.1.1.1"}),new nr]}),new sr({valueHex:new ie({value:[pt.fromBigInt(Zt(j(r.n,"base64url"))),pt.fromBigInt(Zt(j(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Wt(r){let t=r.toString(16);t.length%2>0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,i=0;for(;s<e;)n[s]=parseInt(t.slice(i,i+2),16),s+=1,i+=2;return n}function Zt(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Vc(r){let t=Rc(r);return Pc(t)}function Ji(r){let t=_c(r);if(Zi(t)>hs)throw new $e("Key size is too large");let e=er(zt.encode({Type:at.RSA,Data:r})),n=Pt(ji,e);return new ar(t,n)}function Pc(r){if(Zi(r)>hs)throw new K("Key size is too large");let t=Dc(r),e=er(zt.encode({Type:at.RSA,Data:Yi(t.publicKey)})),n=Pt(ji,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}async function Oc(r){if(r>hs)throw new K("Key size is too large");let t=await Nc(r),e=er(zt.encode({Type:at.RSA,Data:Yi(t.publicKey)})),n=Pt(ji,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}function Dc(r){if(r==null)throw new K("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var ds=class extends Je{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,aa(t);let n=Er(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Ye(this),this.iHash.update(t),this}digestInto(t){Ye(this),je(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Xi=(r,t,e)=>new ds(r,t).update(e).digest();Xi.create=(r,t)=>new ds(r,t);function Mc(r){r.lowS!==void 0&&Dt("lowS",r.lowS),r.prehash!==void 0&&Dt("prehash",r.prehash)}function Rh(r){let t=Sr(r);Kt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:_h,hexToBytes:Vh}=fn,le={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=le;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Le(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let i=n>127?Le(s.length/2|128):"";return`${Le(r)}${i}${s}${t}`},decode(r,t){let{Err:e}=le,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let l of f)o=o<<8|l;if(n+=c,o<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+o);if(a.length!==o)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+o)}}},_int:{encode(r){let{Err:t}=le;if(r<ue)throw new t("integer: negative integers are not allowed");let e=Le(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=le;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return _h(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=le,s=typeof r=="string"?Vh(r):r;Qe(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:f,l}=n.decode(2,c);if(l.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=le,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},ue=BigInt(0),ft=BigInt(1),Nm=BigInt(2),Hc=BigInt(3),Lm=BigInt(4);function Ph(r){let t=Rh(r),{Fp:e}=t,n=xe(t.n,t.nBitLength),s=t.toBytes||((b,d,w)=>{let B=d.toAffine();return re(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),i=t.fromBytes||(b=>{let d=b.subarray(1),w=e.fromBytes(d.subarray(0,e.BYTES)),B=e.fromBytes(d.subarray(e.BYTES,2*e.BYTES));return{x:w,y:B}});function o(b){let{a:d,b:w}=t,B=e.sqr(b),m=e.mul(B,b);return e.add(e.add(m,e.mul(b,d)),w)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(b){return Br(b,ft,t.n)}function c(b){let{allowedPrivateKeyLengths:d,nByteLength:w,wrapPrivateKey:B,n:m}=t;if(d&&typeof b!="bigint"){if(ye(b)&&(b=te(b)),typeof b!="string"||!d.includes(b.length))throw new Error("Invalid key");b=b.padStart(w*2,"0")}let S;try{S=typeof b=="bigint"?b:ee(tt("private key",b,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof b}`)}return B&&(S=G(S,m)),It("private key",S,ft,m),S}function f(b){if(!(b instanceof h))throw new Error("ProjectivePoint expected")}let l=_e((b,d)=>{let{px:w,py:B,pz:m}=b;if(e.eql(m,e.ONE))return{x:w,y:B};let S=b.is0();d==null&&(d=S?e.ONE:e.inv(m));let U=e.mul(w,d),L=e.mul(B,d),k=e.mul(m,d);if(S)return{x:e.ZERO,y:e.ZERO};if(!e.eql(k,e.ONE))throw new Error("invZ was invalid");return{x:U,y:L}}),u=_e(b=>{if(b.is0()){if(t.allowInfinityPoint&&!e.is0(b.py))return;throw new Error("bad point: ZERO")}let{x:d,y:w}=b.toAffine();if(!e.isValid(d)||!e.isValid(w))throw new Error("bad point: x or y not FE");let B=e.sqr(w),m=o(d);if(!e.eql(B,m))throw new Error("bad point: equation left != right");if(!b.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class h{constructor(d,w,B){if(this.px=d,this.py=w,this.pz=B,d==null||!e.isValid(d))throw new Error("x required");if(w==null||!e.isValid(w))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required");Object.freeze(this)}static fromAffine(d){let{x:w,y:B}=d||{};if(!d||!e.isValid(w)||!e.isValid(B))throw new Error("invalid affine point");if(d instanceof h)throw new Error("projective point not allowed");let m=S=>e.eql(S,e.ZERO);return m(w)&&m(B)?h.ZERO:new h(w,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let w=e.invertBatch(d.map(B=>B.pz));return d.map((B,m)=>B.toAffine(w[m])).map(h.fromAffine)}static fromHex(d){let w=h.fromAffine(i(tt("pointHex",d)));return w.assertValidity(),w}static fromPrivateKey(d){return h.BASE.multiply(c(d))}static msm(d,w){return pn(h,n,d,w)}_setWindowSize(d){x.setWindowSize(this,d)}assertValidity(){u(this)}hasEvenY(){let{y:d}=this.toAffine();if(e.isOdd)return!e.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){f(d);let{px:w,py:B,pz:m}=this,{px:S,py:U,pz:L}=d,k=e.eql(e.mul(w,L),e.mul(S,m)),I=e.eql(e.mul(B,L),e.mul(U,m));return k&&I}negate(){return new h(this.px,e.neg(this.py),this.pz)}double(){let{a:d,b:w}=t,B=e.mul(w,Hc),{px:m,py:S,pz:U}=this,L=e.ZERO,k=e.ZERO,I=e.ZERO,N=e.mul(m,m),rt=e.mul(S,S),F=e.mul(U,U),P=e.mul(m,S);return P=e.add(P,P),I=e.mul(m,U),I=e.add(I,I),L=e.mul(d,I),k=e.mul(B,F),k=e.add(L,k),L=e.sub(rt,k),k=e.add(rt,k),k=e.mul(L,k),L=e.mul(P,L),I=e.mul(B,I),F=e.mul(d,F),P=e.sub(N,F),P=e.mul(d,P),P=e.add(P,I),I=e.add(N,N),N=e.add(I,N),N=e.add(N,F),N=e.mul(N,P),k=e.add(k,N),F=e.mul(S,U),F=e.add(F,F),N=e.mul(F,P),L=e.sub(L,N),I=e.mul(F,rt),I=e.add(I,I),I=e.add(I,I),new h(L,k,I)}add(d){f(d);let{px:w,py:B,pz:m}=this,{px:S,py:U,pz:L}=d,k=e.ZERO,I=e.ZERO,N=e.ZERO,rt=t.a,F=e.mul(t.b,Hc),P=e.mul(w,S),nt=e.mul(B,U),E=e.mul(m,L),T=e.add(w,B),y=e.add(S,U);T=e.mul(T,y),y=e.add(P,nt),T=e.sub(T,y),y=e.add(w,m);let p=e.add(S,L);return y=e.mul(y,p),p=e.add(P,E),y=e.sub(y,p),p=e.add(B,m),k=e.add(U,L),p=e.mul(p,k),k=e.add(nt,E),p=e.sub(p,k),N=e.mul(rt,y),k=e.mul(F,E),N=e.add(k,N),k=e.sub(nt,N),N=e.add(nt,N),I=e.mul(k,N),nt=e.add(P,P),nt=e.add(nt,P),E=e.mul(rt,E),y=e.mul(F,y),nt=e.add(nt,E),E=e.sub(P,E),E=e.mul(rt,E),y=e.add(y,E),P=e.mul(nt,y),I=e.add(I,P),P=e.mul(p,y),k=e.mul(T,k),k=e.sub(k,P),P=e.mul(T,nt),N=e.mul(p,N),N=e.add(N,P),new h(k,I,N)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return x.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){It("scalar",d,ue,t.n);let w=h.ZERO;if(d===ue)return w;if(d===ft)return this;let{endo:B}=t;if(!B)return x.unsafeLadder(this,d);let{k1neg:m,k1:S,k2neg:U,k2:L}=B.splitScalar(d),k=w,I=w,N=this;for(;S>ue||L>ue;)S&ft&&(k=k.add(N)),L&ft&&(I=I.add(N)),N=N.double(),S>>=ft,L>>=ft;return m&&(k=k.negate()),U&&(I=I.negate()),I=new h(e.mul(I.px,B.beta),I.py,I.pz),k.add(I)}multiply(d){let{endo:w,n:B}=t;It("scalar",d,ft,B);let m,S;if(w){let{k1neg:U,k1:L,k2neg:k,k2:I}=w.splitScalar(d),{p:N,f:rt}=this.wNAF(L),{p:F,f:P}=this.wNAF(I);N=x.constTimeNegate(U,N),F=x.constTimeNegate(k,F),F=new h(e.mul(F.px,w.beta),F.py,F.pz),m=N.add(F),S=rt.add(P)}else{let{p:U,f:L}=this.wNAF(d);m=U,S=L}return h.normalizeZ([m,S])[0]}multiplyAndAddUnsafe(d,w,B){let m=h.BASE,S=(L,k)=>k===ue||k===ft||!L.equals(m)?L.multiplyUnsafe(k):L.multiply(k),U=S(this,w).add(S(d,B));return U.is0()?void 0:U}toAffine(d){return l(this,d)}isTorsionFree(){let{h:d,isTorsionFree:w}=t;if(d===ft)return!0;if(w)return w(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:w}=t;return d===ft?this:w?w(h,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Dt("isCompressed",d),this.assertValidity(),s(h,this,d)}toHex(d=!0){return Dt("isCompressed",d),te(this.toRawBytes(d))}}h.BASE=new h(t.Gx,t.Gy,e.ONE),h.ZERO=new h(e.ZERO,e.ONE,e.ZERO);let g=t.nBitLength,x=dn(h,t.endo?Math.ceil(g/2):g);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Oh(r){let t=Sr(r);return Kt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Fc(r){let t=Oh(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(E){return G(E,n)}function a(E){return hn(E,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:u}=Ph({...t,toBytes(E,T,y){let p=T.toAffine(),v=e.toBytes(p.x),C=re;return Dt("isCompressed",y),y?C(Uint8Array.from([T.hasEvenY()?2:3]),v):C(Uint8Array.from([4]),v,e.toBytes(p.y))},fromBytes(E){let T=E.length,y=E[0],p=E.subarray(1);if(T===s&&(y===2||y===3)){let v=ee(p);if(!Br(v,ft,e.ORDER))throw new Error("Point is not on curve");let C=l(v),R;try{R=e.sqrt(C)}catch(H){let D=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+D)}let _=(R&ft)===ft;return(y&1)===1!==_&&(R=e.neg(R)),{x:v,y:R}}else if(T===i&&y===4){let v=e.fromBytes(p.subarray(0,e.BYTES)),C=e.fromBytes(p.subarray(e.BYTES,2*e.BYTES));return{x:v,y:C}}else throw new Error(`Point of length ${T} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),h=E=>te(we(E,t.nByteLength));function g(E){let T=n>>ft;return E>T}function x(E){return g(E)?o(-E):E}let b=(E,T,y)=>ee(E.slice(T,y));class d{constructor(T,y,p){this.r=T,this.s=y,this.recovery=p,this.assertValidity()}static fromCompact(T){let y=t.nByteLength;return T=tt("compactSignature",T,y*2),new d(b(T,0,y),b(T,y,2*y))}static fromDER(T){let{r:y,s:p}=le.toSig(tt("DER",T));return new d(y,p)}assertValidity(){It("r",this.r,ft,n),It("s",this.s,ft,n)}addRecoveryBit(T){return new d(this.r,this.s,T)}recoverPublicKey(T){let{r:y,s:p,recovery:v}=this,C=L(tt("msgHash",T));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let R=v===2||v===3?y+t.n:y;if(R>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let _=v&1?"03":"02",O=c.fromHex(_+h(R)),H=a(R),D=o(-C*H),z=o(p*H),Z=c.BASE.multiplyAndAddUnsafe(O,D,z);if(!Z)throw new Error("point at infinify");return Z.assertValidity(),Z}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Ue(this.toDERHex())}toDERHex(){return le.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ue(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}let w={isValidPrivateKey(E){try{return f(E),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let E=si(t.n);return xa(t.randomBytes(E),t.n)},precompute(E=8,T=c.BASE){return T._setWindowSize(E),T.multiply(BigInt(3)),T}};function B(E,T=!0){return c.fromPrivateKey(E).toRawBytes(T)}function m(E){let T=ye(E),y=typeof E=="string",p=(T||y)&&E.length;return T?p===s||p===i:y?p===2*s||p===2*i:E instanceof c}function S(E,T,y=!0){if(m(E))throw new Error("first arg must be private key");if(!m(T))throw new Error("second arg must be public key");return c.fromHex(T).multiply(f(E)).toRawBytes(y)}let U=t.bits2int||function(E){let T=ee(E),y=E.length*8-t.nBitLength;return y>0?T>>BigInt(y):T},L=t.bits2int_modN||function(E){return o(U(E))},k=Ar(t.nBitLength);function I(E){return It(`num < 2^${t.nBitLength}`,E,ue,k),we(E,t.nByteLength)}function N(E,T,y=rt){if(["recovered","canonical"].some(lt=>lt in y))throw new Error("sign() legacy options not supported");let{hash:p,randomBytes:v}=t,{lowS:C,prehash:R,extraEntropy:_}=y;C==null&&(C=!0),E=tt("msgHash",E),Mc(y),R&&(E=tt("prehashed msgHash",p(E)));let O=L(E),H=f(T),D=[I(H),I(O)];if(_!=null&&_!==!1){let lt=_===!0?v(e.BYTES):_;D.push(tt("extraEntropy",lt))}let z=re(...D),Z=O;function ct(lt){let ht=U(lt);if(!u(ht))return;let wt=a(ht),st=c.BASE.multiply(ht).toAffine(),kt=o(st.x);if(kt===ue)return;let jt=o(wt*o(Z+kt*H));if(jt===ue)return;let gr=(st.x===kt?0:2)|Number(st.y&ft),yr=jt;return C&&g(jt)&&(yr=x(jt),gr^=1),new d(kt,yr,gr)}return{seed:z,k2sig:ct}}let rt={lowS:t.lowS,prehash:!1},F={lowS:t.lowS,prehash:!1};function P(E,T,y=rt){let{seed:p,k2sig:v}=N(E,T,y),C=t;return ti(C.hash.outputLen,C.nByteLength,C.hmac)(p,v)}c.BASE._setWindowSize(8);function nt(E,T,y,p=F){let v=E;if(T=tt("msgHash",T),y=tt("publicKey",y),"strict"in p)throw new Error("options.strict was renamed to lowS");Mc(p);let{lowS:C,prehash:R}=p,_,O;try{if(typeof v=="string"||ye(v))try{_=d.fromDER(v)}catch(st){if(!(st instanceof le.Err))throw st;_=d.fromCompact(v)}else if(typeof v=="object"&&typeof v.r=="bigint"&&typeof v.s=="bigint"){let{r:st,s:kt}=v;_=new d(st,kt)}else throw new Error("PARSE");O=c.fromHex(y)}catch(st){if(st.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&_.hasHighS())return!1;R&&(T=t.hash(T));let{r:H,s:D}=_,z=L(T),Z=a(D),ct=o(z*Z),lt=o(H*Z),ht=c.BASE.multiplyAndAddUnsafe(O,ct,lt)?.toAffine();return ht?o(ht.x)===H:!1}return{CURVE:t,getPublicKey:B,getSharedSecret:S,sign:P,verify:nt,ProjectivePoint:c,Signature:d,utils:w}}function Dh(r){return{hash:r,hmac:(t,...e)=>Xi(r,t,Gs(...e)),randomBytes:cn}}function Kc(r,t){let e=n=>Fc({...r,...Dh(n)});return Object.freeze({...e(t),create:e})}var zc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),qc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mh=BigInt(1),Qi=BigInt(2),$c=(r,t)=>(r+t/Qi)/t;function Hh(r){let t=zc,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,l=f*f*r%t,u=X(l,e,t)*l%t,h=X(u,e,t)*l%t,g=X(h,Qi,t)*f%t,x=X(g,s,t)*g%t,b=X(x,i,t)*x%t,d=X(b,a,t)*b%t,w=X(d,c,t)*d%t,B=X(w,a,t)*b%t,m=X(B,e,t)*l%t,S=X(m,o,t)*x%t,U=X(S,n,t)*f%t,L=X(U,Qi,t);if(!to.eql(to.sqr(L),r))throw new Error("Cannot find square root");return L}var to=xe(zc,void 0,void 0,{sqrt:Hh}),Fe=Kc({a:BigInt(0),b:BigInt(7),Fp:to,n:qc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=qc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Mh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=$c(i*r,t),c=$c(-n*r,t),f=G(r-a*e-c*s,t),l=G(-a*n-c*i,t),u=f>o,h=l>o;if(u&&(f=t-f),h&&(l=t-l),f>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:f,k2neg:h,k2:l}}}},er),Hm=BigInt(0);var Fm=Fe.ProjectivePoint;function Rt(r,t){t==null&&(t=r.reduce((s,i)=>s+i.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function Gc(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Wc(r,t,e){let n=kr.digest(e instanceof Uint8Array?e:e.subarray());if(Gc(n))return n.then(({digest:s})=>Fe.verify(t,s,r)).catch(s=>{throw new Mr(String(s))});try{return Fe.verify(t,n.digest,r)}catch(s){throw new Mr(String(s))}}var ps=class{type="secp256k1";raw;_key;constructor(t){this._key=jc(t),this.raw=Zc(this._key)}toMultihash(){return Xt.digest(qt(this))}toCID(){return it.createV1(114,this.toMultihash())}toString(){return Y.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Wc(this._key,e,t)}};function eo(r){return new ps(r)}function Zc(r){return Fe.ProjectivePoint.fromHex(r).toRawBytes(!0)}function jc(r){try{return Fe.ProjectivePoint.fromHex(r),r}catch(t){throw new $e(String(t))}}function ms(r){let{Type:t,Data:e}=zt.decode(r),n=e??new Uint8Array;switch(t){case at.RSA:return Ji(n);case at.Ed25519:return li(n);case at.secp256k1:return eo(n);default:throw new Ce}}function Yc(r){let{Type:t,Data:e}=zt.decode(r.digest),n=e??new Uint8Array;switch(t){case at.Ed25519:return li(n);case at.secp256k1:return eo(n);default:throw new Ce}}function qt(r){return zt.encode({Type:at[r.type],Data:r.raw})}var Jc=Symbol.for("nodejs.util.inspect.custom"),Fh=114,Kr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[en]=!0;toString(){return this.string==null&&(this.string=Y.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return it.createV1(Fh,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ut(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ut(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Jc](){return`PeerId(${this.toString()})`}},qr=class extends Kr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},$r=class extends Kr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},zr=class extends Kr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Kh=2336,Gr=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Xt.digest(j(this.url))}[Jc](){return`PeerId(${this.url})`}[en]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return it.createV1(Kh,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=q(t)),t.toString()===this.toString())}};var qh=114,Xc=2336;function Qc(r){if(r.type==="Ed25519")return new $r({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new zr({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new qr({multihash:r.toCID().multihash,publicKey:r});throw new Ce}function ro(r){if(zh(r))return new qr({multihash:r});if($h(r))try{let t=Yc(r);if(t.type==="Ed25519")return new $r({multihash:r,publicKey:t});if(t.type==="secp256k1")return new zr({multihash:r,publicKey:t})}catch{let e=q(r.digest);return new Gr(new URL(e))}throw new nn("Supplied PeerID Multihash is invalid")}function gs(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==qh&&r.code!==Xc)throw new rn("Supplied PeerID CID is invalid");if(r.code===Xc){let t=q(r.multihash.digest);return new Gr(new URL(t))}return ro(r.multihash)}function $h(r){return r.code===Xt.code}function zh(r){return r.code===kr.code}var el=Symbol.for("@achingbrain/uint8arraylist");function tl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function ys(r){return!!r?.[el]}var bs=class r{bufs;length;[el]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ys(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ys(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=tl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=tl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(ys(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Rt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Rt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),i=new r;return i.length=s,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,t>=c)continue;let f=t>=a&&t<c,l=e>a&&e<=c;if(f&&l){if(t===a&&e===c){n.push(o);break}let u=t-a;n.push(o.subarray(u,u+(e-t)));break}if(f){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(l){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ys(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,f=n.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let h=f;h>=0;h--){let g=this.get(u+h);if(n[h]!==g){l=Math.max(1,h-a[g]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ut(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,i)=>s+i.byteLength,0)),n.length=e,n}};var Wr;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={publicKey:et(0),payloadType:et(0),payload:et(0),signature:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.publicKey=e.bytes();break}case 2:{i.payloadType=e.bytes();break}case 3:{i.payload=e.bytes();break}case 5:{i.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Wr||(Wr={}));var ws=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var cr=class r{static createFromProtobuf=async t=>{let e=Wr.decode(t),n=ms(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,i=t.marshal(),o=rl(n,s,i),a=await e.sign(o.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:i,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new ws("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:i}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=i}marshal(){return this.marshaled==null&&(this.marshaled=Wr.encode({publicKey:qt(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ut(this.marshal(),t.marshal())}async validate(t){let e=rl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},rl=(r,t,e)=>{let n=j(r),s=$t(n.byteLength),i=$t(t.length),o=$t(e.length);return new bs(s,n,i,t,o,e)};function nl(r,t){let e=(n,s)=>n.toString().localeCompare(s.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,s)=>t[s].equals(n)))}var xs=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*s)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let h=Number.parseInt(u,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(i*=t,i+=l,i>f||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[s]=o[0],e[s+1]=o[1],e[s+2]=o[2],e[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];e[s]=i>>8,e[s+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=t(i.subarray(0,o));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var sl=45,Gh=15,lr=new xs;function no(r){if(!(r.length>Gh))return lr.new(r).parseWith(()=>lr.readIPv4Addr())}function so(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>sl))return lr.new(r).parseWith(()=>lr.readIPv6Addr())}function vs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>sl))return lr.new(r).parseWith(()=>lr.readIPAddr())}var by=parseInt("0xFFFF",16),wy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function al(r){return!!no(r)}function cl(r){return!!so(r)}function Es(r){return!!vs(r)}var ll=al,Jh=cl,io=function(r){let t=0;if(r=r.toString().trim(),ll(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(Jh(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=ll(e[n]),o;i&&(o=io(e[n]),e[n]=q(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,q(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let i=parseInt(e[n],16);s[t++]=i>>8&255,s[t++]=i&255}return s}throw new Error("invalid ip address")},ul=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let i=0;i<e;i++)s.push(r[t+i]);return s.join(".")}if(e===16){let s=[];for(let i=0;i<e;i+=2)s.push(n.getUint16(t+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ur={},oo={},Qh=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Qh.forEach(r=>{let t=td(...r);oo[t.code]=t,ur[t.name]=t});function td(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function W(r){if(typeof r=="number"){if(oo[r]!=null)return oo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(ur[r]!=null)return ur[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var rb=W("ip4"),nb=W("ip6"),sb=W("ipcidr");function uo(r,t){switch(W(r).code){case 4:case 41:return rd(t);case 42:return lo(t);case 6:case 273:case 33:case 132:return dl(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return lo(t);case 421:return od(t);case 444:return hl(t);case 445:return hl(t);case 466:return id(t);case 481:return globalThis.encodeURIComponent(lo(t));default:return q(t,"base16")}}function fo(r,t){switch(W(r).code){case 4:return fl(t);case 41:return fl(t);case 42:return co(t);case 6:case 273:case 33:case 132:return ho(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return co(t);case 421:return nd(t);case 444:return ad(t);case 445:return cd(t);case 466:return sd(t);case 481:return co(globalThis.decodeURIComponent(t));default:return j(t,"base16")}}var ao=Object.values(Ir).map(r=>r.decoder),ed=function(){let r=ao[0].or(ao[1]);return ao.slice(2).forEach(t=>r=r.or(t)),r}();function fl(r){if(!Es(r))throw new Error("invalid ip address");return io(r)}function rd(r){let t=ul(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Es(t))throw new Error("invalid ip address");return t}function ho(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function dl(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function co(r){let t=j(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function lo(r){let t=Pe(r);if(r=r.slice(Nt(t)),r.length!==t)throw new Error("inconsistent lengths");return q(r)}function nd(r){let t;r[0]==="Q"||r[0]==="1"?t=pe(Y.decode(`z${r}`)).bytes:t=it.parse(r).multihash.bytes;let e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function sd(r){let t=ed.decode(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function id(r){let t=Pe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+q(e,"base64url")}function od(r){let t=Pe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return q(e,"base58btc")}function ad(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Vt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ho(n);return Rt([e,s],e.length+s.length)}function cd(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Vt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ho(n);return Rt([e,s],e.length+s.length)}function hl(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=q(t,"base32"),s=dl(e);return`${n}:${s}`}function pl(r){r=po(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=W(o);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(i++,i>=s.length)throw gl("invalid address: "+r);if(a.path===!0){n=po(s.slice(i).join("/")),t.push([a.code,fo(a.code,n)]),e.push([a.code,n]);break}let c=fo(a.code,s[i]);t.push([a.code,c]),e.push([a.code,uo(a.code,c)])}return{string:ml(e),bytes:go(t),tuples:t,stringTuples:e,path:n}}function mo(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let i=Pe(r,s),o=Nt(i),a=W(i),c=ld(a,r.slice(s+o));if(c===0){t.push([i]),e.push([i]),s+=o;continue}let f=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw gl("Invalid address Uint8Array: "+q(r,"base16"));t.push([i,f]);let l=uo(i,f);if(e.push([i,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(r),string:ml(e),tuples:t,stringTuples:e,path:n}}function ml(r){let t=[];return r.map(e=>{let n=W(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),po(t.join("/"))}function go(r){return Rt(r.map(t=>{let e=W(t[0]),n=Uint8Array.from($t(e.code));return t.length>1&&t[1]!=null&&(n=Rt([n,t[1]])),n}))}function ld(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Pe(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Nt(e)}}function po(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function gl(r){return new Error("Error parsing address: "+r)}var ud=Symbol.for("nodejs.util.inspect.custom"),bo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),fd=[W("dns").code,W("dns4").code,W("dns6").code,W("dnsaddr").code],yo=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},Bs=class r{bytes;#t;#e;#i;#a;[bo]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=mo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=pl(t)}else if(As(t))e=mo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#i=e.stringTuples,this.#a=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,i="",o=W("tcp"),a=W("udp"),c=W("ip4"),f=W("ip6"),l=W("dns6"),u=W("ip6zone");for(let[g,x]of this.stringTuples())g===u.code&&(i=`%${x??""}`),fd.includes(g)&&(e=o.name,s=443,n=`${x??""}${i}`,t=g===l.code?6:4),(g===o.code||g===a.code)&&(e=W(g).name,s=parseInt(x??"")),(g===c.code||g===f.code)&&(e=W(g).name,n=`${x??""}${i}`,t=g===f.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},W(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>W(t).name)}tuples(){return this.#e}stringTuples(){return this.#i}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(go(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===ur.p2p.code&&t.push([n,s]),n===ur["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?q(Y.decode(`z${n}`),"base58btc"):q(it.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ut(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=yl.get(e.name);if(n==null)throw new yo(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>fe(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[ud](){return`Multiaddr(${this.#t})`}};var yl=new Map;function As(r){return!!r?.[bo]}function fe(r){return new Bs(r)}var bl="libp2p-peer-record",wl=Uint8Array.from([3,1]);var Zr;(function(r){let t;(function(n){let s;n.codec=()=>(s==null&&(s=Bt((i,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),i.multiaddr!=null&&i.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(i.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(i,o,a={})=>{let c={multiaddr:et(0)},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{c.multiaddr=i.bytes();break}default:{i.skipType(l&7);break}}}return c})),s),n.encode=i=>Et(i,n.codec()),n.decode=(i,o)=>vt(i,n.codec(),o)})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=Bt((n,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(s.uint32(10),s.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(s.uint32(16),s.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)s.uint32(26),r.AddressInfo.codec().encode(o,s);i.lengthDelimited!==!1&&s.ldelim()},(n,s,i={})=>{let o={peerId:et(0),seq:0n,addresses:[]},a=s==null?n.len:n.pos+s;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{o.peerId=n.bytes();break}case 2:{o.seq=n.uint64();break}case 3:{if(i.limits?.addresses!=null&&o.addresses.length===i.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:i.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return o})),e),r.encode=n=>Et(n,r.codec()),r.decode=(n,s)=>vt(n,r.codec(),s)})(Zr||(Zr={}));var Ke=class r{static createFromProtobuf=t=>{let e=Zr.decode(t),n=ro(pe(e.peerId)),s=(e.addresses??[]).map(o=>fe(o.multiaddr)),i=e.seq;return new r({peerId:n,multiaddrs:s,seqNumber:i})};static DOMAIN=bl;static CODEC=wl;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(t){let{peerId:e,multiaddrs:n,seqNumber:s}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=s??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Zr.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof r)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!nl(this.multiaddrs,t.multiaddrs))}};function hd(r){return r[Symbol.asyncIterator]!=null}function dd(r){if(hd(r))return(async()=>{let e=[];for await(let n of r)e.push(n);return e})();let t=[];for(let e of r)t.push(e);return t}var xl=dd;function Ss(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:t(s)}}};return e}var jr=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),{key:e,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return Ss(this.map.entries(),t=>[t[1].key,t[1].value])}forEach(t){this.map.forEach((e,n)=>{t(e.value,e.key,this)})}get(t){return this.map.get(t.toString())?.value}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),{key:t,value:e})}keys(){return Ss(this.map.values(),t=>t.key)}values(){return Ss(this.map.values(),t=>t.value)}get size(){return this.map.size}};var xo=qo(El(),1);var Jr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},vo=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Bl=r=>globalThis.DOMException===void 0?new vo(r):new DOMException(r),Al=r=>{let t=r.reason===void 0?Bl("This operation was aborted."):r.reason;return t instanceof Error?t:Bl(t)};function Xr(r,t){let{milliseconds:e,fallback:n,message:s,customTimers:i={setTimeout,clearTimeout}}=t,o,c=new Promise((f,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(t.signal){let{signal:h}=t;h.aborted&&l(Al(h)),h.addEventListener("abort",()=>{l(Al(h))})}if(e===Number.POSITIVE_INFINITY){r.then(f,l);return}let u=new Jr;o=i.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){l(h)}return}typeof r.cancel=="function"&&r.cancel(),s===!1?f():s instanceof Error?l(s):(u.message=s??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{f(await r)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{i.clearTimeout.call(void 0,o),o=void 0},c}function Eo(r,t,e){let n=0,s=r.length;for(;s>0;){let i=Math.trunc(s/2),o=n+i;e(r[o],t)<=0?(n=++o,s-=i+1):s=i}return n}var Qr=class{#t=[];enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=e.priority){this.#t.push(n);return}let s=Eo(this.#t,n,(i,o)=>o.priority-i.priority);this.#t.splice(s,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}};var fr=class extends xo.default{#t;#e;#i=0;#a;#c;#p=0;#n;#l;#r;#m;#s=0;#u;#o;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Qr,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#e=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#r=new t.queueClass,this.#m=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#o=t.autoStart===!1}get#w(){return this.#e||this.#i<this.#a}get#x(){return this.#s<this.#u}#v(){this.#s--,this.#f(),this.emit("next")}#E(){this.#b(),this.#y(),this.#l=void 0}get#B(){let t=Date.now();if(this.#n===void 0){let e=this.#p-t;if(e<0)this.#i=this.#t?this.#s:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},e)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#o){let t=!this.#B;if(this.#w&&this.#x){let e=this.#r.dequeue();return e?(this.emit("active"),e(),t&&this.#y(),!0):!1}}return!1}#y(){this.#e||this.#n!==void 0||(this.#n=setInterval(()=>{this.#b()},this.#c),this.#p=Date.now()+this.#c)}#b(){this.#i===0&&this.#s===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#i=this.#t?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#u=t,this.#h()}async#A(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:this.#g,...e},new Promise((n,s)=>{this.#r.enqueue(async()=>{this.#s++,this.#i++;try{e.signal?.throwIfAborted();let i=t({signal:e.signal});e.timeout&&(i=Xr(Promise.resolve(i),{milliseconds:e.timeout})),e.signal&&(i=Promise.race([i,this.#A(e.signal)]));let o=await i;n(o),this.emit("completed",o)}catch(i){if(i instanceof Jr&&!e.throwOnTimeout){n();return}s(i),this.emit("error",i)}finally{this.#v()}},e),this.emit("add"),this.#f()})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#r.size<t||await this.#d("next",()=>this.#r.size<t)}async onIdle(){this.#s===0&&this.#r.size===0||await this.#d("idle")}async#d(t,e){return new Promise(n=>{let s=()=>{e&&!e()||(this.off(t,s),n())};this.on(t,s)})}get size(){return this.#r.size}sizeBy(t){return this.#r.filter(t).length}get pending(){return this.#s}get isPaused(){return this.#o}};var Ie={},hr=r=>{r.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)})};hr.addEventListener=(r,t)=>{Ie[r]==null&&(Ie[r]=[]),Ie[r].push(t)};hr.removeEventListener=(r,t)=>{Ie[r]!=null&&(Ie[r]=Ie[r].filter(e=>e===t))};hr.dispatchEvent=function(r,t,e){Ie[r]!=null&&Ie[r].forEach(n=>n(t,e))};var Bo=hr;var Ao="lock:worker:request-read",So="lock:worker:release-read",ko="lock:master:grant-read",Io="lock:worker:request-write",To="lock:worker:release-write",Co="lock:master:grant-write";var Sl=(r=21)=>Math.random().toString().substring(2);var kl=(r,t,e,n,s)=>(i,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>{i.postMessage({type:s,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=l=>{if(l==null||l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===n&&u.identifier===a.identifier&&(i.removeEventListener("message",f),c())};i.addEventListener("message",f)})}}}))},Il=(r,t,e,n)=>async()=>{let s=Sl();return globalThis.postMessage({type:t,identifier:s,name:r}),new Promise(i=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===s&&(globalThis.removeEventListener("message",o),i(()=>{globalThis.postMessage({type:n,identifier:s,name:r})}))};globalThis.addEventListener("message",o)})},gd={singleProcess:!1},Tl=r=>{if(r=Object.assign({},gd,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return Bo.addEventListener("message",kl(e,"requestReadLock",Ao,So,ko)),Bo.addEventListener("message",kl(e,"requestWriteLock",Io,To,Co)),e}return{isWorker:!0,readLock:e=>Il(e,Ao,ko,So),writeLock:e=>Il(e,Io,Co,To)}};var qe={},Te;async function No(r,t){let e,n=new Promise(s=>{e=s});return r.add(async()=>Xr((async()=>{await new Promise(s=>{e(()=>{s()})})})(),{milliseconds:t.timeout})),n}var yd=(r,t)=>{if(Te.isWorker===!0)return{readLock:Te.readLock(r,t),writeLock:Te.writeLock(r,t)};let e=new fr({concurrency:1}),n;return{async readLock(){if(n!=null)return No(n,t);n=new fr({concurrency:t.concurrency,autoStart:!1});let s=n,i=No(n,t);return e.add(async()=>{s.start(),await s.onIdle().then(()=>{n===s&&(n=null)})}),i},async writeLock(){return n=null,No(e,t)}}},bd={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Lo(r){let t=Object.assign({},bd,r);return Te==null&&(Te=Tl(t),Te.isWorker!==!0&&(Te.addEventListener("requestReadLock",e=>{qe[e.data.name]!=null&&qe[e.data.name].readLock().then(async n=>e.data.handler().finally(()=>{n()}))}),Te.addEventListener("requestWriteLock",async e=>{qe[e.data.name]!=null&&qe[e.data.name].writeLock().then(async n=>e.data.handler().finally(()=>{n()}))}))),qe[t.name]==null&&(qe[t.name]=yd(t.name,t)),qe[t.name]}var dr;(function(r){let t;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:"",value:et(0)},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=o.bytes();break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(t=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let e;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Ts.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:""},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=Ts.codec().decode(o,o.uint32(),{limits:c.limits?.value});break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(e=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Bt((s,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),s.addresses!=null)for(let a of s.addresses)i.uint32(10),Is.codec().encode(a,i);if(s.protocols!=null)for(let a of s.protocols)i.uint32(18),i.string(a);if(s.publicKey!=null&&(i.uint32(34),i.bytes(s.publicKey)),s.peerRecordEnvelope!=null&&(i.uint32(42),i.bytes(s.peerRecordEnvelope)),s.metadata!=null&&s.metadata.size!==0)for(let[a,c]of s.metadata.entries())i.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},i);if(s.tags!=null&&s.tags.size!==0)for(let[a,c]of s.tags.entries())i.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},i);o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let f=s.uint32();switch(f>>>3){case 1:{if(o.limits?.addresses!=null&&a.addresses.length===o.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');a.addresses.push(Is.codec().decode(s,s.uint32(),{limits:o.limits?.addresses$}));break}case 2:{if(o.limits?.protocols!=null&&a.protocols.length===o.limits.protocols)throw new Me('Decode error - map field "protocols" had too many elements');a.protocols.push(s.string());break}case 4:{a.publicKey=s.bytes();break}case 5:{a.peerRecordEnvelope=s.bytes();break}case 6:{if(o.limits?.metadata!=null&&a.metadata.size===o.limits.metadata)throw new Nr('Decode error - map field "metadata" had too many elements');let l=r.Peer$metadataEntry.codec().decode(s,s.uint32());a.metadata.set(l.key,l.value);break}case 7:{if(o.limits?.tags!=null&&a.tags.size===o.limits.tags)throw new Nr('Decode error - map field "tags" had too many elements');let l=r.Peer$tagsEntry.codec().decode(s,s.uint32(),{limits:{value:o.limits?.tags$value}});a.tags.set(l.key,l.value);break}default:{s.skipType(f&7);break}}}return a})),n),r.encode=s=>Et(s,r.codec()),r.decode=(s,i)=>vt(s,r.codec(),i)})(dr||(dr={}));var Is;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={multiaddr:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.multiaddr=e.bytes();break}case 2:{i.isCertified=e.bool();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Is||(Is={}));var Ts;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.value!=null&&e.value!==0&&(n.uint32(8),n.uint32(e.value)),e.expiry!=null&&(n.uint32(16),n.uint64(e.expiry)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={value:0},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.value=e.uint32();break}case 2:{i.expiry=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Ts||(Ts={}));function pr(r,t){let e=dr.decode(t);if(e.publicKey!=null&&r.publicKey==null){let i=ms(e.publicKey);r=Qc(i)}let n=new Map,s=BigInt(Date.now());for(let[i,o]of e.tags.entries())o.expiry!=null&&o.expiry<s||n.set(i,o);return{...e,id:r,addresses:e.addresses.map(({multiaddr:i,isCertified:o})=>({multiaddr:fe(i),isCertified:o??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}var he="/",Cl=new TextEncoder().encode(he),Cs=Cl[0],Ns=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=j(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Cs)throw new Error("Invalid key")}toString(t="utf8"){return q(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(he))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Cl),this._buf[0]!==Cs){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Cs,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Cs;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let s=0;s<e.length;s++){if(n.length<s+1)return!1;let i=e[s],o=n[s];if(i<o)return!0;if(i>o)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(he).slice(1)}type(){return wd(this.baseNamespace())}name(){return xd(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(he)||(t+=he),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(he):new r(t.slice(0,-1).join(he))}child(t){return this.toString()===he?t:t.toString()===he?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...vd(t.map(e=>e.namespaces()))])}};function wd(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function xd(r){let t=r.split(":");return t[t.length-1]}function vd(r){return[].concat(...r)}var Uo="/peers/";function mr(r){if(!$o(r)||r.type==null)throw new K("Invalid PeerId");let t=r.toCID().toString();return new Ns(`${Uo}${t}`)}async function Nl(r,t,e){let n=new Map;for(let s of e){if(s==null)continue;if(s.multiaddr instanceof Uint8Array&&(s.multiaddr=fe(s.multiaddr)),!As(s.multiaddr))throw new K("Multiaddr was invalid");if(!await t(r,s.multiaddr))continue;let i=s.isCertified??!1,o=s.multiaddr.toString(),a=n.get(o);a!=null?s.isCertified=a.isCertified||i:n.set(o,{multiaddr:s.multiaddr,isCertified:i})}return[...n.values()].sort((s,i)=>s.multiaddr.toString().localeCompare(i.multiaddr.toString())).map(({isCertified:s,multiaddr:i})=>({isCertified:s,multiaddr:i.bytes}))}async function Us(r,t,e,n){if(t==null)throw new K("Invalid PeerData");if(t.publicKey!=null&&r.publicKey!=null&&!t.publicKey.equals(r.publicKey))throw new K("publicKey bytes do not match peer id publicKey bytes");let s=n.existingPeer;if(s!=null&&!r.equals(s.id))throw new K("peer id did not match existing peer id");let i=s?.addresses??[],o=new Set(s?.protocols??[]),a=s?.metadata??new Map,c=s?.tags??new Map,f=s?.peerRecordEnvelope;if(e==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(i=[],t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Ls(h,{validate:Ll})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Ls(h,{validate:Ul,map:Rl})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}if(e==="merge"){if(t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[g,x]of h)x==null?a.delete(g):a.set(g,x);a=Ls([...a.entries()],{validate:Ll})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),g=new Map(c);for(let[x,b]of h)b==null?g.delete(x):g.set(x,b);c=Ls([...g.entries()],{validate:Ul,map:Rl})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}let l;s?.id.publicKey!=null?l=qt(s.id.publicKey):t.publicKey!=null?l=qt(t.publicKey):r.publicKey!=null&&(l=qt(r.publicKey));let u={addresses:await Nl(r,n.addressFilter??(async()=>!0),i),protocols:[...o.values()].sort((h,g)=>h.localeCompare(g)),metadata:a,tags:c,publicKey:l,peerRecordEnvelope:f};return r.type!=="RSA"&&delete u.publicKey,u}function Ls(r,t){let e=new Map;for(let[n,s]of r)s!=null&&t.validate(n,s);for(let[n,s]of r.sort(([i],[o])=>i.localeCompare(o)))s!=null&&e.set(n,t.map?.(n,s)??s);return e}function Ll(r,t){if(typeof r!="string")throw new K("Metadata key must be a string");if(!(t instanceof Uint8Array))throw new K("Metadata value must be a Uint8Array")}function Ul(r,t){if(typeof r!="string")throw new K("Tag name must be a string");if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new K("Tag value must be an integer");if(t.value<0||t.value>100)throw new K("Tag value must be between 0-100")}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new K("Tag ttl must be an integer");if(t.ttl<0)throw new K("Tag ttl must be between greater than 0")}}function Rl(r,t){let e;return t.expiry!=null&&(e=t.expiry),t.ttl!=null&&(e=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:e}}function Rs(r,t,e){let n=r.toString().split("/")[2],s=it.parse(n,Vt),i=gs(s),o=e.get(i);if(o!=null)return o;let a=pr(i,t);return e.set(i,a),a}function Ed(r,t){return r==null?{}:{prefix:Uo,filters:(r.filters??[]).map(e=>({key:n,value:s})=>e(Rs(n,s,t))),orders:(r.orders??[]).map(e=>(n,s)=>e(Rs(n.key,n.value,t),Rs(s.key,s.value,t)))}}var _s=class{peerId;datastore;lock;addressFilter;constructor(t,e={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=e.addressFilter,this.lock=Lo({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(mr(t))}async delete(t){if(this.peerId.equals(t))throw new K("Cannot delete self peer");await this.datastore.delete(mr(t))}async load(t){let e=await this.datastore.get(mr(t));return pr(t,e)}async save(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"patch",{addressFilter:this.addressFilter});return this.#e(t,i,n,s)}async patch(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"patch",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async merge(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"merge",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async*all(t){let e=new jr;for await(let{key:n,value:s}of this.datastore.query(Ed(t??{},e))){let i=Rs(n,s,e);i.id.equals(this.peerId)||(yield i)}}async#t(t){try{let e=await this.datastore.get(mr(t)),n=pr(t,e);return{existingBuf:e,existingPeer:n}}catch(e){if(e.name!=="NotFoundError")throw e}return{}}async#e(t,e,n,s){let i=dr.encode(e);return n!=null&&ut(i,n)?{peer:pr(t,i),previous:s,updated:!1}:(await this.datastore.put(mr(t),i),{peer:pr(t,i),previous:s,updated:!0})}};var Ro=class{store;events;peerId;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.events=t.events,this.peerId=t.peerId,this.store=new _s(t,e)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(t,e){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let s of this.store.all(e))t(s)}finally{this.log.trace("forEach release read lock"),n()}}async all(t){this.log.trace("all await read lock");let e=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await xl(this.store.all(t))}finally{this.log.trace("all release read lock"),e()}}async delete(t){this.log.trace("delete await write lock");let e=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(t)}finally{this.log.trace("delete release write lock"),e()}}async has(t){this.log.trace("has await read lock");let e=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(t)}finally{this.log.trace("has release read lock"),e()}}async get(t){this.log.trace("get await read lock");let e=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(t)}finally{this.log.trace("get release read lock"),e()}}async save(t,e){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let s=await this.store.save(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("save release write lock"),n()}}async patch(t,e){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let s=await this.store.patch(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(t,e){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let s=await this.store.merge(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(t,e){let n=await cr.openAndCertify(t,Ke.DOMAIN),s=gs(n.publicKey.toCID());if(e?.equals(s)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",e,s),!1;let i=Ke.createFromProtobuf(n.payload),o;try{o=await this.get(s)}catch(a){if(a.name!=="NotFoundError")throw a}if(o?.peerRecordEnvelope!=null){let a=await cr.createFromProtobuf(o.peerRecordEnvelope),c=Ke.createFromProtobuf(a.payload);if(c.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:t,addresses:i.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!0}#t(t,e){e.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:e}):this.events.safeDispatchEvent("peer:update",{detail:e}))}};function Bd(r,t={}){return new Ro(r,t)}return Wl(Ad);})();
6
+ `)}`:`${e} :`}};Ja=Se;A.Constructed=Ja;Se.NAME="CONSTRUCTED";var Ln=class extends yt{fromBER(t,e,n){return e}toBER(t){return Ft}};Ln.override="EndOfContentValueBlock";var Xa,Un=class extends dt{constructor(t={}){super(t,Ln),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Xa=Un;A.EndOfContent=Xa;Un.NAME=Rr;var Qa,nr=class extends dt{constructor(t={}){super(t,yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Qa=nr;A.Null=Qa;nr.NAME="NULL";var Rn=class extends ce(yt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=M.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=M.BufferSourceConverter.toUint8Array(t);return ae(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,$i.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Rn.NAME="BooleanValueBlock";var tc,_n=class extends dt{constructor(t={}){super(t,Rn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};tc=_n;A.Boolean=tc;_n.NAME="BOOLEAN";var Vn=class extends ce(Gt){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==Wa)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?Gt.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Vn.NAME="OctetStringValueBlock";var ec,Pn=class r extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Vn),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let i=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(i.byteLength){let o=us(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Se.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${M.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return M.BufferSourceConverter.concat(t)}};ec=Pn;A.OctetString=ec;Pn.NAME=Wa;var On=class extends ce(Gt){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Za)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let f=a.valueBlock;if(this.unusedBits>0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return s}let i=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,i,e,n))return-1;let o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=us(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return Gt.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Ft;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};On.NAME="BitStringValueBlock";var rc,sr=class extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},On),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Se.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};rc=sr;A.BitString=rc;sr.NAME=Za;var nc;function Th(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f=0,l=c<o?o:c,u=0;for(let h=l;h>=0;h--,u++){switch(!0){case u<a.length:f=i[o-u]+a[c-u]+e[0];break;default:f=i[o-u]+e[0]}switch(e[0]=f/10,!0){case u>=i.length:i=An(new Uint8Array([f%10]),i);break;default:i[o-u]=f%10}}return e[0]>0&&(i=An(e,i)),i}function Ga(r){if(r>=Lr.length)for(let t=Lr.length;t<=r;t++){let e=new Uint8Array([0]),n=Lr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=i[0]/10,n[s]=i[0]%10}e[0]>0&&(n=An(e,n)),Lr.push(n)}return Lr[r]}function Ch(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f,l=0;for(let u=c;u>=0;u--,l++)switch(f=i[o-l]-a[c-l]-e,!0){case f<0:e=1,i[o-l]=f+10;break;default:e=0,i[o-l]=f}if(e>0)for(let u=o-c+1;u>=0;u--,l++)if(f=i[o-l]-e,f<0)e=1,i[o-l]=f+10;else{e=0,i[o-l]=f;break}return i.slice()}var _r=class extends ce(yt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=$i.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(qa(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let i=this.fromBER(t,e,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let f=0;f<8;f++){if((s&1)===1)switch(n){case t:e=Ch(Ga(n),e),o="-";break;default:e=Th(e,Ga(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(o+=za.charAt(e[c]));return a===!1&&(o+=za.charAt(0)),o}};nc=_r;_r.NAME="IntegerValueBlock";Object.defineProperty(nc.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var sc,pt=class r extends dt{constructor(t={}){super(t,_r),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Sn(),BigInt(this.valueBlock.toString())}static fromBigInt(t){Sn();let e=BigInt(t),n=new Ur,s=e.toString(16).replace(/^-/,""),i=new Uint8Array(M.Convert.FromHex(s));if(e<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${M.Convert.ToHex(a)}`)+e,l=M.BufferSourceConverter.toUint8Array(M.Convert.FromHex(f.toString(16)));l[0]|=128,n.write(l)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};sc=pt;A.Integer=sc;pt.NAME="INTEGER";var ic,Dn=class extends pt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};ic=Dn;A.Enumerated=ic;Dn.NAME="ENUMERATED";var Vr=class extends ce(yt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){Sn();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Ae(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let t="";if(this.isHexOnly)t=M.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Vr.NAME="sidBlock";var Mn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Vr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Ft;e.push(s)}return zi(e)}fromString(t){this.value=[];let e=0,n=0,s="",i=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new Vr;if(s>Number.MAX_SAFE_INTEGER){Sn();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Mn.NAME="ObjectIdentifierValueBlock";var oc,ir=class extends dt{constructor(t={}){super(t,Mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};oc=ir;A.ObjectIdentifier=oc;ir.NAME="OBJECT IDENTIFIER";var Pr=class extends ce(se){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!ae(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Ae(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let t="";return this.isHexOnly?t=M.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Pr.NAME="relativeSidBlock";var Hn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Pr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(t);if(i.byteLength===0)return this.error=this.value[s].error,Ft;n.push(i)}return zi(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let i=new Pr;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Hn.NAME="RelativeObjectIdentifierValueBlock";var ac,Fn=class extends dt{constructor(t={}){super(t,Hn),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ac=Fn;A.RelativeObjectIdentifier=ac;Fn.NAME="RelativeObjectIdentifier";var cc,ie=class extends Se{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};cc=ie;A.Sequence=cc;ie.NAME="SEQUENCE";var lc,Kn=class extends Se{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};lc=Kn;A.Set=lc;Kn.NAME="SET";var qn=class extends ce(yt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=or}toJSON(){return{...super.toJSON(),value:this.value}}};qn.NAME="StringValueBlock";var $n=class extends qn{};$n.NAME="SimpleStringValueBlock";var At=class extends Tn{constructor({...t}={}){super(t,$n)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};At.NAME="SIMPLE STRING";var zn=class extends At{fromBuffer(t){this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=M.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=M.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf8String(t)),this.valueBlock.value=t}};zn.NAME="Utf8StringValueBlock";var uc,oe=class extends zn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};uc=oe;A.Utf8String=uc;oe.NAME="UTF8String";var Gn=class extends At{fromBuffer(t){this.valueBlock.value=M.Convert.ToUtf16String(t),this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf16String(t))}};Gn.NAME="BmpStringValueBlock";var fc,Wn=class extends Gn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};fc=Wn;A.BmpString=fc;Wn.NAME="BMPString";var Zn=class extends At{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let i=Ae(t.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=t}};Zn.NAME="UniversalStringValueBlock";var hc,jn=class extends Zn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};hc=jn;A.UniversalString=hc;jn.NAME="UniversalString";var dc,Yn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};dc=Yn;A.NumericString=dc;Yn.NAME="NumericString";var pc,Jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};pc=Jn;A.PrintableString=pc;Jn.NAME="PrintableString";var mc,Xn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};mc=Xn;A.TeletexString=mc;Xn.NAME="TeletexString";var gc,Qn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};gc=Qn;A.VideotexString=gc;Qn.NAME="VideotexString";var yc,ts=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};yc=ts;A.IA5String=yc;ts.NAME="IA5String";var bc,es=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};bc=es;A.GraphicString=bc;es.NAME="GraphicString";var wc,Or=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};wc=Or;A.VisibleString=wc;Or.NAME="VisibleString";var xc,rs=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};xc=rs;A.GeneralString=xc;rs.NAME="GeneralString";var vc,ns=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};vc=ns;A.CharacterString=vc;ns.NAME="CharacterString";var Ec,Dr=class extends Or{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Lt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Lt(this.month,2),e[2]=Lt(this.day,2),e[3]=Lt(this.hour,2),e[4]=Lt(this.minute,2),e[5]=Lt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Ec=Dr;A.UTCTime=Ec;Dr.NAME="UTCTime";var Bc,ss=class extends Dr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",i=0,o,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),u=-1),h!==-1){if(g=n.substring(h+1),n=n.substring(0,h),g.length!==2&&g.length!==4)throw new Error("Wrong input string for conversion");let x=parseInt(g.substring(0,2),10);if(isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*x,g.length===4){if(x=parseInt(g.substring(2,4),10),isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");c=u*x}}}let f=n.indexOf(".");if(f===-1&&(f=n.indexOf(",")),f!==-1){let u=new Number(`0${n.substring(f)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,f)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let l=o.exec(s);if(l===null)throw new Error("Wrong input string for conversion");for(let u=1;u<l.length;u++)switch(u){case 1:this.year=parseInt(l[u],10);break;case 2:this.month=parseInt(l[u],10);break;case 3:this.day=parseInt(l[u],10);break;case 4:this.hour=parseInt(l[u],10)+a;break;case 5:this.minute=parseInt(l[u],10)+c;break;case 6:this.second=parseInt(l[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Lt(this.year,4)),e.push(Lt(this.month,2)),e.push(Lt(this.day,2)),e.push(Lt(this.hour,2)),e.push(Lt(this.minute,2)),e.push(Lt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Lt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Bc=ss;A.GeneralizedTime=Bc;ss.NAME="GeneralizedTime";var Ac,is=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ac=is;A.DATE=Ac;is.NAME="DATE";var Sc,os=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Sc=os;A.TimeOfDay=Sc;os.NAME="TimeOfDay";var kc,as=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};kc=as;A.DateTime=kc;as.NAME="DateTime";var Ic,cs=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ic=cs;A.Duration=Ic;cs.NAME="Duration";var Tc,ls=class extends oe{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Tc=ls;A.TIME=Tc;ls.NAME="TIME";function q(r,t="utf8"){let e=wn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Mr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},fs=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Cc={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new fs("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var ke=Cc;async function Nc(r){let t=await ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Lh(t);return{privateKey:e[0],publicKey:e[1]}}async function Lc(r,t){let e=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function Uc(r,t,e){let n=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Lh(r){if(r.privateKey==null||r.publicKey==null)throw new K("Private and public key are required");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}function Zi(r){if(r.kty!=="RSA")throw new K("invalid key type");if(r.n==null)throw new K("invalid key modulus");return j(r.n,"base64url").length*8}var ar=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return it.createV1(114,this._multihash)}toString(){return Y.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Uc(this._key,e,t)}},Fr=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return Lc(this._key,t)}};var hs=8192,ji=18;function Rc(r){let{result:t}=Wi(r),e=t.valueBlock.value;return{n:q(Wt(e[1].toBigInt()),"base64url"),e:q(Wt(e[2].toBigInt()),"base64url"),d:q(Wt(e[3].toBigInt()),"base64url"),p:q(Wt(e[4].toBigInt()),"base64url"),q:q(Wt(e[5].toBigInt()),"base64url"),dp:q(Wt(e[6].toBigInt()),"base64url"),dq:q(Wt(e[7].toBigInt()),"base64url"),qi:q(Wt(e[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function Uh(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new K("JWK was missing components");let e=new ie({value:[new pt({value:0}),pt.fromBigInt(Zt(j(r.n,"base64url"))),pt.fromBigInt(Zt(j(r.e,"base64url"))),pt.fromBigInt(Zt(j(r.d,"base64url"))),pt.fromBigInt(Zt(j(r.p,"base64url"))),pt.fromBigInt(Zt(j(r.q,"base64url"))),pt.fromBigInt(Zt(j(r.dp,"base64url"))),pt.fromBigInt(Zt(j(r.dq,"base64url"))),pt.fromBigInt(Zt(j(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function _c(r){let{result:t}=Wi(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:q(Wt(e[0].toBigInt()),"base64url"),e:q(Wt(e[1].toBigInt()),"base64url")}}function Yi(r){if(r.n==null||r.e==null)throw new K("JWK was missing components");let e=new ie({value:[new ie({value:[new ir({value:"1.2.840.113549.1.1.1"}),new nr]}),new sr({valueHex:new ie({value:[pt.fromBigInt(Zt(j(r.n,"base64url"))),pt.fromBigInt(Zt(j(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Wt(r){let t=r.toString(16);t.length%2>0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,i=0;for(;s<e;)n[s]=parseInt(t.slice(i,i+2),16),s+=1,i+=2;return n}function Zt(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Vc(r){let t=Rc(r);return Pc(t)}function Ji(r){let t=_c(r);if(Zi(t)>hs)throw new $e("Key size is too large");let e=er(zt.encode({Type:at.RSA,Data:r})),n=Pt(ji,e);return new ar(t,n)}function Pc(r){if(Zi(r)>hs)throw new K("Key size is too large");let t=Dc(r),e=er(zt.encode({Type:at.RSA,Data:Yi(t.publicKey)})),n=Pt(ji,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}async function Oc(r){if(r>hs)throw new K("Key size is too large");let t=await Nc(r),e=er(zt.encode({Type:at.RSA,Data:Yi(t.publicKey)})),n=Pt(ji,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}function Dc(r){if(r==null)throw new K("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var ds=class extends Je{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,aa(t);let n=Er(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Ye(this),this.iHash.update(t),this}digestInto(t){Ye(this),je(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Xi=(r,t,e)=>new ds(r,t).update(e).digest();Xi.create=(r,t)=>new ds(r,t);function Mc(r){r.lowS!==void 0&&Dt("lowS",r.lowS),r.prehash!==void 0&&Dt("prehash",r.prehash)}function Rh(r){let t=Sr(r);Kt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:_h,hexToBytes:Vh}=fn,le={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=le;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Le(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let i=n>127?Le(s.length/2|128):"";return`${Le(r)}${i}${s}${t}`},decode(r,t){let{Err:e}=le,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let l of f)o=o<<8|l;if(n+=c,o<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+o);if(a.length!==o)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+o)}}},_int:{encode(r){let{Err:t}=le;if(r<ue)throw new t("integer: negative integers are not allowed");let e=Le(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=le;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return _h(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=le,s=typeof r=="string"?Vh(r):r;Qe(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:f,l}=n.decode(2,c);if(l.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=le,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},ue=BigInt(0),ft=BigInt(1),Nm=BigInt(2),Hc=BigInt(3),Lm=BigInt(4);function Ph(r){let t=Rh(r),{Fp:e}=t,n=xe(t.n,t.nBitLength),s=t.toBytes||((b,d,w)=>{let B=d.toAffine();return re(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),i=t.fromBytes||(b=>{let d=b.subarray(1),w=e.fromBytes(d.subarray(0,e.BYTES)),B=e.fromBytes(d.subarray(e.BYTES,2*e.BYTES));return{x:w,y:B}});function o(b){let{a:d,b:w}=t,B=e.sqr(b),m=e.mul(B,b);return e.add(e.add(m,e.mul(b,d)),w)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(b){return Br(b,ft,t.n)}function c(b){let{allowedPrivateKeyLengths:d,nByteLength:w,wrapPrivateKey:B,n:m}=t;if(d&&typeof b!="bigint"){if(ye(b)&&(b=te(b)),typeof b!="string"||!d.includes(b.length))throw new Error("Invalid key");b=b.padStart(w*2,"0")}let S;try{S=typeof b=="bigint"?b:ee(tt("private key",b,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof b}`)}return B&&(S=G(S,m)),It("private key",S,ft,m),S}function f(b){if(!(b instanceof h))throw new Error("ProjectivePoint expected")}let l=_e((b,d)=>{let{px:w,py:B,pz:m}=b;if(e.eql(m,e.ONE))return{x:w,y:B};let S=b.is0();d==null&&(d=S?e.ONE:e.inv(m));let U=e.mul(w,d),L=e.mul(B,d),k=e.mul(m,d);if(S)return{x:e.ZERO,y:e.ZERO};if(!e.eql(k,e.ONE))throw new Error("invZ was invalid");return{x:U,y:L}}),u=_e(b=>{if(b.is0()){if(t.allowInfinityPoint&&!e.is0(b.py))return;throw new Error("bad point: ZERO")}let{x:d,y:w}=b.toAffine();if(!e.isValid(d)||!e.isValid(w))throw new Error("bad point: x or y not FE");let B=e.sqr(w),m=o(d);if(!e.eql(B,m))throw new Error("bad point: equation left != right");if(!b.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class h{constructor(d,w,B){if(this.px=d,this.py=w,this.pz=B,d==null||!e.isValid(d))throw new Error("x required");if(w==null||!e.isValid(w))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required");Object.freeze(this)}static fromAffine(d){let{x:w,y:B}=d||{};if(!d||!e.isValid(w)||!e.isValid(B))throw new Error("invalid affine point");if(d instanceof h)throw new Error("projective point not allowed");let m=S=>e.eql(S,e.ZERO);return m(w)&&m(B)?h.ZERO:new h(w,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let w=e.invertBatch(d.map(B=>B.pz));return d.map((B,m)=>B.toAffine(w[m])).map(h.fromAffine)}static fromHex(d){let w=h.fromAffine(i(tt("pointHex",d)));return w.assertValidity(),w}static fromPrivateKey(d){return h.BASE.multiply(c(d))}static msm(d,w){return pn(h,n,d,w)}_setWindowSize(d){x.setWindowSize(this,d)}assertValidity(){u(this)}hasEvenY(){let{y:d}=this.toAffine();if(e.isOdd)return!e.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){f(d);let{px:w,py:B,pz:m}=this,{px:S,py:U,pz:L}=d,k=e.eql(e.mul(w,L),e.mul(S,m)),I=e.eql(e.mul(B,L),e.mul(U,m));return k&&I}negate(){return new h(this.px,e.neg(this.py),this.pz)}double(){let{a:d,b:w}=t,B=e.mul(w,Hc),{px:m,py:S,pz:U}=this,L=e.ZERO,k=e.ZERO,I=e.ZERO,N=e.mul(m,m),rt=e.mul(S,S),F=e.mul(U,U),P=e.mul(m,S);return P=e.add(P,P),I=e.mul(m,U),I=e.add(I,I),L=e.mul(d,I),k=e.mul(B,F),k=e.add(L,k),L=e.sub(rt,k),k=e.add(rt,k),k=e.mul(L,k),L=e.mul(P,L),I=e.mul(B,I),F=e.mul(d,F),P=e.sub(N,F),P=e.mul(d,P),P=e.add(P,I),I=e.add(N,N),N=e.add(I,N),N=e.add(N,F),N=e.mul(N,P),k=e.add(k,N),F=e.mul(S,U),F=e.add(F,F),N=e.mul(F,P),L=e.sub(L,N),I=e.mul(F,rt),I=e.add(I,I),I=e.add(I,I),new h(L,k,I)}add(d){f(d);let{px:w,py:B,pz:m}=this,{px:S,py:U,pz:L}=d,k=e.ZERO,I=e.ZERO,N=e.ZERO,rt=t.a,F=e.mul(t.b,Hc),P=e.mul(w,S),nt=e.mul(B,U),E=e.mul(m,L),T=e.add(w,B),y=e.add(S,U);T=e.mul(T,y),y=e.add(P,nt),T=e.sub(T,y),y=e.add(w,m);let p=e.add(S,L);return y=e.mul(y,p),p=e.add(P,E),y=e.sub(y,p),p=e.add(B,m),k=e.add(U,L),p=e.mul(p,k),k=e.add(nt,E),p=e.sub(p,k),N=e.mul(rt,y),k=e.mul(F,E),N=e.add(k,N),k=e.sub(nt,N),N=e.add(nt,N),I=e.mul(k,N),nt=e.add(P,P),nt=e.add(nt,P),E=e.mul(rt,E),y=e.mul(F,y),nt=e.add(nt,E),E=e.sub(P,E),E=e.mul(rt,E),y=e.add(y,E),P=e.mul(nt,y),I=e.add(I,P),P=e.mul(p,y),k=e.mul(T,k),k=e.sub(k,P),P=e.mul(T,nt),N=e.mul(p,N),N=e.add(N,P),new h(k,I,N)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return x.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){It("scalar",d,ue,t.n);let w=h.ZERO;if(d===ue)return w;if(d===ft)return this;let{endo:B}=t;if(!B)return x.unsafeLadder(this,d);let{k1neg:m,k1:S,k2neg:U,k2:L}=B.splitScalar(d),k=w,I=w,N=this;for(;S>ue||L>ue;)S&ft&&(k=k.add(N)),L&ft&&(I=I.add(N)),N=N.double(),S>>=ft,L>>=ft;return m&&(k=k.negate()),U&&(I=I.negate()),I=new h(e.mul(I.px,B.beta),I.py,I.pz),k.add(I)}multiply(d){let{endo:w,n:B}=t;It("scalar",d,ft,B);let m,S;if(w){let{k1neg:U,k1:L,k2neg:k,k2:I}=w.splitScalar(d),{p:N,f:rt}=this.wNAF(L),{p:F,f:P}=this.wNAF(I);N=x.constTimeNegate(U,N),F=x.constTimeNegate(k,F),F=new h(e.mul(F.px,w.beta),F.py,F.pz),m=N.add(F),S=rt.add(P)}else{let{p:U,f:L}=this.wNAF(d);m=U,S=L}return h.normalizeZ([m,S])[0]}multiplyAndAddUnsafe(d,w,B){let m=h.BASE,S=(L,k)=>k===ue||k===ft||!L.equals(m)?L.multiplyUnsafe(k):L.multiply(k),U=S(this,w).add(S(d,B));return U.is0()?void 0:U}toAffine(d){return l(this,d)}isTorsionFree(){let{h:d,isTorsionFree:w}=t;if(d===ft)return!0;if(w)return w(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:w}=t;return d===ft?this:w?w(h,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Dt("isCompressed",d),this.assertValidity(),s(h,this,d)}toHex(d=!0){return Dt("isCompressed",d),te(this.toRawBytes(d))}}h.BASE=new h(t.Gx,t.Gy,e.ONE),h.ZERO=new h(e.ZERO,e.ONE,e.ZERO);let g=t.nBitLength,x=dn(h,t.endo?Math.ceil(g/2):g);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Oh(r){let t=Sr(r);return Kt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Fc(r){let t=Oh(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(E){return G(E,n)}function a(E){return hn(E,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:u}=Ph({...t,toBytes(E,T,y){let p=T.toAffine(),v=e.toBytes(p.x),C=re;return Dt("isCompressed",y),y?C(Uint8Array.from([T.hasEvenY()?2:3]),v):C(Uint8Array.from([4]),v,e.toBytes(p.y))},fromBytes(E){let T=E.length,y=E[0],p=E.subarray(1);if(T===s&&(y===2||y===3)){let v=ee(p);if(!Br(v,ft,e.ORDER))throw new Error("Point is not on curve");let C=l(v),R;try{R=e.sqrt(C)}catch(H){let D=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+D)}let _=(R&ft)===ft;return(y&1)===1!==_&&(R=e.neg(R)),{x:v,y:R}}else if(T===i&&y===4){let v=e.fromBytes(p.subarray(0,e.BYTES)),C=e.fromBytes(p.subarray(e.BYTES,2*e.BYTES));return{x:v,y:C}}else throw new Error(`Point of length ${T} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),h=E=>te(we(E,t.nByteLength));function g(E){let T=n>>ft;return E>T}function x(E){return g(E)?o(-E):E}let b=(E,T,y)=>ee(E.slice(T,y));class d{constructor(T,y,p){this.r=T,this.s=y,this.recovery=p,this.assertValidity()}static fromCompact(T){let y=t.nByteLength;return T=tt("compactSignature",T,y*2),new d(b(T,0,y),b(T,y,2*y))}static fromDER(T){let{r:y,s:p}=le.toSig(tt("DER",T));return new d(y,p)}assertValidity(){It("r",this.r,ft,n),It("s",this.s,ft,n)}addRecoveryBit(T){return new d(this.r,this.s,T)}recoverPublicKey(T){let{r:y,s:p,recovery:v}=this,C=L(tt("msgHash",T));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let R=v===2||v===3?y+t.n:y;if(R>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let _=v&1?"03":"02",O=c.fromHex(_+h(R)),H=a(R),D=o(-C*H),z=o(p*H),Z=c.BASE.multiplyAndAddUnsafe(O,D,z);if(!Z)throw new Error("point at infinify");return Z.assertValidity(),Z}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Ue(this.toDERHex())}toDERHex(){return le.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ue(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}let w={isValidPrivateKey(E){try{return f(E),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let E=si(t.n);return xa(t.randomBytes(E),t.n)},precompute(E=8,T=c.BASE){return T._setWindowSize(E),T.multiply(BigInt(3)),T}};function B(E,T=!0){return c.fromPrivateKey(E).toRawBytes(T)}function m(E){let T=ye(E),y=typeof E=="string",p=(T||y)&&E.length;return T?p===s||p===i:y?p===2*s||p===2*i:E instanceof c}function S(E,T,y=!0){if(m(E))throw new Error("first arg must be private key");if(!m(T))throw new Error("second arg must be public key");return c.fromHex(T).multiply(f(E)).toRawBytes(y)}let U=t.bits2int||function(E){let T=ee(E),y=E.length*8-t.nBitLength;return y>0?T>>BigInt(y):T},L=t.bits2int_modN||function(E){return o(U(E))},k=Ar(t.nBitLength);function I(E){return It(`num < 2^${t.nBitLength}`,E,ue,k),we(E,t.nByteLength)}function N(E,T,y=rt){if(["recovered","canonical"].some(lt=>lt in y))throw new Error("sign() legacy options not supported");let{hash:p,randomBytes:v}=t,{lowS:C,prehash:R,extraEntropy:_}=y;C==null&&(C=!0),E=tt("msgHash",E),Mc(y),R&&(E=tt("prehashed msgHash",p(E)));let O=L(E),H=f(T),D=[I(H),I(O)];if(_!=null&&_!==!1){let lt=_===!0?v(e.BYTES):_;D.push(tt("extraEntropy",lt))}let z=re(...D),Z=O;function ct(lt){let ht=U(lt);if(!u(ht))return;let wt=a(ht),st=c.BASE.multiply(ht).toAffine(),kt=o(st.x);if(kt===ue)return;let jt=o(wt*o(Z+kt*H));if(jt===ue)return;let gr=(st.x===kt?0:2)|Number(st.y&ft),yr=jt;return C&&g(jt)&&(yr=x(jt),gr^=1),new d(kt,yr,gr)}return{seed:z,k2sig:ct}}let rt={lowS:t.lowS,prehash:!1},F={lowS:t.lowS,prehash:!1};function P(E,T,y=rt){let{seed:p,k2sig:v}=N(E,T,y),C=t;return ti(C.hash.outputLen,C.nByteLength,C.hmac)(p,v)}c.BASE._setWindowSize(8);function nt(E,T,y,p=F){let v=E;if(T=tt("msgHash",T),y=tt("publicKey",y),"strict"in p)throw new Error("options.strict was renamed to lowS");Mc(p);let{lowS:C,prehash:R}=p,_,O;try{if(typeof v=="string"||ye(v))try{_=d.fromDER(v)}catch(st){if(!(st instanceof le.Err))throw st;_=d.fromCompact(v)}else if(typeof v=="object"&&typeof v.r=="bigint"&&typeof v.s=="bigint"){let{r:st,s:kt}=v;_=new d(st,kt)}else throw new Error("PARSE");O=c.fromHex(y)}catch(st){if(st.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&_.hasHighS())return!1;R&&(T=t.hash(T));let{r:H,s:D}=_,z=L(T),Z=a(D),ct=o(z*Z),lt=o(H*Z),ht=c.BASE.multiplyAndAddUnsafe(O,ct,lt)?.toAffine();return ht?o(ht.x)===H:!1}return{CURVE:t,getPublicKey:B,getSharedSecret:S,sign:P,verify:nt,ProjectivePoint:c,Signature:d,utils:w}}function Dh(r){return{hash:r,hmac:(t,...e)=>Xi(r,t,Gs(...e)),randomBytes:cn}}function Kc(r,t){let e=n=>Fc({...r,...Dh(n)});return Object.freeze({...e(t),create:e})}var zc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),qc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Mh=BigInt(1),Qi=BigInt(2),$c=(r,t)=>(r+t/Qi)/t;function Hh(r){let t=zc,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,l=f*f*r%t,u=X(l,e,t)*l%t,h=X(u,e,t)*l%t,g=X(h,Qi,t)*f%t,x=X(g,s,t)*g%t,b=X(x,i,t)*x%t,d=X(b,a,t)*b%t,w=X(d,c,t)*d%t,B=X(w,a,t)*b%t,m=X(B,e,t)*l%t,S=X(m,o,t)*x%t,U=X(S,n,t)*f%t,L=X(U,Qi,t);if(!to.eql(to.sqr(L),r))throw new Error("Cannot find square root");return L}var to=xe(zc,void 0,void 0,{sqrt:Hh}),Fe=Kc({a:BigInt(0),b:BigInt(7),Fp:to,n:qc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=qc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Mh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=$c(i*r,t),c=$c(-n*r,t),f=G(r-a*e-c*s,t),l=G(-a*n-c*i,t),u=f>o,h=l>o;if(u&&(f=t-f),h&&(l=t-l),f>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:f,k2neg:h,k2:l}}}},er),Hm=BigInt(0);var Fm=Fe.ProjectivePoint;function Rt(r,t){t==null&&(t=r.reduce((s,i)=>s+i.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function Gc(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Wc(r,t,e){let n=kr.digest(e instanceof Uint8Array?e:e.subarray());if(Gc(n))return n.then(({digest:s})=>Fe.verify(t,s,r)).catch(s=>{throw new Mr(String(s))});try{return Fe.verify(t,n.digest,r)}catch(s){throw new Mr(String(s))}}var ps=class{type="secp256k1";raw;_key;constructor(t){this._key=jc(t),this.raw=Zc(this._key)}toMultihash(){return Xt.digest(qt(this))}toCID(){return it.createV1(114,this.toMultihash())}toString(){return Y.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Wc(this._key,e,t)}};function eo(r){return new ps(r)}function Zc(r){return Fe.ProjectivePoint.fromHex(r).toRawBytes(!0)}function jc(r){try{return Fe.ProjectivePoint.fromHex(r),r}catch(t){throw new $e(String(t))}}function ms(r){let{Type:t,Data:e}=zt.decode(r),n=e??new Uint8Array;switch(t){case at.RSA:return Ji(n);case at.Ed25519:return li(n);case at.secp256k1:return eo(n);default:throw new Ce}}function Yc(r){let{Type:t,Data:e}=zt.decode(r.digest),n=e??new Uint8Array;switch(t){case at.Ed25519:return li(n);case at.secp256k1:return eo(n);default:throw new Ce}}function qt(r){return zt.encode({Type:at[r.type],Data:r.raw})}var Jc=Symbol.for("nodejs.util.inspect.custom"),Fh=114,Kr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[en]=!0;toString(){return this.string==null&&(this.string=Y.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return it.createV1(Fh,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ut(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ut(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Jc](){return`PeerId(${this.toString()})`}},qr=class extends Kr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},$r=class extends Kr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},zr=class extends Kr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Kh=2336,Gr=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Xt.digest(j(this.url))}[Jc](){return`PeerId(${this.url})`}[en]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return it.createV1(Kh,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=q(t)),t.toString()===this.toString())}};var qh=114,Xc=2336;function Qc(r){if(r.type==="Ed25519")return new $r({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new zr({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new qr({multihash:r.toCID().multihash,publicKey:r});throw new Ce}function ro(r){if(zh(r))return new qr({multihash:r});if($h(r))try{let t=Yc(r);if(t.type==="Ed25519")return new $r({multihash:r,publicKey:t});if(t.type==="secp256k1")return new zr({multihash:r,publicKey:t})}catch{let e=q(r.digest);return new Gr(new URL(e))}throw new nn("Supplied PeerID Multihash is invalid")}function gs(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==qh&&r.code!==Xc)throw new rn("Supplied PeerID CID is invalid");if(r.code===Xc){let t=q(r.multihash.digest);return new Gr(new URL(t))}return ro(r.multihash)}function $h(r){return r.code===Xt.code}function zh(r){return r.code===kr.code}var el=Symbol.for("@achingbrain/uint8arraylist");function tl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function ys(r){return!!r?.[el]}var bs=class r{bufs;length;[el]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ys(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ys(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=tl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=tl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(ys(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Rt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Rt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),i=new r;return i.length=s,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,t>=c)continue;let f=t>=a&&t<c,l=e>a&&e<=c;if(f&&l){if(t===a&&e===c){n.push(o);break}let u=t-a;n.push(o.subarray(u,u+(e-t)));break}if(f){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(l){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ys(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,f=n.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let h=f;h>=0;h--){let g=this.get(u+h);if(n[h]!==g){l=Math.max(1,h-a[g]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ut(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,i)=>s+i.byteLength,0)),n.length=e,n}};var Wr;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={publicKey:et(0),payloadType:et(0),payload:et(0),signature:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.publicKey=e.bytes();break}case 2:{i.payloadType=e.bytes();break}case 3:{i.payload=e.bytes();break}case 5:{i.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Wr||(Wr={}));var ws=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var cr=class r{static createFromProtobuf=async t=>{let e=Wr.decode(t),n=ms(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,i=t.marshal(),o=rl(n,s,i),a=await e.sign(o.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:i,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new ws("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:i}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=i}marshal(){return this.marshaled==null&&(this.marshaled=Wr.encode({publicKey:qt(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ut(this.marshal(),t.marshal())}async validate(t){let e=rl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},rl=(r,t,e)=>{let n=j(r),s=$t(n.byteLength),i=$t(t.length),o=$t(e.length);return new bs(s,n,i,t,o,e)};function nl(r,t){let e=(n,s)=>n.toString().localeCompare(s.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,s)=>t[s].equals(n)))}var xs=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*s)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let h=Number.parseInt(u,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(i*=t,i+=l,i>f||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[s]=o[0],e[s+1]=o[1],e[s+2]=o[2],e[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];e[s]=i>>8,e[s+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=t(i.subarray(0,o));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var sl=45,Gh=15,lr=new xs;function no(r){if(!(r.length>Gh))return lr.new(r).parseWith(()=>lr.readIPv4Addr())}function so(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>sl))return lr.new(r).parseWith(()=>lr.readIPv6Addr())}function vs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>sl))return lr.new(r).parseWith(()=>lr.readIPAddr())}var by=parseInt("0xFFFF",16),wy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function al(r){return!!no(r)}function cl(r){return!!so(r)}function Es(r){return!!vs(r)}var ll=al,Jh=cl,io=function(r){let t=0;if(r=r.toString().trim(),ll(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(Jh(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=ll(e[n]),o;i&&(o=io(e[n]),e[n]=q(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,q(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let i=parseInt(e[n],16);s[t++]=i>>8&255,s[t++]=i&255}return s}throw new Error("invalid ip address")},ul=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let i=0;i<e;i++)s.push(r[t+i]);return s.join(".")}if(e===16){let s=[];for(let i=0;i<e;i+=2)s.push(n.getUint16(t+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ur={},oo={},Qh=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Qh.forEach(r=>{let t=td(...r);oo[t.code]=t,ur[t.name]=t});function td(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function W(r){if(typeof r=="number"){if(oo[r]!=null)return oo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(ur[r]!=null)return ur[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var rb=W("ip4"),nb=W("ip6"),sb=W("ipcidr");function uo(r,t){switch(W(r).code){case 4:case 41:return rd(t);case 42:return lo(t);case 6:case 273:case 33:case 132:return dl(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return lo(t);case 421:return od(t);case 444:return hl(t);case 445:return hl(t);case 466:return id(t);case 481:return globalThis.encodeURIComponent(lo(t));default:return q(t,"base16")}}function fo(r,t){switch(W(r).code){case 4:return fl(t);case 41:return fl(t);case 42:return co(t);case 6:case 273:case 33:case 132:return ho(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return co(t);case 421:return nd(t);case 444:return ad(t);case 445:return cd(t);case 466:return sd(t);case 481:return co(globalThis.decodeURIComponent(t));default:return j(t,"base16")}}var ao=Object.values(Ir).map(r=>r.decoder),ed=function(){let r=ao[0].or(ao[1]);return ao.slice(2).forEach(t=>r=r.or(t)),r}();function fl(r){if(!Es(r))throw new Error("invalid ip address");return io(r)}function rd(r){let t=ul(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Es(t))throw new Error("invalid ip address");return t}function ho(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function dl(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function co(r){let t=j(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function lo(r){let t=Pe(r);if(r=r.slice(Nt(t)),r.length!==t)throw new Error("inconsistent lengths");return q(r)}function nd(r){let t;r[0]==="Q"||r[0]==="1"?t=pe(Y.decode(`z${r}`)).bytes:t=it.parse(r).multihash.bytes;let e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function sd(r){let t=ed.decode(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function id(r){let t=Pe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+q(e,"base64url")}function od(r){let t=Pe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return q(e,"base58btc")}function ad(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Vt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ho(n);return Rt([e,s],e.length+s.length)}function cd(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Vt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=ho(n);return Rt([e,s],e.length+s.length)}function hl(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=q(t,"base32"),s=dl(e);return`${n}:${s}`}function pl(r){r=po(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=W(o);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(i++,i>=s.length)throw gl("invalid address: "+r);if(a.path===!0){n=po(s.slice(i).join("/")),t.push([a.code,fo(a.code,n)]),e.push([a.code,n]);break}let c=fo(a.code,s[i]);t.push([a.code,c]),e.push([a.code,uo(a.code,c)])}return{string:ml(e),bytes:go(t),tuples:t,stringTuples:e,path:n}}function mo(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let i=Pe(r,s),o=Nt(i),a=W(i),c=ld(a,r.slice(s+o));if(c===0){t.push([i]),e.push([i]),s+=o;continue}let f=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw gl("Invalid address Uint8Array: "+q(r,"base16"));t.push([i,f]);let l=uo(i,f);if(e.push([i,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(r),string:ml(e),tuples:t,stringTuples:e,path:n}}function ml(r){let t=[];return r.map(e=>{let n=W(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),po(t.join("/"))}function go(r){return Rt(r.map(t=>{let e=W(t[0]),n=Uint8Array.from($t(e.code));return t.length>1&&t[1]!=null&&(n=Rt([n,t[1]])),n}))}function ld(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Pe(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Nt(e)}}function po(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function gl(r){return new Error("Error parsing address: "+r)}var ud=Symbol.for("nodejs.util.inspect.custom"),bo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),fd=[W("dns").code,W("dns4").code,W("dns6").code,W("dnsaddr").code],yo=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},Bs=class r{bytes;#t;#e;#i;#a;[bo]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=mo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=pl(t)}else if(As(t))e=mo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#i=e.stringTuples,this.#a=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,i="",o=W("tcp"),a=W("udp"),c=W("ip4"),f=W("ip6"),l=W("dns6"),u=W("ip6zone");for(let[g,x]of this.stringTuples())g===u.code&&(i=`%${x??""}`),fd.includes(g)&&(e=o.name,s=443,n=`${x??""}${i}`,t=g===l.code?6:4),(g===o.code||g===a.code)&&(e=W(g).name,s=parseInt(x??"")),(g===c.code||g===f.code)&&(e=W(g).name,n=`${x??""}${i}`,t=g===f.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},W(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>W(t).name)}tuples(){return this.#e}stringTuples(){return this.#i}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(go(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===ur.p2p.code&&t.push([n,s]),n===ur["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?q(Y.decode(`z${n}`),"base58btc"):q(it.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ut(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=yl.get(e.name);if(n==null)throw new yo(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>fe(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[ud](){return`Multiaddr(${this.#t})`}};var yl=new Map;function As(r){return!!r?.[bo]}function fe(r){return new Bs(r)}var bl="libp2p-peer-record",wl=Uint8Array.from([3,1]);var Zr;(function(r){let t;(function(n){let s;n.codec=()=>(s==null&&(s=Bt((i,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),i.multiaddr!=null&&i.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(i.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(i,o,a={})=>{let c={multiaddr:et(0)},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{c.multiaddr=i.bytes();break}default:{i.skipType(l&7);break}}}return c})),s),n.encode=i=>Et(i,n.codec()),n.decode=(i,o)=>vt(i,n.codec(),o)})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=Bt((n,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(s.uint32(10),s.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(s.uint32(16),s.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)s.uint32(26),r.AddressInfo.codec().encode(o,s);i.lengthDelimited!==!1&&s.ldelim()},(n,s,i={})=>{let o={peerId:et(0),seq:0n,addresses:[]},a=s==null?n.len:n.pos+s;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{o.peerId=n.bytes();break}case 2:{o.seq=n.uint64();break}case 3:{if(i.limits?.addresses!=null&&o.addresses.length===i.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:i.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return o})),e),r.encode=n=>Et(n,r.codec()),r.decode=(n,s)=>vt(n,r.codec(),s)})(Zr||(Zr={}));var Ke=class r{static createFromProtobuf=t=>{let e=Zr.decode(t),n=ro(pe(e.peerId)),s=(e.addresses??[]).map(o=>fe(o.multiaddr)),i=e.seq;return new r({peerId:n,multiaddrs:s,seqNumber:i})};static DOMAIN=bl;static CODEC=wl;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(t){let{peerId:e,multiaddrs:n,seqNumber:s}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=s??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Zr.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof r)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!nl(this.multiaddrs,t.multiaddrs))}};function hd(r){return r[Symbol.asyncIterator]!=null}function dd(r){if(hd(r))return(async()=>{let e=[];for await(let n of r)e.push(n);return e})();let t=[];for(let e of r)t.push(e);return t}var xl=dd;function Ss(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:t(s)}}};return e}var jr=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),{key:e,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return Ss(this.map.entries(),t=>[t[1].key,t[1].value])}forEach(t){this.map.forEach((e,n)=>{t(e.value,e.key,this)})}get(t){return this.map.get(t.toString())?.value}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),{key:t,value:e})}keys(){return Ss(this.map.values(),t=>t.key)}values(){return Ss(this.map.values(),t=>t.value)}get size(){return this.map.size}};var xo=qo(El(),1);var Jr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},vo=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Bl=r=>globalThis.DOMException===void 0?new vo(r):new DOMException(r),Al=r=>{let t=r.reason===void 0?Bl("This operation was aborted."):r.reason;return t instanceof Error?t:Bl(t)};function Xr(r,t){let{milliseconds:e,fallback:n,message:s,customTimers:i={setTimeout,clearTimeout}}=t,o,c=new Promise((f,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(t.signal){let{signal:h}=t;h.aborted&&l(Al(h));let g=()=>{l(Al(h))};h.addEventListener("abort",g,{once:!0}),r.finally(()=>{h.removeEventListener("abort",g)})}if(e===Number.POSITIVE_INFINITY){r.then(f,l);return}let u=new Jr;o=i.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){l(h)}return}typeof r.cancel=="function"&&r.cancel(),s===!1?f():s instanceof Error?l(s):(u.message=s??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{f(await r)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{i.clearTimeout.call(void 0,o),o=void 0},c}function Eo(r,t,e){let n=0,s=r.length;for(;s>0;){let i=Math.trunc(s/2),o=n+i;e(r[o],t)<=0?(n=++o,s-=i+1):s=i}return n}var Qr=class{#t=[];enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=e.priority){this.#t.push(n);return}let s=Eo(this.#t,n,(i,o)=>o.priority-i.priority);this.#t.splice(s,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}};var fr=class extends xo.default{#t;#e;#i=0;#a;#c;#p=0;#n;#l;#r;#m;#s=0;#u;#o;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Qr,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#e=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#r=new t.queueClass,this.#m=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#o=t.autoStart===!1}get#w(){return this.#e||this.#i<this.#a}get#x(){return this.#s<this.#u}#v(){this.#s--,this.#f(),this.emit("next")}#E(){this.#b(),this.#y(),this.#l=void 0}get#B(){let t=Date.now();if(this.#n===void 0){let e=this.#p-t;if(e<0)this.#i=this.#t?this.#s:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},e)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#o){let t=!this.#B;if(this.#w&&this.#x){let e=this.#r.dequeue();return e?(this.emit("active"),e(),t&&this.#y(),!0):!1}}return!1}#y(){this.#e||this.#n!==void 0||(this.#n=setInterval(()=>{this.#b()},this.#c),this.#p=Date.now()+this.#c)}#b(){this.#i===0&&this.#s===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#i=this.#t?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#u=t,this.#h()}async#A(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:this.#g,...e},new Promise((n,s)=>{this.#r.enqueue(async()=>{this.#s++,this.#i++;try{e.signal?.throwIfAborted();let i=t({signal:e.signal});e.timeout&&(i=Xr(Promise.resolve(i),{milliseconds:e.timeout})),e.signal&&(i=Promise.race([i,this.#A(e.signal)]));let o=await i;n(o),this.emit("completed",o)}catch(i){if(i instanceof Jr&&!e.throwOnTimeout){n();return}s(i),this.emit("error",i)}finally{this.#v()}},e),this.emit("add"),this.#f()})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#r.size<t||await this.#d("next",()=>this.#r.size<t)}async onIdle(){this.#s===0&&this.#r.size===0||await this.#d("idle")}async#d(t,e){return new Promise(n=>{let s=()=>{e&&!e()||(this.off(t,s),n())};this.on(t,s)})}get size(){return this.#r.size}sizeBy(t){return this.#r.filter(t).length}get pending(){return this.#s}get isPaused(){return this.#o}};var Ie={},hr=r=>{r.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)})};hr.addEventListener=(r,t)=>{Ie[r]==null&&(Ie[r]=[]),Ie[r].push(t)};hr.removeEventListener=(r,t)=>{Ie[r]!=null&&(Ie[r]=Ie[r].filter(e=>e===t))};hr.dispatchEvent=function(r,t,e){Ie[r]!=null&&Ie[r].forEach(n=>n(t,e))};var Bo=hr;var Ao="lock:worker:request-read",So="lock:worker:release-read",ko="lock:master:grant-read",Io="lock:worker:request-write",To="lock:worker:release-write",Co="lock:master:grant-write";var Sl=(r=21)=>Math.random().toString().substring(2);var kl=(r,t,e,n,s)=>(i,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>{i.postMessage({type:s,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=l=>{if(l==null||l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===n&&u.identifier===a.identifier&&(i.removeEventListener("message",f),c())};i.addEventListener("message",f)})}}}))},Il=(r,t,e,n)=>async()=>{let s=Sl();return globalThis.postMessage({type:t,identifier:s,name:r}),new Promise(i=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===s&&(globalThis.removeEventListener("message",o),i(()=>{globalThis.postMessage({type:n,identifier:s,name:r})}))};globalThis.addEventListener("message",o)})},gd={singleProcess:!1},Tl=r=>{if(r=Object.assign({},gd,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return Bo.addEventListener("message",kl(e,"requestReadLock",Ao,So,ko)),Bo.addEventListener("message",kl(e,"requestWriteLock",Io,To,Co)),e}return{isWorker:!0,readLock:e=>Il(e,Ao,ko,So),writeLock:e=>Il(e,Io,Co,To)}};var qe={},Te;async function No(r,t){let e,n=new Promise(s=>{e=s});return r.add(async()=>Xr((async()=>{await new Promise(s=>{e(()=>{s()})})})(),{milliseconds:t.timeout})),n}var yd=(r,t)=>{if(Te.isWorker===!0)return{readLock:Te.readLock(r,t),writeLock:Te.writeLock(r,t)};let e=new fr({concurrency:1}),n;return{async readLock(){if(n!=null)return No(n,t);n=new fr({concurrency:t.concurrency,autoStart:!1});let s=n,i=No(n,t);return e.add(async()=>{s.start(),await s.onIdle().then(()=>{n===s&&(n=null)})}),i},async writeLock(){return n=null,No(e,t)}}},bd={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Lo(r){let t=Object.assign({},bd,r);return Te==null&&(Te=Tl(t),Te.isWorker!==!0&&(Te.addEventListener("requestReadLock",e=>{qe[e.data.name]!=null&&qe[e.data.name].readLock().then(async n=>e.data.handler().finally(()=>{n()}))}),Te.addEventListener("requestWriteLock",async e=>{qe[e.data.name]!=null&&qe[e.data.name].writeLock().then(async n=>e.data.handler().finally(()=>{n()}))}))),qe[t.name]==null&&(qe[t.name]=yd(t.name,t)),qe[t.name]}var dr;(function(r){let t;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:"",value:et(0)},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=o.bytes();break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(t=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let e;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Ts.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:""},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=Ts.codec().decode(o,o.uint32(),{limits:c.limits?.value});break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(e=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Bt((s,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),s.addresses!=null)for(let a of s.addresses)i.uint32(10),Is.codec().encode(a,i);if(s.protocols!=null)for(let a of s.protocols)i.uint32(18),i.string(a);if(s.publicKey!=null&&(i.uint32(34),i.bytes(s.publicKey)),s.peerRecordEnvelope!=null&&(i.uint32(42),i.bytes(s.peerRecordEnvelope)),s.metadata!=null&&s.metadata.size!==0)for(let[a,c]of s.metadata.entries())i.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},i);if(s.tags!=null&&s.tags.size!==0)for(let[a,c]of s.tags.entries())i.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},i);o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let f=s.uint32();switch(f>>>3){case 1:{if(o.limits?.addresses!=null&&a.addresses.length===o.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');a.addresses.push(Is.codec().decode(s,s.uint32(),{limits:o.limits?.addresses$}));break}case 2:{if(o.limits?.protocols!=null&&a.protocols.length===o.limits.protocols)throw new Me('Decode error - map field "protocols" had too many elements');a.protocols.push(s.string());break}case 4:{a.publicKey=s.bytes();break}case 5:{a.peerRecordEnvelope=s.bytes();break}case 6:{if(o.limits?.metadata!=null&&a.metadata.size===o.limits.metadata)throw new Nr('Decode error - map field "metadata" had too many elements');let l=r.Peer$metadataEntry.codec().decode(s,s.uint32());a.metadata.set(l.key,l.value);break}case 7:{if(o.limits?.tags!=null&&a.tags.size===o.limits.tags)throw new Nr('Decode error - map field "tags" had too many elements');let l=r.Peer$tagsEntry.codec().decode(s,s.uint32(),{limits:{value:o.limits?.tags$value}});a.tags.set(l.key,l.value);break}default:{s.skipType(f&7);break}}}return a})),n),r.encode=s=>Et(s,r.codec()),r.decode=(s,i)=>vt(s,r.codec(),i)})(dr||(dr={}));var Is;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={multiaddr:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.multiaddr=e.bytes();break}case 2:{i.isCertified=e.bool();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Is||(Is={}));var Ts;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.value!=null&&e.value!==0&&(n.uint32(8),n.uint32(e.value)),e.expiry!=null&&(n.uint32(16),n.uint64(e.expiry)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={value:0},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.value=e.uint32();break}case 2:{i.expiry=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Ts||(Ts={}));function pr(r,t){let e=dr.decode(t);if(e.publicKey!=null&&r.publicKey==null){let i=ms(e.publicKey);r=Qc(i)}let n=new Map,s=BigInt(Date.now());for(let[i,o]of e.tags.entries())o.expiry!=null&&o.expiry<s||n.set(i,o);return{...e,id:r,addresses:e.addresses.map(({multiaddr:i,isCertified:o})=>({multiaddr:fe(i),isCertified:o??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}var he="/",Cl=new TextEncoder().encode(he),Cs=Cl[0],Ns=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=j(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Cs)throw new Error("Invalid key")}toString(t="utf8"){return q(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(he))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Cl),this._buf[0]!==Cs){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Cs,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Cs;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let s=0;s<e.length;s++){if(n.length<s+1)return!1;let i=e[s],o=n[s];if(i<o)return!0;if(i>o)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(he).slice(1)}type(){return wd(this.baseNamespace())}name(){return xd(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(he)||(t+=he),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(he):new r(t.slice(0,-1).join(he))}child(t){return this.toString()===he?t:t.toString()===he?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...vd(t.map(e=>e.namespaces()))])}};function wd(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function xd(r){let t=r.split(":");return t[t.length-1]}function vd(r){return[].concat(...r)}var Uo="/peers/";function mr(r){if(!$o(r)||r.type==null)throw new K("Invalid PeerId");let t=r.toCID().toString();return new Ns(`${Uo}${t}`)}async function Nl(r,t,e){let n=new Map;for(let s of e){if(s==null)continue;if(s.multiaddr instanceof Uint8Array&&(s.multiaddr=fe(s.multiaddr)),!As(s.multiaddr))throw new K("Multiaddr was invalid");if(!await t(r,s.multiaddr))continue;let i=s.isCertified??!1,o=s.multiaddr.toString(),a=n.get(o);a!=null?s.isCertified=a.isCertified||i:n.set(o,{multiaddr:s.multiaddr,isCertified:i})}return[...n.values()].sort((s,i)=>s.multiaddr.toString().localeCompare(i.multiaddr.toString())).map(({isCertified:s,multiaddr:i})=>({isCertified:s,multiaddr:i.bytes}))}async function Us(r,t,e,n){if(t==null)throw new K("Invalid PeerData");if(t.publicKey!=null&&r.publicKey!=null&&!t.publicKey.equals(r.publicKey))throw new K("publicKey bytes do not match peer id publicKey bytes");let s=n.existingPeer;if(s!=null&&!r.equals(s.id))throw new K("peer id did not match existing peer id");let i=s?.addresses??[],o=new Set(s?.protocols??[]),a=s?.metadata??new Map,c=s?.tags??new Map,f=s?.peerRecordEnvelope;if(e==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(i=[],t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Ls(h,{validate:Ll})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Ls(h,{validate:Ul,map:Rl})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}if(e==="merge"){if(t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[g,x]of h)x==null?a.delete(g):a.set(g,x);a=Ls([...a.entries()],{validate:Ll})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),g=new Map(c);for(let[x,b]of h)b==null?g.delete(x):g.set(x,b);c=Ls([...g.entries()],{validate:Ul,map:Rl})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}let l;s?.id.publicKey!=null?l=qt(s.id.publicKey):t.publicKey!=null?l=qt(t.publicKey):r.publicKey!=null&&(l=qt(r.publicKey));let u={addresses:await Nl(r,n.addressFilter??(async()=>!0),i),protocols:[...o.values()].sort((h,g)=>h.localeCompare(g)),metadata:a,tags:c,publicKey:l,peerRecordEnvelope:f};return r.type!=="RSA"&&delete u.publicKey,u}function Ls(r,t){let e=new Map;for(let[n,s]of r)s!=null&&t.validate(n,s);for(let[n,s]of r.sort(([i],[o])=>i.localeCompare(o)))s!=null&&e.set(n,t.map?.(n,s)??s);return e}function Ll(r,t){if(typeof r!="string")throw new K("Metadata key must be a string");if(!(t instanceof Uint8Array))throw new K("Metadata value must be a Uint8Array")}function Ul(r,t){if(typeof r!="string")throw new K("Tag name must be a string");if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new K("Tag value must be an integer");if(t.value<0||t.value>100)throw new K("Tag value must be between 0-100")}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new K("Tag ttl must be an integer");if(t.ttl<0)throw new K("Tag ttl must be between greater than 0")}}function Rl(r,t){let e;return t.expiry!=null&&(e=t.expiry),t.ttl!=null&&(e=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:e}}function Rs(r,t,e){let n=r.toString().split("/")[2],s=it.parse(n,Vt),i=gs(s),o=e.get(i);if(o!=null)return o;let a=pr(i,t);return e.set(i,a),a}function Ed(r,t){return r==null?{}:{prefix:Uo,filters:(r.filters??[]).map(e=>({key:n,value:s})=>e(Rs(n,s,t))),orders:(r.orders??[]).map(e=>(n,s)=>e(Rs(n.key,n.value,t),Rs(s.key,s.value,t)))}}var _s=class{peerId;datastore;lock;addressFilter;constructor(t,e={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=e.addressFilter,this.lock=Lo({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(mr(t))}async delete(t){if(this.peerId.equals(t))throw new K("Cannot delete self peer");await this.datastore.delete(mr(t))}async load(t){let e=await this.datastore.get(mr(t));return pr(t,e)}async save(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"patch",{addressFilter:this.addressFilter});return this.#e(t,i,n,s)}async patch(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"patch",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async merge(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Us(t,e,"merge",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async*all(t){let e=new jr;for await(let{key:n,value:s}of this.datastore.query(Ed(t??{},e))){let i=Rs(n,s,e);i.id.equals(this.peerId)||(yield i)}}async#t(t){try{let e=await this.datastore.get(mr(t)),n=pr(t,e);return{existingBuf:e,existingPeer:n}}catch(e){if(e.name!=="NotFoundError")throw e}return{}}async#e(t,e,n,s){let i=dr.encode(e);return n!=null&&ut(i,n)?{peer:pr(t,i),previous:s,updated:!1}:(await this.datastore.put(mr(t),i),{peer:pr(t,i),previous:s,updated:!0})}};var Ro=class{store;events;peerId;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.events=t.events,this.peerId=t.peerId,this.store=new _s(t,e)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(t,e){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let s of this.store.all(e))t(s)}finally{this.log.trace("forEach release read lock"),n()}}async all(t){this.log.trace("all await read lock");let e=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await xl(this.store.all(t))}finally{this.log.trace("all release read lock"),e()}}async delete(t){this.log.trace("delete await write lock");let e=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(t)}finally{this.log.trace("delete release write lock"),e()}}async has(t){this.log.trace("has await read lock");let e=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(t)}finally{this.log.trace("has release read lock"),e()}}async get(t){this.log.trace("get await read lock");let e=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(t)}finally{this.log.trace("get release read lock"),e()}}async save(t,e){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let s=await this.store.save(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("save release write lock"),n()}}async patch(t,e){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let s=await this.store.patch(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(t,e){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let s=await this.store.merge(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(t,e){let n=await cr.openAndCertify(t,Ke.DOMAIN),s=gs(n.publicKey.toCID());if(e?.equals(s)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",e,s),!1;let i=Ke.createFromProtobuf(n.payload),o;try{o=await this.get(s)}catch(a){if(a.name!=="NotFoundError")throw a}if(o?.peerRecordEnvelope!=null){let a=await cr.createFromProtobuf(o.peerRecordEnvelope),c=Ke.createFromProtobuf(a.payload);if(c.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:t,addresses:i.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!0}#t(t,e){e.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:e}):this.events.safeDispatchEvent("peer:update",{detail:e}))}};function Bd(r,t={}){return new Ro(r,t)}return Wl(Ad);})();
7
7
  /*! Bundled license information:
8
8
 
9
9
  pvtsutils/build/index.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-store",
3
- "version": "11.0.8",
3
+ "version": "11.0.9",
4
4
  "description": "Stores information about peers libp2p knows on the network",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-store#readme",
@@ -61,9 +61,9 @@
61
61
  "dependencies": {
62
62
  "@libp2p/crypto": "^5.0.5",
63
63
  "@libp2p/interface": "^2.1.3",
64
- "@libp2p/peer-collections": "^6.0.8",
65
- "@libp2p/peer-id": "^5.0.5",
66
- "@libp2p/peer-record": "^8.0.8",
64
+ "@libp2p/peer-collections": "^6.0.9",
65
+ "@libp2p/peer-id": "^5.0.6",
66
+ "@libp2p/peer-record": "^8.0.9",
67
67
  "@multiformats/multiaddr": "^12.2.3",
68
68
  "interface-datastore": "^8.3.0",
69
69
  "it-all": "^3.0.6",
@@ -74,7 +74,7 @@
74
74
  "uint8arrays": "^5.1.0"
75
75
  },
76
76
  "devDependencies": {
77
- "@libp2p/logger": "^5.1.1",
77
+ "@libp2p/logger": "^5.1.2",
78
78
  "@types/sinon": "^17.0.3",
79
79
  "aegir": "^44.0.1",
80
80
  "datastore-core": "^10.0.0",