libp2p 1.4.3 → 1.5.0-9d13a2f6a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,23 +1,23 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2P=(()=>{var Md=Object.create;var xo=Object.defineProperty;var Fd=Object.getOwnPropertyDescriptor;var Vd=Object.getOwnPropertyNames;var Kd=Object.getPrototypeOf,Hd=Object.prototype.hasOwnProperty;var ht=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),be=(r,e)=>{for(var t in e)xo(r,t,{get:e[t],enumerable:!0})},Ll=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Vd(e))!Hd.call(r,o)&&o!==t&&xo(r,o,{get:()=>e[o],enumerable:!(n=Fd(e,o))||n.enumerable});return r};var Ft=(r,e,t)=>(t=r!=null?Md(Kd(r)):{},Ll(e||!r||!r.__esModule?xo(t,"default",{value:r,enumerable:!0}):t,r)),$d=r=>Ll(xo({},"__esModule",{value:!0}),r);var Uu=ht(rn=>{"use strict";var bg="[object ArrayBuffer]",Nt=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===bg}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),o=r.toUint8Array(t);if(n.length!==o.byteLength)return!1;for(let s=0;s<n.length;s++)if(n[s]!==o[s])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let i of t)n+=i.byteLength;let o=new Uint8Array(n),s=0;for(let i of t){let a=this.toUint8Array(i);o.set(a,s),s+=a.length}return e[e.length-1]instanceof Function?this.toView(o,e[e.length-1]):o.buffer}},Qa="string",Eg=/^[0-9a-f]+$/i,xg=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vg=/^[a-zA-Z0-9-_]+$/,Go=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n.buffer}static toString(e){let t=Nt.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return decodeURIComponent(escape(n))}},tt=class{static toString(e,t=!1){let n=Nt.toArrayBuffer(e),o=new DataView(n),s="";for(let i=0;i<n.byteLength;i+=2){let a=o.getUint16(i,t);s+=String.fromCharCode(a)}return s}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),o=new DataView(n);for(let s=0;s<e.length;s++)o.setUint16(s*2,e.charCodeAt(s),t);return n}},zo=class r{static isHex(e){return typeof e===Qa&&Eg.test(e)}static isBase64(e){return typeof e===Qa&&xg.test(e)}static isBase64Url(e){return typeof e===Qa&&vg.test(e)}static ToString(e,t="utf8"){let n=Nt.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return tt.toString(n,!0);case"utf16":case"utf16be":return tt.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return tt.fromString(e,!0);case"utf16":case"utf16be":return tt.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=Nt.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Go.fromString(e);case"utf16":case"utf16be":return tt.fromString(e);case"utf16le":case"usc2":return tt.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Go.toString(e);case"utf16":case"utf16be":return tt.toString(e);case"utf16le":case"usc2":return tt.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);return n.buffer}static ToBinary(e){let t=Nt.toUint8Array(e),n="";for(let o=0;o<t.length;o++)n+=String.fromCharCode(t[o]);return n}static ToHex(e){let t=Nt.toUint8Array(e),n="",o=t.length;for(let s=0;s<o;s++){let i=t[s];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let o=0;o<t.length;o=o+2){let s=t.slice(o,o+2);n[o/2]=parseInt(s,16)}return n.buffer}static ToUtf16String(e,t=!1){return tt.toString(e,t)}static FromUtf16String(e,t=!1){return tt.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};zo.DEFAULT_UTF8_ENCODING="utf8";function Ag(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let o=arguments[n];for(let s in o)t[s]=o[s]}return t}function Rg(...r){let e=r.map(o=>o.byteLength).reduce((o,s)=>o+s),t=new Uint8Array(e),n=0;return r.map(o=>new Uint8Array(o)).forEach(o=>{for(let s of o)t[n++]=s}),t.buffer}function _g(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)if(t[o]!==n[o])return!1;return!0}rn.BufferSourceConverter=Nt;rn.Convert=zo;rn.assign=Ag;rn.combine=Rg;rn.isEqual=_g});var Yf=ht((hv,zf)=>{var cn=1e3,ln=cn*60,un=ln*60,_r=un*24,o0=_r*7,s0=_r*365.25;zf.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return i0(r);if(t==="number"&&isFinite(r))return e.long?c0(r):a0(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function i0(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*s0;case"weeks":case"week":case"w":return t*o0;case"days":case"day":case"d":return t*_r;case"hours":case"hour":case"hrs":case"hr":case"h":return t*un;case"minutes":case"minute":case"mins":case"min":case"m":return t*ln;case"seconds":case"second":case"secs":case"sec":case"s":return t*cn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function a0(r){var e=Math.abs(r);return e>=_r?Math.round(r/_r)+"d":e>=un?Math.round(r/un)+"h":e>=ln?Math.round(r/ln)+"m":e>=cn?Math.round(r/cn)+"s":r+"ms"}function c0(r){var e=Math.abs(r);return e>=_r?Ds(r,e,_r,"day"):e>=un?Ds(r,e,un,"hour"):e>=ln?Ds(r,e,ln,"minute"):e>=cn?Ds(r,e,cn,"second"):r+" ms"}function Ds(r,e,t,n){var o=e>=t*1.5;return Math.round(r/t)+" "+n+(o?"s":"")}});var jf=ht((dv,Wf)=>{function l0(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Yf(),t.destroy=u,Object.keys(r).forEach(f=>{t[f]=r[f]}),t.names=[],t.skips=[],t.formatters={};function e(f){let l=0;for(let h=0;h<f.length;h++)l=(l<<5)-l+f.charCodeAt(h),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(f){let l,h=null,g,d;function p(...m){if(!p.enabled)return;let w=p,x=Number(new Date),b=x-(l||x);w.diff=b,w.prev=l,w.curr=x,l=x,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let A=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(S,N)=>{if(S==="%%")return"%";A++;let C=t.formatters[N];if(typeof C=="function"){let q=m[A];S=C.call(w,q),m.splice(A,1),A--}return S}),t.formatArgs.call(w,m),(w.log||t.log).apply(w,m)}return p.namespace=f,p.useColors=t.useColors(),p.color=t.selectColor(f),p.extend=n,p.destroy=t.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(g!==t.namespaces&&(g=t.namespaces,d=t.enabled(f)),d),set:m=>{h=m}}),typeof t.init=="function"&&t.init(p),p}function n(f,l){let h=t(this.namespace+(typeof l>"u"?":":l)+f);return h.log=this.log,h}function o(f){t.save(f),t.namespaces=f,t.names=[],t.skips=[];let l,h=(typeof f=="string"?f:"").split(/[\s,]+/),g=h.length;for(l=0;l<g;l++)h[l]&&(f=h[l].replace(/\*/g,".*?"),f[0]==="-"?t.skips.push(new RegExp("^"+f.slice(1)+"$")):t.names.push(new RegExp("^"+f+"$")))}function s(){let f=[...t.names.map(a),...t.skips.map(a).map(l=>"-"+l)].join(",");return t.enable(""),f}function i(f){if(f[f.length-1]==="*")return!0;let l,h;for(l=0,h=t.skips.length;l<h;l++)if(t.skips[l].test(f))return!1;for(l=0,h=t.names.length;l<h;l++)if(t.names[l].test(f))return!0;return!1}function a(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Wf.exports=l0});var Xf=ht((We,Ps)=>{We.formatArgs=f0;We.save=h0;We.load=d0;We.useColors=u0;We.storage=p0();We.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();We.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function u0(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function f0(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ps.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}We.log=console.debug||console.log||(()=>{});function h0(r){try{r?We.storage.setItem("debug",r):We.storage.removeItem("debug")}catch{}}function d0(){let r;try{r=We.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function p0(){try{return localStorage}catch{}}Ps.exports=jf()(We);var{formatters:m0}=Ps.exports;m0.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var vh=ht((FA,Bc)=>{"use strict";var $0=Object.prototype.hasOwnProperty,He="~";function ao(){}Object.create&&(ao.prototype=Object.create(null),new ao().__proto__||(He=!1));function q0(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function xh(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new q0(t,n||r,o),i=He?He+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],s]:r._events[i].push(s):(r._events[i]=s,r._eventsCount++),r}function Hs(r,e){--r._eventsCount===0?r._events=new ao:delete r._events[e]}function Pe(){this._events=new ao,this._eventsCount=0}Pe.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)$0.call(t,n)&&e.push(He?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Pe.prototype.listeners=function(e){var t=He?He+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,s=n.length,i=new Array(s);o<s;o++)i[o]=n[o].fn;return i};Pe.prototype.listenerCount=function(e){var t=He?He+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Pe.prototype.emit=function(e,t,n,o,s,i){var a=He?He+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,s),!0;case 6:return c.fn.call(c.context,t,n,o,s,i),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var h=c.length,g;for(l=0;l<h;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,n);break;case 4:c[l].fn.call(c[l].context,t,n,o);break;default:if(!f)for(g=1,f=new Array(u-1);g<u;g++)f[g-1]=arguments[g];c[l].fn.apply(c[l].context,f)}}return!0};Pe.prototype.on=function(e,t,n){return xh(this,e,t,n,!1)};Pe.prototype.once=function(e,t,n){return xh(this,e,t,n,!0)};Pe.prototype.removeListener=function(e,t,n,o){var s=He?He+e:e;if(!this._events[s])return this;if(!t)return Hs(this,s),this;var i=this._events[s];if(i.fn)i.fn===t&&(!o||i.once)&&(!n||i.context===n)&&Hs(this,s);else{for(var a=0,c=[],u=i.length;a<u;a++)(i[a].fn!==t||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:Hs(this,s)}return this};Pe.prototype.removeAllListeners=function(e){var t;return e?(t=He?He+e:e,this._events[t]&&Hs(this,t)):(this._events=new ao,this._eventsCount=0),this};Pe.prototype.off=Pe.prototype.removeListener;Pe.prototype.addListener=Pe.prototype.on;Pe.prefixed=He;Pe.EventEmitter=Pe;typeof Bc<"u"&&(Bc.exports=Pe)});var Gc=ht((oR,Oh)=>{"use strict";function Ph(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function ay(r,e,t){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return Ph(r,t)}catch{t.message=r.message,t.stack=r.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(r)),Ph(new o,t)}}Oh.exports=ay});var Kh=ht(fo=>{(function(){var r,e,t,n,o,s,i,a;a=function(c){var u,f,l,h;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,h=c&255,[u,f,l,h].join(".")},i=function(c){var u,f,l,h,g,d;for(u=[],l=h=0;h<=3&&c.length!==0;l=++h){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}d=e(c),g=d[0],f=d[1],c=c.substring(f),u.push(g)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},t=function(c){return c.charCodeAt(0)},n=t("0"),s=t("a"),o=t("A"),e=function(c){var u,f,l,h,g;for(h=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),g=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)h=h*u+(t(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")h=h*u+(10+t(c[l])-s)>>>0;else if("A"<=c[l]&&c[l]<="F")h=h*u+(10+t(c[l])-o)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");l++}if(l===g)throw new Error("empty octet");return[h,l]},r=function(){function c(u,f){var l,h,g,d;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(d=u.split("/",2),u=d[0],f=d[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=i(f)}catch(p){throw l=p,new Error("Invalid mask: "+f)}for(h=g=32;g>=0;h=--g)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(i(u)&this.maskLong)>>>0}catch(p){throw l=p,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(i(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,h;for(h=i(this.first),l=i(this.last),f=0;h<=l;)u(a(h),h,f),f++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),fo.ip2long=i,fo.long2ip=a,fo.Netmask=r}).call(fo)});var ed=ht((h_,Jh)=>{Jh.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(s,i){t[s]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(s){return t[s]!==void 0||n[s]!==void 0},remove:function(s){t[s]!==void 0&&(t[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){t[s]!==void 0?t[s]=i:o(s,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var sd=ht((N_,od)=>{"use strict";od.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.prototype}});var fd=ht((ld,ud)=>{"use strict";var ui=sd(),{hasOwnProperty:ad}=Object.prototype,{propertyIsEnumerable:Ny}=Object,_n=(r,e,t)=>Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0}),Cy=ld,id={concatArrays:!1,ignoreUndefined:!1},fi=r=>{let e=[];for(let t in r)ad.call(r,t)&&e.push(t);if(Object.getOwnPropertySymbols){let t=Object.getOwnPropertySymbols(r);for(let n of t)Ny.call(r,n)&&e.push(n)}return e};function Sn(r){return Array.isArray(r)?Ly(r):ui(r)?ky(r):r}function Ly(r){let e=r.slice(0,0);return fi(r).forEach(t=>{_n(e,t,Sn(r[t]))}),e}function ky(r){let e=Object.getPrototypeOf(r)===null?Object.create(null):{};return fi(r).forEach(t=>{_n(e,t,Sn(r[t]))}),e}var cd=(r,e,t,n)=>(t.forEach(o=>{typeof e[o]>"u"&&n.ignoreUndefined||(o in r&&r[o]!==Object.getPrototypeOf(r)?_n(r,o,nl(r[o],e[o],n)):_n(r,o,Sn(e[o])))}),r),Dy=(r,e,t)=>{let n=r.slice(0,0),o=0;return[r,e].forEach(s=>{let i=[];for(let a=0;a<s.length;a++)ad.call(s,a)&&(i.push(String(a)),s===r?_n(n,o++,s[a]):_n(n,o++,Sn(s[a])));n=cd(n,s,fi(s).filter(a=>!i.includes(a)),t)}),n};function nl(r,e,t){return t.concatArrays&&Array.isArray(r)&&Array.isArray(e)?Dy(r,e,t):!ui(e)||!ui(r)?Sn(e):cd(r,e,fi(e),t)}ud.exports=function(...r){let e=nl(Sn(id),this!==Cy&&this||{},id),t={_:{}};for(let n of r)if(n!==void 0){if(!ui(n))throw new TypeError("`"+n+"` is not an Option Object");t=nl(t,{_:n},e)}return t._}});var aw={};be(aw,{createLibp2p:()=>iw});var kl=Symbol.for("@libp2p/connection");var Hi=Symbol.for("@libp2p/content-routing");var $i=Symbol.for("@libp2p/peer-discovery");var qi=Symbol.for("@libp2p/peer-id");function vo(r){return r!=null&&!!r[qi]}var Gi=Symbol.for("@libp2p/peer-routing");var Dl="keep-alive";var mw=Symbol.for("@libp2p/transport");var Vt;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Vt||(Vt={}));var Kt=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},y=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}},Ao=class extends AggregateError{code;props;constructor(e,t,n,o){super(e,t),this.code=n,this.name=o?.name??"AggregateCodeError",this.props=o??{}}};var Ro="ERR_TIMEOUT";var Oe=(r,...e)=>{try{[...e]}catch{}};var hr=class extends EventTarget{#e=new Map;constructor(){super(),Oe(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new Yi(e,t))}},zi=class extends Event{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},Yi=globalThis.CustomEvent??zi;function Pl(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var Xa={};be(Xa,{Ed25519PrivateKey:()=>xr,Ed25519PublicKey:()=>Vn,generateKeyPair:()=>gg,generateKeyPairFromSeed:()=>Ou,unmarshalEd25519PrivateKey:()=>pg,unmarshalEd25519PublicKey:()=>mg});var Qi={};be(Qi,{base58btc:()=>ne,base58flickr:()=>jd});var vw=new Uint8Array(0);function Ol(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function vt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ul(r){return new TextEncoder().encode(r)}function Ml(r){return new TextDecoder().decode(r)}function qd(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var p=0,m=0,w=0,x=d.length;w!==x&&d[w]===0;)w++,p++;for(var b=(x-w)*f+1>>>0,A=new Uint8Array(b);w!==x;){for(var v=d[w],S=0,N=b-1;(v!==0||S<m)&&N!==-1;N--,S++)v+=256*A[N]>>>0,A[N]=v%a>>>0,v=v/a>>>0;if(v!==0)throw new Error("Non-zero carry");m=S,w++}for(var C=b-m;C!==b&&A[C]===0;)C++;for(var q=c.repeat(p);C<b;++C)q+=r.charAt(A[C]);return q}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var p=0;if(d[p]!==" "){for(var m=0,w=0;d[p]===c;)m++,p++;for(var x=(d.length-p)*u+1>>>0,b=new Uint8Array(x);d[p];){var A=t[d.charCodeAt(p)];if(A===255)return;for(var v=0,S=x-1;(A!==0||v<w)&&S!==-1;S--,v++)A+=a*b[S]>>>0,b[S]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");w=v,p++}if(d[p]!==" "){for(var N=x-w;N!==x&&b[N]===0;)N++;for(var C=new Uint8Array(m+(x-N)),q=m;N!==x;)C[q++]=b[N++];return C}}}function g(d){var p=h(d);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:h,decode:g}}var Gd=qd,zd=Gd,Vl=zd;var Wi=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ji=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Kl(this,e)}},Xi=class{decoders;constructor(e){this.decoders=e}or(e){return Kl(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Kl(r,e){return new Xi({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Zi=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Wi(e,t,n),this.decoder=new ji(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Mr({name:r,prefix:e,encode:t,decode:n}){return new Zi(r,e,t,n)}function Ht({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Vl(t,r);return Mr({prefix:e,name:r,encode:n,decode:s=>vt(o(s))})}function Yd(r,e,t,n){let o={};for(let f=0;f<e.length;++f)o[e[f]]=f;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),a=0,c=0,u=0;for(let f=0;f<s;++f){let l=o[r[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,i[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function Wd(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;s.length*t&7;)s+="=";return s}function se({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return Mr({prefix:e,name:r,encode(o){return Wd(o,n,t)},decode(o){return Yd(o,n,t,r)}})}var ne=Ht({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),jd=Ht({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ea={};be(ea,{identity:()=>$t});var Xd=ql,Hl=128,Zd=127,Qd=~Zd,Jd=Math.pow(2,31);function ql(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Jd;)e[t++]=r&255|Hl,r/=128;for(;r&Qd;)e[t++]=r&255|Hl,r>>>=7;return e[t]=r|0,ql.bytes=t-n+1,e}var ep=Ji,tp=128,$l=127;function Ji(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Ji.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&$l)<<o:(i&$l)*Math.pow(2,o),o+=7}while(i>=tp);return Ji.bytes=s-n,t}var rp=Math.pow(2,7),np=Math.pow(2,14),op=Math.pow(2,21),sp=Math.pow(2,28),ip=Math.pow(2,35),ap=Math.pow(2,42),cp=Math.pow(2,49),lp=Math.pow(2,56),up=Math.pow(2,63),fp=function(r){return r<rp?1:r<np?2:r<op?3:r<sp?4:r<ip?5:r<ap?6:r<cp?7:r<lp?8:r<up?9:10},hp={encode:Xd,decode:ep,encodingLength:fp},dp=hp,Ln=dp;function kn(r,e=0){return[Ln.decode(r,e),Ln.decode.bytes]}function Fr(r,e,t=0){return Ln.encode(r,e,t),e}function Vr(r){return Ln.encodingLength(r)}function dt(r,e){let t=e.byteLength,n=Vr(r),o=n+Vr(t),s=new Uint8Array(o+t);return Fr(r,s,0),Fr(t,s,n),s.set(e,o),new Kr(r,t,e,s)}function dr(r){let e=vt(r),[t,n]=kn(e),[o,s]=kn(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Kr(t,o,i,e)}function Gl(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Ol(r.bytes,t.bytes)}}var Kr=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var zl=0,pp="identity",Yl=vt;function mp(r){return dt(zl,Yl(r))}var $t={code:zl,name:pp,encode:Yl,digest:mp};var na={};be(na,{sha256:()=>Ae,sha512:()=>gp});function ra({name:r,code:e,encode:t}){return new ta(r,e,t)}var ta=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?dt(this.code,t):t.then(n=>dt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function jl(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Ae=ra({name:"sha2-256",code:18,encode:jl("SHA-256")}),gp=ra({name:"sha2-512",code:19,encode:jl("SHA-512")});function ie(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function At(r=0){return new Uint8Array(r)}function Ne(r=0){return new Uint8Array(r)}function Re(r,e){e==null&&(e=r.reduce((o,s)=>o+s.length,0));let t=Ne(e),n=0;for(let o of r)t.set(o,n),n+=o.length;return t}var oa={};be(oa,{base10:()=>yp});var yp=Ht({prefix:"9",name:"base10",alphabet:"0123456789"});var sa={};be(sa,{base16:()=>wp,base16upper:()=>bp});var wp=se({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),bp=se({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ia={};be(ia,{base2:()=>Ep});var Ep=se({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var aa={};be(aa,{base256emoji:()=>_p});var Xl=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),xp=Xl.reduce((r,e,t)=>(r[t]=e,r),[]),vp=Xl.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Ap(r){return r.reduce((e,t)=>(e+=xp[t],e),"")}function Rp(r){let e=[];for(let t of r){let n=vp[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var _p=Mr({prefix:"\u{1F680}",name:"base256emoji",encode:Ap,decode:Rp});var ca={};be(ca,{base32:()=>Ge,base32hex:()=>Tp,base32hexpad:()=>Cp,base32hexpadupper:()=>Lp,base32hexupper:()=>Np,base32pad:()=>Ip,base32padupper:()=>Bp,base32upper:()=>Sp,base32z:()=>kp});var Ge=se({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Sp=se({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ip=se({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Bp=se({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Tp=se({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Np=se({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Cp=se({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Lp=se({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),kp=se({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var la={};be(la,{base36:()=>Dp,base36upper:()=>Pp});var Dp=Ht({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Pp=Ht({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var fa={};be(fa,{base64:()=>Dn,base64pad:()=>Op,base64url:()=>ua,base64urlpad:()=>Up});var Dn=se({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Op=se({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ua=se({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Up=se({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ha={};be(ha,{base8:()=>Mp});var Mp=se({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var da={};be(da,{identity:()=>Fp});var Fp=Mr({prefix:"\0",name:"identity",encode:r=>Ml(r),decode:r=>Ul(r)});var Xw=new TextEncoder,Zw=new TextDecoder;function Zl(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return $p(t,pa(r),e??ne.encoder);default:return qp(t,pa(r),e??Ge.encoder)}}var Ql=new WeakMap;function pa(r){let e=Ql.get(r);if(e==null){let t=new Map;return Ql.set(r,t),t}return e}var nt=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Pn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Gp)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=dt(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Gl(e.multihash,n.multihash)}toString(e){return Zl(this,e)}toJSON(){return{"/":Zl(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??Jl(n,o,s.bytes))}else if(t[zp]===!0){let{version:n,multihash:o,code:s}=t,i=dr(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Pn)throw new Error(`Version 0 CID must use dag-pb (code: ${Pn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=Jl(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Pn,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=vt(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new Kr(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,h]=kn(e.subarray(t));return t+=h,l},o=n(),s=Pn;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),u=t+c,f=u-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(e,t){let[n,o]=Hp(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return pa(s).set(n,e),s}};function Hp(r,e){switch(r[0]){case"Q":{let t=e??ne;return[ne.prefix,t.decode(`${ne.prefix}${r}`)]}case ne.prefix:{let t=e??ne;return[ne.prefix,t.decode(r)]}case Ge.prefix:{let t=e??Ge;return[Ge.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function $p(r,e,t){let{prefix:n}=t;if(n!==ne.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function qp(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var Pn=112,Gp=18;function Jl(r,e,t){let n=Vr(r),o=n+Vr(e),s=new Uint8Array(o+t.byteLength);return Fr(r,s,0),Fr(e,s,n),s.set(t,o),s}var zp=Symbol.for("@ipld/js-cid/CID");var qt={...da,...ia,...ha,...oa,...sa,...ca,...la,...Qi,...fa,...aa},db={...na,...ea};function tu(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var eu=tu("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ma=tu("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Ne(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Yp={utf8:eu,"utf-8":eu,hex:qt.base16,latin1:ma,ascii:ma,binary:ma,...qt},So=Yp;function D(r,e="utf8"){let t=So[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function et(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Hr(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Wp(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function $r(r,...e){if(!Wp(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function Io(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Hr(r.outputLen),Hr(r.blockLen)}function qr(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function ru(r,e){$r(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Bo=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var zr=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ot=(r,e)=>r<<32-e|r>>>e;var Ib=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var jp=async()=>{};async function nu(r,e,t){let n=Date.now();for(let o=0;o<r;o++){t(o);let s=Date.now()-n;s>=0&&s<e||(await jp(),n+=s)}}function ga(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Gt(r){return typeof r=="string"&&(r=ga(r)),$r(r),r}function To(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];$r(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}var Gr=class{clone(){return this._cloneInto()}},Xp={}.toString;function ou(r,e){if(e!==void 0&&Xp.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function No(r){let e=n=>r().update(Gt(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Yr(r=32){if(Bo&&typeof Bo.getRandomValues=="function")return Bo.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function Zp(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(t>>o&s),a=Number(t&s),c=n?4:0,u=n?0:4;r.setUint32(e+c,i,n),r.setUint32(e+u,a,n)}var su=(r,e,t)=>r&e^~r&t,iu=(r,e,t)=>r&e^r&t^e&t,Wr=class extends Gr{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=zr(this.buffer)}update(e){qr(this);let{view:t,buffer:n,blockLen:o}=this;e=Gt(e);let s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=zr(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){qr(this),ru(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>o-i&&(this.process(n,0),i=0);for(let l=i;l<o;l++)t[l]=0;Zp(n,o-8,BigInt(this.length*8),s),this.process(n,0);let a=zr(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.length=o,e.pos=a,e.finished=s,e.destroyed=i,o%t&&e.buffer.set(n),e}};var Co=BigInt(4294967295),ya=BigInt(32);function au(r,e=!1){return e?{h:Number(r&Co),l:Number(r>>ya&Co)}:{h:Number(r>>ya&Co)|0,l:Number(r&Co)|0}}function Qp(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let o=0;o<r.length;o++){let{h:s,l:i}=au(r[o],e);[t[o],n[o]]=[s,i]}return[t,n]}var Jp=(r,e)=>BigInt(r>>>0)<<ya|BigInt(e>>>0),em=(r,e,t)=>r>>>t,tm=(r,e,t)=>r<<32-t|e>>>t,rm=(r,e,t)=>r>>>t|e<<32-t,nm=(r,e,t)=>r<<32-t|e>>>t,om=(r,e,t)=>r<<64-t|e>>>t-32,sm=(r,e,t)=>r>>>t-32|e<<64-t,im=(r,e)=>e,am=(r,e)=>r,cm=(r,e,t)=>r<<t|e>>>32-t,lm=(r,e,t)=>e<<t|r>>>32-t,um=(r,e,t)=>e<<t-32|r>>>64-t,fm=(r,e,t)=>r<<t-32|e>>>64-t;function hm(r,e,t,n){let o=(e>>>0)+(n>>>0);return{h:r+t+(o/2**32|0)|0,l:o|0}}var dm=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),pm=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,mm=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),gm=(r,e,t,n,o)=>e+t+n+o+(r/2**32|0)|0,ym=(r,e,t,n,o)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),wm=(r,e,t,n,o,s)=>e+t+n+o+s+(r/2**32|0)|0;var bm={fromBig:au,split:Qp,toBig:Jp,shrSH:em,shrSL:tm,rotrSH:rm,rotrSL:nm,rotrBH:om,rotrBL:sm,rotr32H:im,rotr32L:am,rotlSH:cm,rotlSL:lm,rotlBH:um,rotlBL:fm,add:hm,add3L:dm,add3H:pm,add4L:mm,add4H:gm,add5H:wm,add5L:ym},O=bm;var[Em,xm]=O.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),zt=new Uint32Array(80),Yt=new Uint32Array(80),wa=class extends Wr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:h,Gh:g,Gl:d,Hh:p,Hl:m}=this;return[e,t,n,o,s,i,a,c,u,f,l,h,g,d,p,m]}set(e,t,n,o,s,i,a,c,u,f,l,h,g,d,p,m){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=h|0,this.Gh=g|0,this.Gl=d|0,this.Hh=p|0,this.Hl=m|0}process(e,t){for(let b=0;b<16;b++,t+=4)zt[b]=e.getUint32(t),Yt[b]=e.getUint32(t+=4);for(let b=16;b<80;b++){let A=zt[b-15]|0,v=Yt[b-15]|0,S=O.rotrSH(A,v,1)^O.rotrSH(A,v,8)^O.shrSH(A,v,7),N=O.rotrSL(A,v,1)^O.rotrSL(A,v,8)^O.shrSL(A,v,7),C=zt[b-2]|0,q=Yt[b-2]|0,G=O.rotrSH(C,q,19)^O.rotrBH(C,q,61)^O.shrSH(C,q,6),U=O.rotrSL(C,q,19)^O.rotrBL(C,q,61)^O.shrSL(C,q,6),ue=O.add4L(N,U,Yt[b-7],Yt[b-16]),ce=O.add4H(ue,S,G,zt[b-7],zt[b-16]);zt[b]=ce|0,Yt[b]=ue|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:h,Fh:g,Fl:d,Gh:p,Gl:m,Hh:w,Hl:x}=this;for(let b=0;b<80;b++){let A=O.rotrSH(l,h,14)^O.rotrSH(l,h,18)^O.rotrBH(l,h,41),v=O.rotrSL(l,h,14)^O.rotrSL(l,h,18)^O.rotrBL(l,h,41),S=l&g^~l&p,N=h&d^~h&m,C=O.add5L(x,v,N,xm[b],Yt[b]),q=O.add5H(C,w,A,S,Em[b],zt[b]),G=C|0,U=O.rotrSH(n,o,28)^O.rotrBH(n,o,34)^O.rotrBH(n,o,39),ue=O.rotrSL(n,o,28)^O.rotrBL(n,o,34)^O.rotrBL(n,o,39),ce=n&s^n&a^s&a,Je=o&i^o&c^i&c;w=p|0,x=m|0,p=g|0,m=d|0,g=l|0,d=h|0,{h:l,l:h}=O.add(u|0,f|0,q|0,G|0),u=a|0,f=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let R=O.add3L(G,ue,Je);n=O.add3H(R,q,U,ce),o=R|0}({h:n,l:o}=O.add(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=O.add(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=O.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=O.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:h}=O.add(this.Eh|0,this.El|0,l|0,h|0),{h:g,l:d}=O.add(this.Fh|0,this.Fl|0,g|0,d|0),{h:p,l:m}=O.add(this.Gh|0,this.Gl|0,p|0,m|0),{h:w,l:x}=O.add(this.Hh|0,this.Hl|0,w|0,x|0),this.set(n,o,s,i,a,c,u,f,l,h,g,d,p,m,w,x)}roundClean(){zt.fill(0),Yt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var jr=No(()=>new wa);var ko={};be(ko,{abytes:()=>Xr,bitGet:()=>Bm,bitLen:()=>Im,bitMask:()=>On,bitSet:()=>Tm,bytesToHex:()=>_t,bytesToNumberBE:()=>St,bytesToNumberLE:()=>jt,concatBytes:()=>It,createHmacDrbg:()=>xa,ensureBytes:()=>ae,equalBytes:()=>_m,hexToBytes:()=>mr,hexToNumber:()=>Ea,isBytes:()=>Wt,numberToBytesBE:()=>Xt,numberToBytesLE:()=>gr,numberToHexUnpadded:()=>fu,numberToVarBytesBE:()=>Rm,utf8ToBytes:()=>Sm,validateObject:()=>pt});var uu=BigInt(0),Lo=BigInt(1),vm=BigInt(2);function Wt(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Xr(r){if(!Wt(r))throw new Error("Uint8Array expected")}var Am=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function _t(r){Xr(r);let e="";for(let t=0;t<r.length;t++)e+=Am[r[t]];return e}function fu(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function Ea(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var Rt={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function cu(r){if(r>=Rt._0&&r<=Rt._9)return r-Rt._0;if(r>=Rt._A&&r<=Rt._F)return r-(Rt._A-10);if(r>=Rt._a&&r<=Rt._f)return r-(Rt._a-10)}function mr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=cu(r.charCodeAt(s)),a=cu(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function St(r){return Ea(_t(r))}function jt(r){return Xr(r),Ea(_t(Uint8Array.from(r).reverse()))}function Xt(r,e){return mr(r.toString(16).padStart(e*2,"0"))}function gr(r,e){return Xt(r,e).reverse()}function Rm(r){return mr(fu(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=mr(e)}catch(s){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Wt(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let o=n.length;if(typeof t=="number"&&o!==t)throw new Error(`${r} expected ${t} bytes, got ${o}`);return n}function It(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];Xr(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function _m(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function Sm(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Im(r){let e;for(e=0;r>uu;r>>=Lo,e+=1);return e}function Bm(r,e){return r>>BigInt(e)&Lo}function Tm(r,e,t){return r|(t?Lo:uu)<<BigInt(e)}var On=r=>(vm<<BigInt(r-1))-Lo,ba=r=>new Uint8Array(r),lu=r=>Uint8Array.from(r);function xa(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=ba(r),o=ba(r),s=0,i=()=>{n.fill(1),o.fill(0),s=0},a=(...l)=>t(o,n,...l),c=(l=ba())=>{o=a(lu([0]),l),n=a(),l.length!==0&&(o=a(lu([1]),l),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,h=[];for(;l<e;){n=a();let g=n.slice();h.push(g),l+=n.length}return It(...h)};return(l,h)=>{i(),c(l);let g;for(;!(g=h(u()));)c();return i(),g}}var Nm={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Wt(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function pt(r,e,t={}){let n=(o,s,i)=>{let a=Nm[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=r[o];if(!(i&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(o)}=${c} (${typeof c}), expected ${s}`)};for(let[o,s]of Object.entries(e))n(o,s,!1);for(let[o,s]of Object.entries(t))n(o,s,!0);return r}var ge=BigInt(0),J=BigInt(1),yr=BigInt(2),Cm=BigInt(3),va=BigInt(4),hu=BigInt(5),du=BigInt(8),Lm=BigInt(9),km=BigInt(16);function Z(r,e){let t=r%e;return t>=ge?t:e+t}function Dm(r,e,t){if(t<=ge||e<ge)throw new Error("Expected power/modulo > 0");if(t===J)return ge;let n=J;for(;e>ge;)e&J&&(n=n*r%t),r=r*r%t,e>>=J;return n}function ee(r,e,t){let n=r;for(;e-- >ge;)n*=n,n%=t;return n}function Do(r,e){if(r===ge||e<=ge)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=Z(r,e),n=e,o=ge,s=J,i=J,a=ge;for(;t!==ge;){let u=n/t,f=n%t,l=o-i*u,h=s-a*u;n=t,t=f,o=i,s=a,i=l,a=h}if(n!==J)throw new Error("invert: does not exist");return Z(o,e)}function Pm(r){let e=(r-J)/yr,t,n,o;for(t=r-J,n=0;t%yr===ge;t/=yr,n++);for(o=yr;o<r&&Dm(o,e,r)!==r-J;o++);if(n===1){let i=(r+J)/va;return function(c,u){let f=c.pow(u,i);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let s=(t+J)/yr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,o),t),l=a.pow(c,s),h=a.pow(c,t);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let g=1;for(let p=a.sqr(h);g<u&&!a.eql(p,a.ONE);g++)p=a.sqr(p);let d=a.pow(f,J<<BigInt(u-g-1));f=a.sqr(d),l=a.mul(l,d),h=a.mul(h,f),u=g}return l}}function Om(r){if(r%va===Cm){let e=(r+J)/va;return function(n,o){let s=n.pow(o,e);if(!n.eql(n.sqr(s),o))throw new Error("Cannot find square root");return s}}if(r%du===hu){let e=(r-hu)/du;return function(n,o){let s=n.mul(o,yr),i=n.pow(s,e),a=n.mul(o,i),c=n.mul(n.mul(a,yr),i),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),o))throw new Error("Cannot find square root");return u}}return r%km,Pm(r)}var pu=(r,e)=>(Z(r,e)&J)===J,Um=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Aa(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=Um.reduce((n,o)=>(n[o]="function",n),e);return pt(r,t)}function Mm(r,e,t){if(t<ge)throw new Error("Expected power > 0");if(t===ge)return r.ONE;if(t===J)return e;let n=r.ONE,o=e;for(;t>ge;)t&J&&(n=r.mul(n,o)),o=r.sqr(o),t>>=J;return n}function Fm(r,e){let t=new Array(e.length),n=e.reduce((s,i,a)=>r.is0(i)?s:(t[a]=s,r.mul(s,i)),r.ONE),o=r.inv(n);return e.reduceRight((s,i,a)=>r.is0(i)?s:(t[a]=r.mul(s,t[a]),r.mul(s,i)),o),t}function Ra(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Po(r,e,t=!1,n={}){if(r<=ge)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:o,nByteLength:s}=Ra(r,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let i=Om(r),a=Object.freeze({ORDER:r,BITS:o,BYTES:s,MASK:On(o),ZERO:ge,ONE:J,create:c=>Z(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ge<=c&&c<r},is0:c=>c===ge,isOdd:c=>(c&J)===J,neg:c=>Z(-c,r),eql:(c,u)=>c===u,sqr:c=>Z(c*c,r),add:(c,u)=>Z(c+u,r),sub:(c,u)=>Z(c-u,r),mul:(c,u)=>Z(c*u,r),pow:(c,u)=>Mm(a,c,u),div:(c,u)=>Z(c*Do(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Do(c,r),sqrt:n.sqrt||(c=>i(a,c)),invertBatch:c=>Fm(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>t?gr(c,s):Xt(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return t?jt(c):St(c)}});return Object.freeze(a)}function mu(r,e){if(!r.isOdd)throw new Error("Field doesn't have isOdd");let t=r.sqrt(e);return r.isOdd(t)?r.neg(t):t}function gu(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function _a(r){let e=gu(r);return e+Math.ceil(e/2)}function yu(r,e,t=!1){let n=r.length,o=gu(e),s=_a(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let i=t?St(r):jt(r),a=Z(i,e-J)+J;return t?gr(a,o):Xt(a,o)}var Km=BigInt(0),Sa=BigInt(1);function Oo(r,e){let t=(o,s)=>{let i=s.negate();return o?i:s},n=o=>{let s=Math.ceil(e/o)+1,i=2**(o-1);return{windows:s,windowSize:i}};return{constTimeNegate:t,unsafeLadder(o,s){let i=r.ZERO,a=o;for(;s>Km;)s&Sa&&(i=i.add(a)),a=a.double(),s>>=Sa;return i},precomputeWindow(o,s){let{windows:i,windowSize:a}=n(s),c=[],u=o,f=u;for(let l=0;l<i;l++){f=u,c.push(f);for(let h=1;h<a;h++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(o,s,i){let{windows:a,windowSize:c}=n(o),u=r.ZERO,f=r.BASE,l=BigInt(2**o-1),h=2**o,g=BigInt(o);for(let d=0;d<a;d++){let p=d*c,m=Number(i&l);i>>=g,m>c&&(m-=h,i+=Sa);let w=p,x=p+Math.abs(m)-1,b=d%2!==0,A=m<0;m===0?f=f.add(t(b,s[w])):u=u.add(t(A,s[x]))}return{p:u,f}},wNAFCached(o,s,i,a){let c=o._WINDOW_SIZE||1,u=s.get(o);return u||(u=this.precomputeWindow(o,c),c!==1&&s.set(o,a(u))),this.wNAF(c,u,i)}}}function Un(r){return Aa(r.Fp),pt(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Ra(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var st=BigInt(0),ze=BigInt(1),Uo=BigInt(2),Hm=BigInt(8),$m={zip215:!0};function qm(r){let e=Un(r);return pt(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Mo(r){let e=qm(r),{Fp:t,n,prehash:o,hash:s,randomBytes:i,nByteLength:a,h:c}=e,u=Uo<<BigInt(a*8)-ze,f=t.create,l=e.uvRatio||((_,E)=>{try{return{isValid:!0,value:t.sqrt(_*t.inv(E))}}catch{return{isValid:!1,value:st}}}),h=e.adjustScalarBytes||(_=>_),g=e.domain||((_,E,T)=>{if(E.length||T)throw new Error("Contexts/pre-hash are not supported");return _}),d=_=>typeof _=="bigint"&&st<_,p=(_,E)=>d(_)&&d(E)&&_<E,m=_=>_===st||p(_,u);function w(_,E){if(p(_,E))return _;throw new Error(`Expected valid scalar < ${E}, got ${typeof _} ${_}`)}function x(_){return _===st?_:w(_,n)}let b=new Map;function A(_){if(!(_ instanceof v))throw new Error("ExtendedPoint expected")}class v{constructor(E,T,k,P){if(this.ex=E,this.ey=T,this.ez=k,this.et=P,!m(E))throw new Error("x required");if(!m(T))throw new Error("y required");if(!m(k))throw new Error("z required");if(!m(P))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof v)throw new Error("extended point not allowed");let{x:T,y:k}=E||{};if(!m(T)||!m(k))throw new Error("invalid affine point");return new v(T,k,ze,f(T*k))}static normalizeZ(E){let T=t.invertBatch(E.map(k=>k.ez));return E.map((k,P)=>k.toAffine(T[P])).map(v.fromAffine)}_setWindowSize(E){this._WINDOW_SIZE=E,b.delete(this)}assertValidity(){let{a:E,d:T}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:k,ey:P,ez:F,et:V}=this,Y=f(k*k),$=f(P*P),z=f(F*F),fe=f(z*z),oe=f(Y*E),xe=f(z*f(oe+$)),ve=f(fe+f(T*f(Y*$)));if(xe!==ve)throw new Error("bad point: equation left != right (1)");let me=f(k*P),Te=f(F*V);if(me!==Te)throw new Error("bad point: equation left != right (2)")}equals(E){A(E);let{ex:T,ey:k,ez:P}=this,{ex:F,ey:V,ez:Y}=E,$=f(T*Y),z=f(F*P),fe=f(k*Y),oe=f(V*P);return $===z&&fe===oe}is0(){return this.equals(v.ZERO)}negate(){return new v(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=e,{ex:T,ey:k,ez:P}=this,F=f(T*T),V=f(k*k),Y=f(Uo*f(P*P)),$=f(E*F),z=T+k,fe=f(f(z*z)-F-V),oe=$+V,xe=oe-Y,ve=$-V,me=f(fe*xe),Te=f(oe*ve),xt=f(fe*ve),fr=f(xe*oe);return new v(me,Te,fr,xt)}add(E){A(E);let{a:T,d:k}=e,{ex:P,ey:F,ez:V,et:Y}=this,{ex:$,ey:z,ez:fe,et:oe}=E;if(T===BigInt(-1)){let _l=f((F-P)*(z+$)),Sl=f((F+P)*(z-$)),Ki=f(Sl-_l);if(Ki===st)return this.double();let Il=f(V*Uo*oe),Bl=f(Y*Uo*fe),Tl=Bl+Il,Nl=Sl+_l,Cl=Bl-Il,Dd=f(Tl*Ki),Pd=f(Nl*Cl),Od=f(Tl*Cl),Ud=f(Ki*Nl);return new v(Dd,Pd,Ud,Od)}let xe=f(P*$),ve=f(F*z),me=f(Y*k*oe),Te=f(V*fe),xt=f((P+F)*($+z)-xe-ve),fr=Te-me,Cn=Te+me,Rl=f(ve-T*xe),Nd=f(xt*fr),Cd=f(Cn*Rl),Ld=f(xt*Rl),kd=f(fr*Cn);return new v(Nd,Cd,kd,Ld)}subtract(E){return this.add(E.negate())}wNAF(E){return C.wNAFCached(this,b,E,v.normalizeZ)}multiply(E){let{p:T,f:k}=this.wNAF(w(E,n));return v.normalizeZ([T,k])[0]}multiplyUnsafe(E){let T=x(E);return T===st?N:this.equals(N)||T===ze?this:this.equals(S)?this.wNAF(T).p:C.unsafeLadder(this,T)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return C.unsafeLadder(this,n).is0()}toAffine(E){let{ex:T,ey:k,ez:P}=this,F=this.is0();E==null&&(E=F?Hm:t.inv(P));let V=f(T*E),Y=f(k*E),$=f(P*E);if(F)return{x:st,y:ze};if($!==ze)throw new Error("invZ was invalid");return{x:V,y:Y}}clearCofactor(){let{h:E}=e;return E===ze?this:this.multiplyUnsafe(E)}static fromHex(E,T=!1){let{d:k,a:P}=e,F=t.BYTES;E=ae("pointHex",E,F);let V=E.slice(),Y=E[F-1];V[F-1]=Y&-129;let $=jt(V);$===st||(T?w($,u):w($,t.ORDER));let z=f($*$),fe=f(z-ze),oe=f(k*z-P),{isValid:xe,value:ve}=l(fe,oe);if(!xe)throw new Error("Point.fromHex: invalid y coordinate");let me=(ve&ze)===ze,Te=(Y&128)!==0;if(!T&&ve===st&&Te)throw new Error("Point.fromHex: x=0 and x_0=1");return Te!==me&&(ve=f(-ve)),v.fromAffine({x:ve,y:$})}static fromPrivateKey(E){return U(E).point}toRawBytes(){let{x:E,y:T}=this.toAffine(),k=gr(T,t.BYTES);return k[k.length-1]|=E&ze?128:0,k}toHex(){return _t(this.toRawBytes())}}v.BASE=new v(e.Gx,e.Gy,ze,f(e.Gx*e.Gy)),v.ZERO=new v(st,ze,ze,st);let{BASE:S,ZERO:N}=v,C=Oo(v,a*8);function q(_){return Z(_,n)}function G(_){return q(jt(_))}function U(_){let E=a;_=ae("private key",_,E);let T=ae("hashed private key",s(_),2*E),k=h(T.slice(0,E)),P=T.slice(E,2*E),F=G(k),V=S.multiply(F),Y=V.toRawBytes();return{head:k,prefix:P,scalar:F,point:V,pointBytes:Y}}function ue(_){return U(_).pointBytes}function ce(_=new Uint8Array,...E){let T=It(...E);return G(s(g(T,ae("context",_),!!o)))}function Je(_,E,T={}){_=ae("message",_),o&&(_=o(_));let{prefix:k,scalar:P,pointBytes:F}=U(E),V=ce(T.context,k,_),Y=S.multiply(V).toRawBytes(),$=ce(T.context,Y,F,_),z=q(V+$*P);x(z);let fe=It(Y,gr(z,t.BYTES));return ae("result",fe,a*2)}let R=$m;function L(_,E,T,k=R){let{context:P,zip215:F}=k,V=t.BYTES;_=ae("signature",_,2*V),E=ae("message",E),o&&(E=o(E));let Y=jt(_.slice(V,2*V)),$,z,fe;try{$=v.fromHex(T,F),z=v.fromHex(_.slice(0,V),F),fe=S.multiplyUnsafe(Y)}catch{return!1}if(!F&&$.isSmallOrder())return!1;let oe=ce(P,z.toRawBytes(),$.toRawBytes(),E);return z.add($.multiplyUnsafe(oe)).subtract(fe).clearCofactor().equals(v.ZERO)}return S._setWindowSize(8),{CURVE:e,getPublicKey:ue,sign:Je,verify:L,ExtendedPoint:v,utils:{getExtendedPublicKey:U,randomPrivateKey:()=>i(t.BYTES),precompute(_=8,E=v.BASE){return E._setWindowSize(_),E.multiply(BigInt(3)),E}}}}var Ba=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),wu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),jb=BigInt(0),Gm=BigInt(1),Ia=BigInt(2),zm=BigInt(5),bu=BigInt(10),Ym=BigInt(20),Wm=BigInt(40),Eu=BigInt(80);function jm(r){let e=Ba,n=r*r%e*r%e,o=ee(n,Ia,e)*n%e,s=ee(o,Gm,e)*r%e,i=ee(s,zm,e)*s%e,a=ee(i,bu,e)*i%e,c=ee(a,Ym,e)*a%e,u=ee(c,Wm,e)*c%e,f=ee(u,Eu,e)*u%e,l=ee(f,Eu,e)*u%e,h=ee(l,bu,e)*i%e;return{pow_p_5_8:ee(h,Ia,e)*r%e,b2:n}}function Xm(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Zm(r,e){let t=Ba,n=Z(e*e*e,t),o=Z(n*n*e,t),s=jm(r*o).pow_p_5_8,i=Z(r*n*s,t),a=Z(e*i*i,t),c=i,u=Z(i*wu,t),f=a===r,l=a===Z(-r,t),h=a===Z(-r*wu,t);return f&&(i=c),(l||h)&&(i=u),pu(i,t)&&(i=Z(-i,t)),{isValid:f||l,value:i}}var Bt=Po(Ba,void 0,!0),Ta={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Bt,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:jr,randomBytes:Yr,adjustScalarBytes:Xm,uvRatio:Zm},Zr=Mo(Ta);function xu(r,e,t){if(e.length>255)throw new Error("Context is too big");return To(ga("SigEd25519 no Ed25519 collisions"),new Uint8Array([t?1:0,e.length]),e,r)}var Xb=Mo({...Ta,domain:xu}),Zb=Mo({...Ta,domain:xu,prehash:jr});var Qm=(Bt.ORDER+BigInt(3))/BigInt(8),Qb=Bt.pow(Ia,Qm),Jb=Bt.sqrt(Bt.neg(Bt.ONE)),eE=(Bt.ORDER-BigInt(5))/BigInt(8),tE=BigInt(486662);var rE=mu(Bt,Bt.neg(BigInt(486664)));var nE=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),oE=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),sE=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),iE=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var aE=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Qr=32,Tt=64,Fo=32;function vu(){let r=Zr.utils.randomPrivateKey(),e=Zr.getPublicKey(r);return{privateKey:Su(r,e),publicKey:e}}function Au(r){if(r.length!==Fo)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Zr.getPublicKey(e);return{privateKey:Su(e,t),publicKey:t}}function Ru(r,e){let t=r.subarray(0,Fo);return Zr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function _u(r,e,t){return Zr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Su(r,e){let t=new Uint8Array(Tt);for(let n=0;n<Fo;n++)t[n]=r[n],t[Fo+n]=e[n];return t}var Ue={get(r=globalThis){let e=r.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var Na={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Iu(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,o=r?.digest??"SHA-256",s=r?.saltLength??16,i=r?.iterations??32767,a=Ue.get();t*=8;async function c(l,h){let g=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),p={name:e,iv:d};typeof h=="string"&&(h=D(h));let m;if(h.length===0){m=await a.subtle.importKey("jwk",Na,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,b,{name:e,length:t},!0,["encrypt"])}catch{m=await a.subtle.importKey("jwk",Na,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,b,{name:e,length:t},!0,["encrypt"])}let w=await a.subtle.encrypt(p,m,l);return Re([g,p.iv,new Uint8Array(w)])}async function u(l,h){let g=l.subarray(0,s),d=l.subarray(s,s+n),p=l.subarray(s+n),m={name:e,iv:d};typeof h=="string"&&(h=D(h));let w;if(h.length===0)try{let b={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}catch{w=await a.subtle.importKey("jwk",Na,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}let x=await a.subtle.decrypt(m,w,p);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Jr(r,e){let n=await Iu().encrypt(r,e);return Dn.encode(n)}var tg=Math.pow(2,7),rg=Math.pow(2,14),ng=Math.pow(2,21),Ca=Math.pow(2,28),La=Math.pow(2,35),ka=Math.pow(2,42),Da=Math.pow(2,49),j=128,Ce=127;function he(r){if(r<tg)return 1;if(r<rg)return 2;if(r<ng)return 3;if(r<Ca)return 4;if(r<La)return 5;if(r<ka)return 6;if(r<Da)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Pa(r,e,t=0){switch(he(r)){case 8:e[t++]=r&255|j,r/=128;case 7:e[t++]=r&255|j,r/=128;case 6:e[t++]=r&255|j,r/=128;case 5:e[t++]=r&255|j,r/=128;case 4:e[t++]=r&255|j,r>>>=7;case 3:e[t++]=r&255|j,r>>>=7;case 2:e[t++]=r&255|j,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function og(r,e,t=0){switch(he(r)){case 8:e.set(t++,r&255|j),r/=128;case 7:e.set(t++,r&255|j),r/=128;case 6:e.set(t++,r&255|j),r/=128;case 5:e.set(t++,r&255|j),r/=128;case 4:e.set(t++,r&255|j),r>>>=7;case 3:e.set(t++,r&255|j),r>>>=7;case 2:e.set(t++,r&255|j),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Oa(r,e){let t=r[e],n=0;if(n+=t&Ce,t<j||(t=r[e+1],n+=(t&Ce)<<7,t<j)||(t=r[e+2],n+=(t&Ce)<<14,t<j)||(t=r[e+3],n+=(t&Ce)<<21,t<j)||(t=r[e+4],n+=(t&Ce)*Ca,t<j)||(t=r[e+5],n+=(t&Ce)*La,t<j)||(t=r[e+6],n+=(t&Ce)*ka,t<j)||(t=r[e+7],n+=(t&Ce)*Da,t<j))return n;throw new RangeError("Could not decode varint")}function sg(r,e){let t=r.get(e),n=0;if(n+=t&Ce,t<j||(t=r.get(e+1),n+=(t&Ce)<<7,t<j)||(t=r.get(e+2),n+=(t&Ce)<<14,t<j)||(t=r.get(e+3),n+=(t&Ce)<<21,t<j)||(t=r.get(e+4),n+=(t&Ce)*Ca,t<j)||(t=r.get(e+5),n+=(t&Ce)*La,t<j)||(t=r.get(e+6),n+=(t&Ce)*ka,t<j)||(t=r.get(e+7),n+=(t&Ce)*Da,t<j))return n;throw new RangeError("Could not decode varint")}function Le(r,e,t=0){return e==null&&(e=Ne(he(r))),e instanceof Uint8Array?Pa(r,e,t):og(r,e,t)}function it(r,e=0){return r instanceof Uint8Array?Oa(r,e):sg(r,e)}var Ua=new Float32Array([-0]),Zt=new Uint8Array(Ua.buffer);function Bu(r,e,t){Ua[0]=r,e[t]=Zt[0],e[t+1]=Zt[1],e[t+2]=Zt[2],e[t+3]=Zt[3]}function Tu(r,e){return Zt[0]=r[e],Zt[1]=r[e+1],Zt[2]=r[e+2],Zt[3]=r[e+3],Ua[0]}var Ma=new Float64Array([-0]),ke=new Uint8Array(Ma.buffer);function Nu(r,e,t){Ma[0]=r,e[t]=ke[0],e[t+1]=ke[1],e[t+2]=ke[2],e[t+3]=ke[3],e[t+4]=ke[4],e[t+5]=ke[5],e[t+6]=ke[6],e[t+7]=ke[7]}function Cu(r,e){return ke[0]=r[e],ke[1]=r[e+1],ke[2]=r[e+2],ke[3]=r[e+3],ke[4]=r[e+4],ke[5]=r[e+5],ke[6]=r[e+6],ke[7]=r[e+7],Ma[0]}var ig=BigInt(Number.MAX_SAFE_INTEGER),ag=BigInt(Number.MIN_SAFE_INTEGER),Ye=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return br;if(e<ig&&e>ag)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Lu&&(o=0n,++n>Lu&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return br;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):br}},br=new Ye(0,0);br.toBigInt=function(){return 0n};br.zzEncode=br.zzDecode=function(){return this};br.length=function(){return 1};var Lu=4294967296n;function ku(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Du(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Fa(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function at(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Vo(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Va=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,at(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw at(this,4);return Vo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw at(this,4);return Vo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw at(this,4);let e=Tu(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw at(this,4);let e=Cu(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw at(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Du(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw at(this,e);this.pos+=e}else do if(this.pos>=this.len)throw at(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Ye(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw at(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw at(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw at(this,8);let e=Vo(this.buf,this.pos+=4),t=Vo(this.buf,this.pos+=4);return new Ye(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Oa(this.buf,this.pos);return this.pos+=he(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ka(r){return new Va(r instanceof Uint8Array?r:r.subarray())}function Me(r,e,t){let n=Ka(r);return e.decode(n,void 0,t)}function Ha(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Ne(i);o+i>e&&(n=Ne(e),o=0);let a=n.subarray(o,o+=i);return o&7&&(o=(o|7)+1),a}}var Er=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function $a(){}var Ga=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},cg=Ha();function lg(r){return globalThis.Buffer!=null?Ne(r):cg(r)}var Fn=class{len;head;tail;states;constructor(){this.len=0,this.head=new Er($a,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new Er(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new za((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Ko,10,Ye.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Ye.fromBigInt(e);return this._push(Ko,t.length(),t)}uint64Number(e){return this._push(Pa,he(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=Ye.fromBigInt(e).zzEncode();return this._push(Ko,t.length(),t)}sint64Number(e){let t=Ye.fromNumber(e).zzEncode();return this._push(Ko,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(qa,1,e?1:0)}fixed32(e){return this._push(Mn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Ye.fromBigInt(e);return this._push(Mn,4,t.lo)._push(Mn,4,t.hi)}fixed64Number(e){let t=Ye.fromNumber(e);return this._push(Mn,4,t.lo)._push(Mn,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Bu,4,e)}double(e){return this._push(Nu,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(qa,1,0):this.uint32(t)._push(fg,t,e)}string(e){let t=ku(e);return t!==0?this.uint32(t)._push(Fa,t,e):this._push(qa,1,0)}fork(){return this.states=new Ga(this),this.head=this.tail=new Er($a,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Er($a,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=lg(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function qa(r,e,t){e[t]=r&255}function ug(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var za=class extends Er{next;constructor(e,t){super(ug,e,t),this.next=void 0}};function Ko(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function Mn(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function fg(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(Fn.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(hg,e,r),this},Fn.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(dg,e,r),this});function hg(r,e,t){e.set(r,t)}function dg(r,e,t){r.length<40?Fa(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(D(r),t)}function Ya(){return new Fn}function Fe(r,e){let t=Ya();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var en;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(en||(en={}));function Ho(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function Wa(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return Ho("enum",en.VARINT,t,n)}function Ve(r,e){return Ho("message",en.LENGTH_DELIMITED,r,e)}var te;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(te||(te={}));var ja;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(ja||(ja={}));(function(r){r.codec=()=>Wa(ja)})(te||(te={}));var mt;(function(r){let e;r.codec=()=>(e==null&&(e=Ve((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),te.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.Type=te.codec().decode(t);break;case 2:o.Data=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Fe(t,r.codec()),r.decode=t=>Me(t,r.codec())})(mt||(mt={}));var gt;(function(r){let e;r.codec=()=>(e==null&&(e=Ve((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),te.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.Type=te.codec().decode(t);break;case 2:o.Data=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Fe(t,r.codec()),r.decode=t=>Me(t,r.codec())})(gt||(gt={}));var Vn=class{_key;constructor(e){this._key=tn(e,Qr)}verify(e,t){return _u(this._key,t,e)}marshal(){return this._key}get bytes(){return mt.encode({Type:te.Ed25519,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Ae.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}},xr=class{_key;_publicKey;constructor(e,t){this._key=tn(e,Tt),this._publicKey=tn(t,Qr)}sign(e){return Ru(this._key,e)}get public(){return new Vn(this._publicKey)}marshal(){return this._key}get bytes(){return gt.encode({Type:te.Ed25519,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}async hash(){let e=Ae.digest(this.bytes),t;return et(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=$t.digest(this.public.bytes);return ne.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Jr(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function pg(r){if(r.length>Tt){r=tn(r,Tt+Qr);let n=r.subarray(0,Tt),o=r.subarray(Tt,r.length);return new xr(n,o)}r=tn(r,Tt);let e=r.subarray(0,Tt),t=r.subarray(Qr);return new xr(e,t)}function mg(r){return r=tn(r,Qr),new Vn(r)}async function gg(){let{privateKey:r,publicKey:e}=vu();return new xr(r,e)}async function Ou(r){let{privateKey:e,publicKey:t}=Au(r);return new xr(e,t)}function tn(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new y(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}function K(r,e="utf8"){let t=So[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var ic={};be(ic,{MAX_RSA_KEY_SIZE:()=>Qn,RsaPrivateKey:()=>an,RsaPublicKey:()=>Zn,fromJwk:()=>$g,generateKeyPair:()=>qg,unmarshalRsaPrivateKey:()=>oc,unmarshalRsaPublicKey:()=>Hg});function vr(r){if(isNaN(r)||r<=0)throw new y("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Yr(r)}var tr={};be(tr,{exportToPem:()=>Ug,importFromPem:()=>Mg,jwkToPkcs1:()=>kg,jwkToPkix:()=>Pg,pkcs1ToJwk:()=>Lg,pkixToJwk:()=>Dg});var qo=class extends Gr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Io(e);let n=Gt(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,s=new Uint8Array(o);s.set(n.length>o?e.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=e.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),s.fill(0)}update(e){return qr(this),this.iHash.update(e),this}digestInto(e){qr(this),$r(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Kn=(r,e,t)=>new qo(r,e).update(t).digest();Kn.create=(r,e)=>new qo(r,e);function yg(r,e,t,n){Io(r);let o=ou({dkLen:32,asyncTick:10},n),{c:s,dkLen:i,asyncTick:a}=o;if(Hr(s),Hr(i),Hr(a),s<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Gt(e),u=Gt(t),f=new Uint8Array(i),l=Kn.create(r,c),h=l._cloneInto().update(u);return{c:s,dkLen:i,asyncTick:a,DK:f,PRF:l,PRFSalt:h}}function wg(r,e,t,n,o){return r.destroy(),e.destroy(),n&&n.destroy(),o.fill(0),t}async function Za(r,e,t,n){let{c:o,dkLen:s,asyncTick:i,DK:a,PRF:c,PRFSalt:u}=yg(r,e,t,n),f,l=new Uint8Array(4),h=zr(l),g=new Uint8Array(c.outputLen);for(let d=1,p=0;p<s;d++,p+=c.outputLen){let m=a.subarray(p,p+c.outputLen);h.setInt32(0,d,!1),(f=u._cloneInto(f)).update(l).digestInto(g),m.set(g.subarray(0,m.length)),await nu(o-1,i,()=>{c._cloneInto(f).update(g).digestInto(g);for(let w=0;w<m.length;w++)m[w]^=g[w]})}return wg(c,u,a,f,g)}var H=Ft(Uu());function Ar(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function Qt(r,e,t=-1){let n=t,o=r,s=0,i=Math.pow(2,e);for(let a=1;a<8;a++){if(r<i){let c;if(n<0)c=new ArrayBuffer(a),s=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),s=n}let u=new Uint8Array(c);for(let f=a-1;f>=0;f--){let l=Math.pow(2,f*e);u[s-f-1]=Math.floor(o/l),o-=u[s-f-1]*l}return c}i*=Math.pow(2,e)}return new ArrayBuffer(0)}function Yo(...r){let e=0,t=0;for(let s of r)e+=s.length;let n=new ArrayBuffer(e),o=new Uint8Array(n);for(let s of r)o.set(s,t),t+=s.length;return o}function Ja(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=Ar(t,8),o=new ArrayBuffer(this.valueHex.byteLength),s=new Uint8Array(o);for(let a=0;a<this.valueHex.byteLength;a++)s[a]=r[a];return s[0]&=127,Ar(s,8)-n}function Mu(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let i=t-e,a=Qt(i,8,n),c=new Uint8Array(a);return c[0]|=128,a}let o=Qt(e,8,n),s=new Uint8Array(o);if(s[0]&128){let i=o.slice(0),a=new Uint8Array(i);o=new ArrayBuffer(o.byteLength+1),s=new Uint8Array(o);for(let c=0;c<i.byteLength;c++)s[c+1]=a[c];s[0]=0}return o}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Fu(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let o=0;o<t.length;o++)if(t[o]!==n[o])return!1;return!0}function qe(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,o=new Array(n);for(let i=0;i<n;i++)o[i]="0";return o.join("").concat(t)}var mx=Math.log(2);function Wo(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function ec(r){let e=0,t=0;for(let o=0;o<r.length;o++){let s=r[o];e+=s.byteLength}let n=new Uint8Array(e);for(let o=0;o<r.length;o++){let s=r[o];n.set(new Uint8Array(s),t),t+=s.byteLength}return n.buffer}function Dt(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var $n=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return ec(this.items)}},Hn=[new Uint8Array([1])],Vu="0123456789";var on="",lt=new ArrayBuffer(0),tc=new Uint8Array(0),qn="EndOfContent",Hu="OCTET STRING",$u="BIT STRING";function Pt(r){var e;return e=class extends r{constructor(...n){var o;super(...n);let s=n[0]||{};this.isHexOnly=(o=s.isHexOnly)!==null&&o!==void 0?o:!1,this.valueHexView=s.valueHex?H.BufferSourceConverter.toUint8Array(s.valueHex):tc}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,o,s){let i=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!Dt(this,i,o,s))return-1;let a=o+s;return this.valueHexView=i.subarray(o,a),this.valueHexView.length?(this.blockLength=s,a):(this.warnings.push("Zero buffer length"),o)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",lt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:H.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Ct=class{constructor({blockLength:e=0,error:t=on,warnings:n=[],valueBeforeDecode:o=tc}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=H.BufferSourceConverter.toUint8Array(o)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:H.Convert.ToHex(this.valueBeforeDecodeView)}}};Ct.NAME="baseBlock";var De=class extends Ct{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};De.NAME="valueBlock";var jo=class extends Pt(Ct){constructor({idBlock:e={}}={}){var t,n,o,s;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?H.BufferSourceConverter.toUint8Array(e.valueHex):tc,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(o=e.tagNumber)!==null&&o!==void 0?o:-1,this.isConstructed=(s=e.isConstructed)!==null&&s!==void 0?s:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",lt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let o=new Uint8Array(1);if(!e){let s=this.tagNumber;s&=31,t|=s,o[0]=t}return o.buffer}if(!this.isHexOnly){let o=Qt(this.tagNumber,7),s=new Uint8Array(o),i=o.byteLength,a=new Uint8Array(i+1);if(a[0]=t|31,!e){for(let c=0;c<i-1;c++)a[c+1]=s[c]|128;a[i]=s[i-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let o=this.valueHexView;for(let s=0;s<o.length-1;s++)n[s+1]=o[s]|128;n[this.valueHexView.byteLength]=o[o.length-1]}return n.buffer}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;let s=o.subarray(t,t+n);if(s.length===0)return this.error="Zero buffer length",-1;switch(s[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(s[0]&32)===32,this.isHexOnly=!1;let a=s[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,u=this.valueHexView=new Uint8Array(255),f=255;for(;s[c]&128;){if(u[c-1]=s[c]&127,c++,c>=s.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let h=new Uint8Array(f);for(let g=0;g<u.length;g++)h[g]=u[g];u=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,u[c-1]=s[c]&127;let l=new Uint8Array(c);for(let h=0;h<c;h++)l[h]=u[h];u=this.valueHexView=new Uint8Array(c),u.set(l),this.blockLength<=9?this.tagNumber=Ar(u,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};jo.NAME="identificationBlock";var Xo=class extends Ct{constructor({lenBlock:e={}}={}){var t,n,o;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(o=e.length)!==null&&o!==void 0?o:0}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;let s=o.subarray(t,t+n);if(s.length===0)return this.error="Zero buffer length",-1;if(s[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=s[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(s[0]&128),this.longFormUsed===!1)return this.length=s[0],this.blockLength=1,t+this.blockLength;let i=s[0]&127;if(i>8)return this.error="Too big integer",-1;if(i+1>s.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=o.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Ar(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let o=Qt(this.length,8);if(o.byteLength>127)return this.error="Too big length",lt;if(t=new ArrayBuffer(o.byteLength+1),e)return t;let s=new Uint8Array(o);n=new Uint8Array(t),n[0]=o.byteLength|128;for(let i=0;i<o.byteLength;i++)n[i+1]=s[i];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};Xo.NAME="lengthBlock";var I={},_e=class extends Ct{constructor({name:e=on,optional:t=!1,primitiveSchema:n,...o}={},s){super(o),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new jo(o),this.lenBlock=new Xo(o),this.valueBlock=s?new s(o):new De(o)}fromBER(e,t,n){let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}toBER(e,t){let n=t||new $n;t||qu(this);let o=this.idBlock.toBER(e);if(n.write(o),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let s=this.valueBlock.toBER(e);this.lenBlock.length=s.byteLength;let i=this.lenBlock.toBER(e);n.write(i),n.write(s)}return t?lt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():H.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${H.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Fu(t,n)}};_e.NAME="BaseBlock";function qu(r){if(r instanceof I.Constructed)for(let e of r.valueBlock.value)qu(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var Zo=class extends _e{constructor({value:e=on,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};Zo.NAME="BaseStringBlock";var Qo=class extends Pt(De){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};Qo.NAME="PrimitiveValueBlock";var Gu,Jo=class extends _e{constructor(e={}){super(e,Qo),this.idBlock.isConstructed=!1}};Gu=Jo;I.Primitive=Gu;Jo.NAME="PRIMITIVE";function Ig(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Ls(r,e=0,t=r.length){let n=e,o=new _e({},De),s=new Ct;if(!Dt(s,r,e,t))return o.error=s.error,{offset:-1,result:o};if(!r.subarray(e,e+t).length)return o.error="Zero buffer length",{offset:-1,result:o};let a=o.idBlock.fromBER(r,e,t);if(o.idBlock.warnings.length&&o.warnings.concat(o.idBlock.warnings),a===-1)return o.error=o.idBlock.error,{offset:-1,result:o};if(e=a,t-=o.idBlock.blockLength,a=o.lenBlock.fromBER(r,e,t),o.lenBlock.warnings.length&&o.warnings.concat(o.lenBlock.warnings),a===-1)return o.error=o.lenBlock.error,{offset:-1,result:o};if(e=a,t-=o.lenBlock.blockLength,!o.idBlock.isConstructed&&o.lenBlock.isIndefiniteForm)return o.error="Indefinite length form used for primitive encoding form",{offset:-1,result:o};let c=_e;switch(o.idBlock.tagClass){case 1:if(o.idBlock.tagNumber>=37&&o.idBlock.isHexOnly===!1)return o.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:o};switch(o.idBlock.tagNumber){case 0:if(o.idBlock.isConstructed&&o.lenBlock.length>0)return o.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:o};c=I.EndOfContent;break;case 1:c=I.Boolean;break;case 2:c=I.Integer;break;case 3:c=I.BitString;break;case 4:c=I.OctetString;break;case 5:c=I.Null;break;case 6:c=I.ObjectIdentifier;break;case 10:c=I.Enumerated;break;case 12:c=I.Utf8String;break;case 13:c=I.RelativeObjectIdentifier;break;case 14:c=I.TIME;break;case 15:return o.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:o};case 16:c=I.Sequence;break;case 17:c=I.Set;break;case 18:c=I.NumericString;break;case 19:c=I.PrintableString;break;case 20:c=I.TeletexString;break;case 21:c=I.VideotexString;break;case 22:c=I.IA5String;break;case 23:c=I.UTCTime;break;case 24:c=I.GeneralizedTime;break;case 25:c=I.GraphicString;break;case 26:c=I.VisibleString;break;case 27:c=I.GeneralString;break;case 28:c=I.UniversalString;break;case 29:c=I.CharacterString;break;case 30:c=I.BmpString;break;case 31:c=I.DATE;break;case 32:c=I.TimeOfDay;break;case 33:c=I.DateTime;break;case 34:c=I.Duration;break;default:{let u=o.idBlock.isConstructed?new I.Constructed:new I.Primitive;u.idBlock=o.idBlock,u.lenBlock=o.lenBlock,u.warnings=o.warnings,o=u}}break;case 2:case 3:case 4:default:c=o.idBlock.isConstructed?I.Constructed:I.Primitive}return o=Ig(o,c),a=o.fromBER(r,e,o.lenBlock.isIndefiniteForm?t:o.lenBlock.length),o.valueBeforeDecodeView=r.subarray(n,n+o.blockLength),{offset:a,result:o}}function sn(r){if(!r.byteLength){let e=new _e({},De);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Ls(H.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Bg(r,e){return r?1:e}var yt=class extends De{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;if(this.valueBeforeDecodeView=o.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let s=t;for(;Bg(this.isIndefiniteForm,n)>0;){let i=Ls(o,s,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(s=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===qn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===qn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),s}toBER(e,t){let n=t||new $n;for(let o=0;o<this.value.length;o++)this.value[o].toBER(e,n);return t?lt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};yt.NAME="ConstructedValueBlock";var zu,Jt=class extends _e{constructor(e={}){super(e,yt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
2
+ "use strict";var Libp2P=(()=>{var Fd=Object.create;var Ao=Object.defineProperty;var Vd=Object.getOwnPropertyDescriptor;var Kd=Object.getOwnPropertyNames;var Hd=Object.getPrototypeOf,$d=Object.prototype.hasOwnProperty;var ht=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ee=(r,e)=>{for(var t in e)Ao(r,t,{get:e[t],enumerable:!0})},Dl=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Kd(e))!$d.call(r,o)&&o!==t&&Ao(r,o,{get:()=>e[o],enumerable:!(n=Vd(e,o))||n.enumerable});return r};var Kt=(r,e,t)=>(t=r!=null?Fd(Hd(r)):{},Dl(e||!r||!r.__esModule?Ao(t,"default",{value:r,enumerable:!0}):t,r)),qd=r=>Dl(Ao({},"__esModule",{value:!0}),r);var Fu=ht(nn=>{"use strict";var Eg="[object ArrayBuffer]",Lt=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Eg}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),o=r.toUint8Array(t);if(n.length!==o.byteLength)return!1;for(let s=0;s<n.length;s++)if(n[s]!==o[s])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let i of t)n+=i.byteLength;let o=new Uint8Array(n),s=0;for(let i of t){let a=this.toUint8Array(i);o.set(a,s),s+=a.length}return e[e.length-1]instanceof Function?this.toView(o,e[e.length-1]):o.buffer}},ec="string",xg=/^[0-9a-f]+$/i,vg=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Ag=/^[a-zA-Z0-9-_]+$/,Yo=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n.buffer}static toString(e){let t=Lt.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return decodeURIComponent(escape(n))}},tt=class{static toString(e,t=!1){let n=Lt.toArrayBuffer(e),o=new DataView(n),s="";for(let i=0;i<n.byteLength;i+=2){let a=o.getUint16(i,t);s+=String.fromCharCode(a)}return s}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),o=new DataView(n);for(let s=0;s<e.length;s++)o.setUint16(s*2,e.charCodeAt(s),t);return n}},Wo=class r{static isHex(e){return typeof e===ec&&xg.test(e)}static isBase64(e){return typeof e===ec&&vg.test(e)}static isBase64Url(e){return typeof e===ec&&Ag.test(e)}static ToString(e,t="utf8"){let n=Lt.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return tt.toString(n,!0);case"utf16":case"utf16be":return tt.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return tt.fromString(e,!0);case"utf16":case"utf16be":return tt.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=Lt.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Yo.fromString(e);case"utf16":case"utf16be":return tt.fromString(e);case"utf16le":case"usc2":return tt.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Yo.toString(e);case"utf16":case"utf16be":return tt.toString(e);case"utf16le":case"usc2":return tt.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);return n.buffer}static ToBinary(e){let t=Lt.toUint8Array(e),n="";for(let o=0;o<t.length;o++)n+=String.fromCharCode(t[o]);return n}static ToHex(e){let t=Lt.toUint8Array(e),n="",o=t.length;for(let s=0;s<o;s++){let i=t[s];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let o=0;o<t.length;o=o+2){let s=t.slice(o,o+2);n[o/2]=parseInt(s,16)}return n.buffer}static ToUtf16String(e,t=!1){return tt.toString(e,t)}static FromUtf16String(e,t=!1){return tt.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Wo.DEFAULT_UTF8_ENCODING="utf8";function Rg(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let o=arguments[n];for(let s in o)t[s]=o[s]}return t}function _g(...r){let e=r.map(o=>o.byteLength).reduce((o,s)=>o+s),t=new Uint8Array(e),n=0;return r.map(o=>new Uint8Array(o)).forEach(o=>{for(let s of o)t[n++]=s}),t.buffer}function Sg(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)if(t[o]!==n[o])return!1;return!0}nn.BufferSourceConverter=Lt;nn.Convert=Wo;nn.assign=Rg;nn.combine=_g;nn.isEqual=Sg});var jf=ht((dv,Wf)=>{var ln=1e3,un=ln*60,fn=un*60,Sr=fn*24,s0=Sr*7,i0=Sr*365.25;Wf.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return a0(r);if(t==="number"&&isFinite(r))return e.long?l0(r):c0(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function a0(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*i0;case"weeks":case"week":case"w":return t*s0;case"days":case"day":case"d":return t*Sr;case"hours":case"hour":case"hrs":case"hr":case"h":return t*fn;case"minutes":case"minute":case"mins":case"min":case"m":return t*un;case"seconds":case"second":case"secs":case"sec":case"s":return t*ln;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function c0(r){var e=Math.abs(r);return e>=Sr?Math.round(r/Sr)+"d":e>=fn?Math.round(r/fn)+"h":e>=un?Math.round(r/un)+"m":e>=ln?Math.round(r/ln)+"s":r+"ms"}function l0(r){var e=Math.abs(r);return e>=Sr?Os(r,e,Sr,"day"):e>=fn?Os(r,e,fn,"hour"):e>=un?Os(r,e,un,"minute"):e>=ln?Os(r,e,ln,"second"):r+" ms"}function Os(r,e,t,n){var o=e>=t*1.5;return Math.round(r/t)+" "+n+(o?"s":"")}});var Zf=ht((pv,Xf)=>{function u0(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=jf(),t.destroy=u,Object.keys(r).forEach(f=>{t[f]=r[f]}),t.names=[],t.skips=[],t.formatters={};function e(f){let l=0;for(let h=0;h<f.length;h++)l=(l<<5)-l+f.charCodeAt(h),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(f){let l,h=null,g,d;function p(...m){if(!p.enabled)return;let w=p,x=Number(new Date),b=x-(l||x);w.diff=b,w.prev=l,w.curr=x,l=x,m[0]=t.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let A=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(S,C)=>{if(S==="%%")return"%";A++;let N=t.formatters[C];if(typeof N=="function"){let q=m[A];S=N.call(w,q),m.splice(A,1),A--}return S}),t.formatArgs.call(w,m),(w.log||t.log).apply(w,m)}return p.namespace=f,p.useColors=t.useColors(),p.color=t.selectColor(f),p.extend=n,p.destroy=t.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(g!==t.namespaces&&(g=t.namespaces,d=t.enabled(f)),d),set:m=>{h=m}}),typeof t.init=="function"&&t.init(p),p}function n(f,l){let h=t(this.namespace+(typeof l>"u"?":":l)+f);return h.log=this.log,h}function o(f){t.save(f),t.namespaces=f,t.names=[],t.skips=[];let l,h=(typeof f=="string"?f:"").split(/[\s,]+/),g=h.length;for(l=0;l<g;l++)h[l]&&(f=h[l].replace(/\*/g,".*?"),f[0]==="-"?t.skips.push(new RegExp("^"+f.slice(1)+"$")):t.names.push(new RegExp("^"+f+"$")))}function s(){let f=[...t.names.map(a),...t.skips.map(a).map(l=>"-"+l)].join(",");return t.enable(""),f}function i(f){if(f[f.length-1]==="*")return!0;let l,h;for(l=0,h=t.skips.length;l<h;l++)if(t.skips[l].test(f))return!1;for(l=0,h=t.names.length;l<h;l++)if(t.names[l].test(f))return!0;return!1}function a(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Xf.exports=u0});var Qf=ht((We,Us)=>{We.formatArgs=h0;We.save=d0;We.load=p0;We.useColors=f0;We.storage=m0();We.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();We.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function f0(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function h0(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Us.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}We.log=console.debug||console.log||(()=>{});function d0(r){try{r?We.storage.setItem("debug",r):We.storage.removeItem("debug")}catch{}}function p0(){let r;try{r=We.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function m0(){try{return localStorage}catch{}}Us.exports=Zf()(We);var{formatters:g0}=Us.exports;g0.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Rh=ht((HA,Cc)=>{"use strict";var q0=Object.prototype.hasOwnProperty,$e="~";function co(){}Object.create&&(co.prototype=Object.create(null),new co().__proto__||($e=!1));function G0(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Ah(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new G0(t,n||r,o),i=$e?$e+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],s]:r._events[i].push(s):(r._events[i]=s,r._eventsCount++),r}function qs(r,e){--r._eventsCount===0?r._events=new co:delete r._events[e]}function Ue(){this._events=new co,this._eventsCount=0}Ue.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)q0.call(t,n)&&e.push($e?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ue.prototype.listeners=function(e){var t=$e?$e+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,s=n.length,i=new Array(s);o<s;o++)i[o]=n[o].fn;return i};Ue.prototype.listenerCount=function(e){var t=$e?$e+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Ue.prototype.emit=function(e,t,n,o,s,i){var a=$e?$e+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,s),!0;case 6:return c.fn.call(c.context,t,n,o,s,i),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var h=c.length,g;for(l=0;l<h;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,n);break;case 4:c[l].fn.call(c[l].context,t,n,o);break;default:if(!f)for(g=1,f=new Array(u-1);g<u;g++)f[g-1]=arguments[g];c[l].fn.apply(c[l].context,f)}}return!0};Ue.prototype.on=function(e,t,n){return Ah(this,e,t,n,!1)};Ue.prototype.once=function(e,t,n){return Ah(this,e,t,n,!0)};Ue.prototype.removeListener=function(e,t,n,o){var s=$e?$e+e:e;if(!this._events[s])return this;if(!t)return qs(this,s),this;var i=this._events[s];if(i.fn)i.fn===t&&(!o||i.once)&&(!n||i.context===n)&&qs(this,s);else{for(var a=0,c=[],u=i.length;a<u;a++)(i[a].fn!==t||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:qs(this,s)}return this};Ue.prototype.removeAllListeners=function(e){var t;return e?(t=$e?$e+e:e,this._events[t]&&qs(this,t)):(this._events=new co,this._eventsCount=0),this};Ue.prototype.off=Ue.prototype.removeListener;Ue.prototype.addListener=Ue.prototype.on;Ue.prefixed=$e;Ue.EventEmitter=Ue;typeof Cc<"u"&&(Cc.exports=Ue)});var Yc=ht((aR,Mh)=>{"use strict";function Uh(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function cy(r,e,t){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return Uh(r,t)}catch{t.message=r.message,t.stack=r.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(r)),Uh(new o,t)}}Mh.exports=cy});var $h=ht(ho=>{(function(){var r,e,t,n,o,s,i,a;a=function(c){var u,f,l,h;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,h=c&255,[u,f,l,h].join(".")},i=function(c){var u,f,l,h,g,d;for(u=[],l=h=0;h<=3&&c.length!==0;l=++h){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}d=e(c),g=d[0],f=d[1],c=c.substring(f),u.push(g)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},t=function(c){return c.charCodeAt(0)},n=t("0"),s=t("a"),o=t("A"),e=function(c){var u,f,l,h,g;for(h=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),g=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)h=h*u+(t(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")h=h*u+(10+t(c[l])-s)>>>0;else if("A"<=c[l]&&c[l]<="F")h=h*u+(10+t(c[l])-o)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");l++}if(l===g)throw new Error("empty octet");return[h,l]},r=function(){function c(u,f){var l,h,g,d;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(d=u.split("/",2),u=d[0],f=d[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=i(f)}catch(p){throw l=p,new Error("Invalid mask: "+f)}for(h=g=32;g>=0;h=--g)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(i(u)&this.maskLong)>>>0}catch(p){throw l=p,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(i(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,h;for(h=i(this.first),l=i(this.last),f=0;h<=l;)u(a(h),h,f),f++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),ho.ip2long=i,ho.long2ip=a,ho.Netmask=r}).call(ho)});var rd=ht((m_,td)=>{td.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(s,i){t[s]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(s){return t[s]!==void 0||n[s]!==void 0},remove:function(s){t[s]!==void 0&&(t[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){t[s]!==void 0?t[s]=i:o(s,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var ad=ht((k_,id)=>{"use strict";id.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.prototype}});var dd=ht((fd,hd)=>{"use strict";var hi=ad(),{hasOwnProperty:ld}=Object.prototype,{propertyIsEnumerable:Ny}=Object,Sn=(r,e,t)=>Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0}),Ly=fd,cd={concatArrays:!1,ignoreUndefined:!1},di=r=>{let e=[];for(let t in r)ld.call(r,t)&&e.push(t);if(Object.getOwnPropertySymbols){let t=Object.getOwnPropertySymbols(r);for(let n of t)Ny.call(r,n)&&e.push(n)}return e};function In(r){return Array.isArray(r)?ky(r):hi(r)?Dy(r):r}function ky(r){let e=r.slice(0,0);return di(r).forEach(t=>{Sn(e,t,In(r[t]))}),e}function Dy(r){let e=Object.getPrototypeOf(r)===null?Object.create(null):{};return di(r).forEach(t=>{Sn(e,t,In(r[t]))}),e}var ud=(r,e,t,n)=>(t.forEach(o=>{typeof e[o]>"u"&&n.ignoreUndefined||(o in r&&r[o]!==Object.getPrototypeOf(r)?Sn(r,o,sl(r[o],e[o],n)):Sn(r,o,In(e[o])))}),r),Py=(r,e,t)=>{let n=r.slice(0,0),o=0;return[r,e].forEach(s=>{let i=[];for(let a=0;a<s.length;a++)ld.call(s,a)&&(i.push(String(a)),s===r?Sn(n,o++,s[a]):Sn(n,o++,In(s[a])));n=ud(n,s,di(s).filter(a=>!i.includes(a)),t)}),n};function sl(r,e,t){return t.concatArrays&&Array.isArray(r)&&Array.isArray(e)?Py(r,e,t):!hi(e)||!hi(r)?In(e):ud(r,e,di(e),t)}hd.exports=function(...r){let e=sl(In(cd),this!==Ly&&this||{},cd),t={_:{}};for(let n of r)if(n!==void 0){if(!hi(n))throw new TypeError("`"+n+"` is not an Option Object");t=sl(t,{_:n},e)}return t._}});var cw={};Ee(cw,{createLibp2p:()=>aw});var Pl=Symbol.for("@libp2p/connection");var qi=Symbol.for("@libp2p/content-routing");var Gi=Symbol.for("@libp2p/peer-discovery");var zi=Symbol.for("@libp2p/peer-id");function Ro(r){return r!=null&&!!r[zi]}var Yi=Symbol.for("@libp2p/peer-routing");var Ol="keep-alive";var gw=Symbol.for("@libp2p/transport");var Ht;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Ht||(Ht={}));var $t=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},y=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}},_o=class extends AggregateError{code;props;constructor(e,t,n,o){super(e,t),this.code=n,this.name=o?.name??"AggregateCodeError",this.props=o??{}}};var So="ERR_TIMEOUT";var ue=(r,...e)=>{try{[...e]}catch{}};var At=class extends EventTarget{#e=new Map;constructor(){super(),ue(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new ji(e,t))}},Wi=class extends Event{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},ji=globalThis.CustomEvent??Wi;function Ul(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var Qa={};Ee(Qa,{Ed25519PrivateKey:()=>Ar,Ed25519PublicKey:()=>Kn,generateKeyPair:()=>yg,generateKeyPairFromSeed:()=>Mu,unmarshalEd25519PrivateKey:()=>mg,unmarshalEd25519PublicKey:()=>gg});var ea={};Ee(ea,{base58btc:()=>ne,base58flickr:()=>Xd});var Aw=new Uint8Array(0);function Ml(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Rt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Fl(r){return new TextEncoder().encode(r)}function Vl(r){return new TextDecoder().decode(r)}function Gd(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var p=0,m=0,w=0,x=d.length;w!==x&&d[w]===0;)w++,p++;for(var b=(x-w)*f+1>>>0,A=new Uint8Array(b);w!==x;){for(var v=d[w],S=0,C=b-1;(v!==0||S<m)&&C!==-1;C--,S++)v+=256*A[C]>>>0,A[C]=v%a>>>0,v=v/a>>>0;if(v!==0)throw new Error("Non-zero carry");m=S,w++}for(var N=b-m;N!==b&&A[N]===0;)N++;for(var q=c.repeat(p);N<b;++N)q+=r.charAt(A[N]);return q}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var p=0;if(d[p]!==" "){for(var m=0,w=0;d[p]===c;)m++,p++;for(var x=(d.length-p)*u+1>>>0,b=new Uint8Array(x);d[p];){var A=t[d.charCodeAt(p)];if(A===255)return;for(var v=0,S=x-1;(A!==0||v<w)&&S!==-1;S--,v++)A+=a*b[S]>>>0,b[S]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");w=v,p++}if(d[p]!==" "){for(var C=x-w;C!==x&&b[C]===0;)C++;for(var N=new Uint8Array(m+(x-C)),q=m;C!==x;)N[q++]=b[C++];return N}}}function g(d){var p=h(d);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:h,decode:g}}var zd=Gd,Yd=zd,Hl=Yd;var Xi=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Zi=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return $l(this,e)}},Qi=class{decoders;constructor(e){this.decoders=e}or(e){return $l(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function $l(r,e){return new Qi({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Ji=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Xi(e,t,n),this.decoder=new Zi(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Fr({name:r,prefix:e,encode:t,decode:n}){return new Ji(r,e,t,n)}function qt({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Hl(t,r);return Fr({prefix:e,name:r,encode:n,decode:s=>Rt(o(s))})}function Wd(r,e,t,n){let o={};for(let f=0;f<e.length;++f)o[e[f]]=f;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),a=0,c=0,u=0;for(let f=0;f<s;++f){let l=o[r[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,i[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function jd(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;s.length*t&7;)s+="=";return s}function se({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return Fr({prefix:e,name:r,encode(o){return jd(o,n,t)},decode(o){return Wd(o,n,t,r)}})}var ne=qt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Xd=qt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ra={};Ee(ra,{identity:()=>Gt});var Zd=zl,ql=128,Qd=127,Jd=~Qd,ep=Math.pow(2,31);function zl(r,e,t){e=e||[],t=t||0;for(var n=t;r>=ep;)e[t++]=r&255|ql,r/=128;for(;r&Jd;)e[t++]=r&255|ql,r>>>=7;return e[t]=r|0,zl.bytes=t-n+1,e}var tp=ta,rp=128,Gl=127;function ta(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw ta.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Gl)<<o:(i&Gl)*Math.pow(2,o),o+=7}while(i>=rp);return ta.bytes=s-n,t}var np=Math.pow(2,7),op=Math.pow(2,14),sp=Math.pow(2,21),ip=Math.pow(2,28),ap=Math.pow(2,35),cp=Math.pow(2,42),lp=Math.pow(2,49),up=Math.pow(2,56),fp=Math.pow(2,63),hp=function(r){return r<np?1:r<op?2:r<sp?3:r<ip?4:r<ap?5:r<cp?6:r<lp?7:r<up?8:r<fp?9:10},dp={encode:Zd,decode:tp,encodingLength:hp},pp=dp,kn=pp;function Dn(r,e=0){return[kn.decode(r,e),kn.decode.bytes]}function Vr(r,e,t=0){return kn.encode(r,e,t),e}function Kr(r){return kn.encodingLength(r)}function dt(r,e){let t=e.byteLength,n=Kr(r),o=n+Kr(t),s=new Uint8Array(o+t);return Vr(r,s,0),Vr(t,s,n),s.set(e,o),new Hr(r,t,e,s)}function mr(r){let e=Rt(r),[t,n]=Dn(e),[o,s]=Dn(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Hr(t,o,i,e)}function Yl(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Ml(r.bytes,t.bytes)}}var Hr=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Wl=0,mp="identity",jl=Rt;function gp(r){return dt(Wl,jl(r))}var Gt={code:Wl,name:mp,encode:jl,digest:gp};var sa={};Ee(sa,{sha256:()=>Re,sha512:()=>yp});function oa({name:r,code:e,encode:t}){return new na(r,e,t)}var na=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?dt(this.code,t):t.then(n=>dt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Zl(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Re=oa({name:"sha2-256",code:18,encode:Zl("SHA-256")}),yp=oa({name:"sha2-512",code:19,encode:Zl("SHA-512")});function ie(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function _t(r=0){return new Uint8Array(r)}function Le(r=0){return new Uint8Array(r)}function _e(r,e){e==null&&(e=r.reduce((o,s)=>o+s.length,0));let t=Le(e),n=0;for(let o of r)t.set(o,n),n+=o.length;return t}var ia={};Ee(ia,{base10:()=>wp});var wp=qt({prefix:"9",name:"base10",alphabet:"0123456789"});var aa={};Ee(aa,{base16:()=>bp,base16upper:()=>Ep});var bp=se({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ep=se({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ca={};Ee(ca,{base2:()=>xp});var xp=se({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var la={};Ee(la,{base256emoji:()=>Sp});var Ql=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),vp=Ql.reduce((r,e,t)=>(r[t]=e,r),[]),Ap=Ql.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Rp(r){return r.reduce((e,t)=>(e+=vp[t],e),"")}function _p(r){let e=[];for(let t of r){let n=Ap[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Sp=Fr({prefix:"\u{1F680}",name:"base256emoji",encode:Rp,decode:_p});var ua={};Ee(ua,{base32:()=>Ge,base32hex:()=>Cp,base32hexpad:()=>Lp,base32hexpadupper:()=>kp,base32hexupper:()=>Np,base32pad:()=>Bp,base32padupper:()=>Tp,base32upper:()=>Ip,base32z:()=>Dp});var Ge=se({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ip=se({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Bp=se({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Tp=se({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Cp=se({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Np=se({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Lp=se({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),kp=se({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Dp=se({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var fa={};Ee(fa,{base36:()=>Pp,base36upper:()=>Op});var Pp=qt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Op=qt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var da={};Ee(da,{base64:()=>Pn,base64pad:()=>Up,base64url:()=>ha,base64urlpad:()=>Mp});var Pn=se({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Up=se({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ha=se({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Mp=se({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var pa={};Ee(pa,{base8:()=>Fp});var Fp=se({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ma={};Ee(ma,{identity:()=>Vp});var Vp=Fr({prefix:"\0",name:"identity",encode:r=>Vl(r),decode:r=>Fl(r)});var Zw=new TextEncoder,Qw=new TextDecoder;function Jl(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return qp(t,ga(r),e??ne.encoder);default:return Gp(t,ga(r),e??Ge.encoder)}}var eu=new WeakMap;function ga(r){let e=eu.get(r);if(e==null){let t=new Map;return eu.set(r,t),t}return e}var nt=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==On)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==zp)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=dt(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Yl(e.multihash,n.multihash)}toString(e){return Jl(this,e)}toJSON(){return{"/":Jl(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??tu(n,o,s.bytes))}else if(t[Yp]===!0){let{version:n,multihash:o,code:s}=t,i=mr(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==On)throw new Error(`Version 0 CID must use dag-pb (code: ${On}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=tu(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,On,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Rt(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new Hr(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,h]=Dn(e.subarray(t));return t+=h,l},o=n(),s=On;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),u=t+c,f=u-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(e,t){let[n,o]=$p(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ga(s).set(n,e),s}};function $p(r,e){switch(r[0]){case"Q":{let t=e??ne;return[ne.prefix,t.decode(`${ne.prefix}${r}`)]}case ne.prefix:{let t=e??ne;return[ne.prefix,t.decode(r)]}case Ge.prefix:{let t=e??Ge;return[Ge.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function qp(r,e,t){let{prefix:n}=t;if(n!==ne.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function Gp(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var On=112,zp=18;function tu(r,e,t){let n=Kr(r),o=n+Kr(e),s=new Uint8Array(o+t.byteLength);return Vr(r,s,0),Vr(e,s,n),s.set(t,o),s}var Yp=Symbol.for("@ipld/js-cid/CID");var zt={...ma,...ca,...pa,...ia,...aa,...ua,...fa,...ea,...da,...la},pb={...sa,...ra};function nu(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var ru=nu("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ya=nu("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Le(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Wp={utf8:ru,"utf-8":ru,hex:zt.base16,latin1:ya,ascii:ya,binary:ya,...zt},Bo=Wp;function D(r,e="utf8"){let t=Bo[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function et(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function $r(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function jp(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function qr(r,...e){if(!jp(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function To(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");$r(r.outputLen),$r(r.blockLen)}function Gr(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function ou(r,e){qr(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Co=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Yr=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ot=(r,e)=>r<<32-e|r>>>e;var Bb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Xp=async()=>{};async function su(r,e,t){let n=Date.now();for(let o=0;o<r;o++){t(o);let s=Date.now()-n;s>=0&&s<e||(await Xp(),n+=s)}}function wa(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Yt(r){return typeof r=="string"&&(r=wa(r)),qr(r),r}function No(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];qr(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}var zr=class{clone(){return this._cloneInto()}},Zp={}.toString;function iu(r,e){if(e!==void 0&&Zp.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function Lo(r){let e=n=>r().update(Yt(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Wr(r=32){if(Co&&typeof Co.getRandomValues=="function")return Co.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function Qp(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(t>>o&s),a=Number(t&s),c=n?4:0,u=n?0:4;r.setUint32(e+c,i,n),r.setUint32(e+u,a,n)}var au=(r,e,t)=>r&e^~r&t,cu=(r,e,t)=>r&e^r&t^e&t,jr=class extends zr{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Yr(this.buffer)}update(e){Gr(this);let{view:t,buffer:n,blockLen:o}=this;e=Yt(e);let s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Yr(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Gr(this),ou(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>o-i&&(this.process(n,0),i=0);for(let l=i;l<o;l++)t[l]=0;Qp(n,o-8,BigInt(this.length*8),s),this.process(n,0);let a=Yr(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.length=o,e.pos=a,e.finished=s,e.destroyed=i,o%t&&e.buffer.set(n),e}};var ko=BigInt(4294967295),ba=BigInt(32);function lu(r,e=!1){return e?{h:Number(r&ko),l:Number(r>>ba&ko)}:{h:Number(r>>ba&ko)|0,l:Number(r&ko)|0}}function Jp(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let o=0;o<r.length;o++){let{h:s,l:i}=lu(r[o],e);[t[o],n[o]]=[s,i]}return[t,n]}var em=(r,e)=>BigInt(r>>>0)<<ba|BigInt(e>>>0),tm=(r,e,t)=>r>>>t,rm=(r,e,t)=>r<<32-t|e>>>t,nm=(r,e,t)=>r>>>t|e<<32-t,om=(r,e,t)=>r<<32-t|e>>>t,sm=(r,e,t)=>r<<64-t|e>>>t-32,im=(r,e,t)=>r>>>t-32|e<<64-t,am=(r,e)=>e,cm=(r,e)=>r,lm=(r,e,t)=>r<<t|e>>>32-t,um=(r,e,t)=>e<<t|r>>>32-t,fm=(r,e,t)=>e<<t-32|r>>>64-t,hm=(r,e,t)=>r<<t-32|e>>>64-t;function dm(r,e,t,n){let o=(e>>>0)+(n>>>0);return{h:r+t+(o/2**32|0)|0,l:o|0}}var pm=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),mm=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,gm=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),ym=(r,e,t,n,o)=>e+t+n+o+(r/2**32|0)|0,wm=(r,e,t,n,o)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),bm=(r,e,t,n,o,s)=>e+t+n+o+s+(r/2**32|0)|0;var Em={fromBig:lu,split:Jp,toBig:em,shrSH:tm,shrSL:rm,rotrSH:nm,rotrSL:om,rotrBH:sm,rotrBL:im,rotr32H:am,rotr32L:cm,rotlSH:lm,rotlSL:um,rotlBH:fm,rotlBL:hm,add:dm,add3L:pm,add3H:mm,add4L:gm,add4H:ym,add5H:bm,add5L:wm},O=Em;var[xm,vm]=O.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),Wt=new Uint32Array(80),jt=new Uint32Array(80),Ea=class extends jr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:h,Gh:g,Gl:d,Hh:p,Hl:m}=this;return[e,t,n,o,s,i,a,c,u,f,l,h,g,d,p,m]}set(e,t,n,o,s,i,a,c,u,f,l,h,g,d,p,m){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=h|0,this.Gh=g|0,this.Gl=d|0,this.Hh=p|0,this.Hl=m|0}process(e,t){for(let b=0;b<16;b++,t+=4)Wt[b]=e.getUint32(t),jt[b]=e.getUint32(t+=4);for(let b=16;b<80;b++){let A=Wt[b-15]|0,v=jt[b-15]|0,S=O.rotrSH(A,v,1)^O.rotrSH(A,v,8)^O.shrSH(A,v,7),C=O.rotrSL(A,v,1)^O.rotrSL(A,v,8)^O.shrSL(A,v,7),N=Wt[b-2]|0,q=jt[b-2]|0,G=O.rotrSH(N,q,19)^O.rotrBH(N,q,61)^O.shrSH(N,q,6),U=O.rotrSL(N,q,19)^O.rotrBL(N,q,61)^O.shrSL(N,q,6),he=O.add4L(C,U,jt[b-7],jt[b-16]),le=O.add4H(he,S,G,Wt[b-7],Wt[b-16]);Wt[b]=le|0,jt[b]=he|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:h,Fh:g,Fl:d,Gh:p,Gl:m,Hh:w,Hl:x}=this;for(let b=0;b<80;b++){let A=O.rotrSH(l,h,14)^O.rotrSH(l,h,18)^O.rotrBH(l,h,41),v=O.rotrSL(l,h,14)^O.rotrSL(l,h,18)^O.rotrBL(l,h,41),S=l&g^~l&p,C=h&d^~h&m,N=O.add5L(x,v,C,vm[b],jt[b]),q=O.add5H(N,w,A,S,xm[b],Wt[b]),G=N|0,U=O.rotrSH(n,o,28)^O.rotrBH(n,o,34)^O.rotrBH(n,o,39),he=O.rotrSL(n,o,28)^O.rotrBL(n,o,34)^O.rotrBL(n,o,39),le=n&s^n&a^s&a,Je=o&i^o&c^i&c;w=p|0,x=m|0,p=g|0,m=d|0,g=l|0,d=h|0,{h:l,l:h}=O.add(u|0,f|0,q|0,G|0),u=a|0,f=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let R=O.add3L(G,he,Je);n=O.add3H(R,q,U,le),o=R|0}({h:n,l:o}=O.add(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=O.add(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=O.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=O.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:h}=O.add(this.Eh|0,this.El|0,l|0,h|0),{h:g,l:d}=O.add(this.Fh|0,this.Fl|0,g|0,d|0),{h:p,l:m}=O.add(this.Gh|0,this.Gl|0,p|0,m|0),{h:w,l:x}=O.add(this.Hh|0,this.Hl|0,w|0,x|0),this.set(n,o,s,i,a,c,u,f,l,h,g,d,p,m,w,x)}roundClean(){Wt.fill(0),jt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Xr=Lo(()=>new Ea);var Po={};Ee(Po,{abytes:()=>Zr,bitGet:()=>Tm,bitLen:()=>Bm,bitMask:()=>Un,bitSet:()=>Cm,bytesToHex:()=>It,bytesToNumberBE:()=>Bt,bytesToNumberLE:()=>Zt,concatBytes:()=>Tt,createHmacDrbg:()=>Aa,ensureBytes:()=>ae,equalBytes:()=>Sm,hexToBytes:()=>yr,hexToNumber:()=>va,isBytes:()=>Xt,numberToBytesBE:()=>Qt,numberToBytesLE:()=>wr,numberToHexUnpadded:()=>du,numberToVarBytesBE:()=>_m,utf8ToBytes:()=>Im,validateObject:()=>pt});var hu=BigInt(0),Do=BigInt(1),Am=BigInt(2);function Xt(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Zr(r){if(!Xt(r))throw new Error("Uint8Array expected")}var Rm=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function It(r){Zr(r);let e="";for(let t=0;t<r.length;t++)e+=Rm[r[t]];return e}function du(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function va(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var St={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function uu(r){if(r>=St._0&&r<=St._9)return r-St._0;if(r>=St._A&&r<=St._F)return r-(St._A-10);if(r>=St._a&&r<=St._f)return r-(St._a-10)}function yr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=uu(r.charCodeAt(s)),a=uu(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Bt(r){return va(It(r))}function Zt(r){return Zr(r),va(It(Uint8Array.from(r).reverse()))}function Qt(r,e){return yr(r.toString(16).padStart(e*2,"0"))}function wr(r,e){return Qt(r,e).reverse()}function _m(r){return yr(du(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=yr(e)}catch(s){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Xt(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let o=n.length;if(typeof t=="number"&&o!==t)throw new Error(`${r} expected ${t} bytes, got ${o}`);return n}function Tt(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];Zr(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Sm(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function Im(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Bm(r){let e;for(e=0;r>hu;r>>=Do,e+=1);return e}function Tm(r,e){return r>>BigInt(e)&Do}function Cm(r,e,t){return r|(t?Do:hu)<<BigInt(e)}var Un=r=>(Am<<BigInt(r-1))-Do,xa=r=>new Uint8Array(r),fu=r=>Uint8Array.from(r);function Aa(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=xa(r),o=xa(r),s=0,i=()=>{n.fill(1),o.fill(0),s=0},a=(...l)=>t(o,n,...l),c=(l=xa())=>{o=a(fu([0]),l),n=a(),l.length!==0&&(o=a(fu([1]),l),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,h=[];for(;l<e;){n=a();let g=n.slice();h.push(g),l+=n.length}return Tt(...h)};return(l,h)=>{i(),c(l);let g;for(;!(g=h(u()));)c();return i(),g}}var Nm={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Xt(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function pt(r,e,t={}){let n=(o,s,i)=>{let a=Nm[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=r[o];if(!(i&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(o)}=${c} (${typeof c}), expected ${s}`)};for(let[o,s]of Object.entries(e))n(o,s,!1);for(let[o,s]of Object.entries(t))n(o,s,!0);return r}var ye=BigInt(0),J=BigInt(1),br=BigInt(2),Lm=BigInt(3),Ra=BigInt(4),pu=BigInt(5),mu=BigInt(8),km=BigInt(9),Dm=BigInt(16);function Z(r,e){let t=r%e;return t>=ye?t:e+t}function Pm(r,e,t){if(t<=ye||e<ye)throw new Error("Expected power/modulo > 0");if(t===J)return ye;let n=J;for(;e>ye;)e&J&&(n=n*r%t),r=r*r%t,e>>=J;return n}function ee(r,e,t){let n=r;for(;e-- >ye;)n*=n,n%=t;return n}function Oo(r,e){if(r===ye||e<=ye)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=Z(r,e),n=e,o=ye,s=J,i=J,a=ye;for(;t!==ye;){let u=n/t,f=n%t,l=o-i*u,h=s-a*u;n=t,t=f,o=i,s=a,i=l,a=h}if(n!==J)throw new Error("invert: does not exist");return Z(o,e)}function Om(r){let e=(r-J)/br,t,n,o;for(t=r-J,n=0;t%br===ye;t/=br,n++);for(o=br;o<r&&Pm(o,e,r)!==r-J;o++);if(n===1){let i=(r+J)/Ra;return function(c,u){let f=c.pow(u,i);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let s=(t+J)/br;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,o),t),l=a.pow(c,s),h=a.pow(c,t);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let g=1;for(let p=a.sqr(h);g<u&&!a.eql(p,a.ONE);g++)p=a.sqr(p);let d=a.pow(f,J<<BigInt(u-g-1));f=a.sqr(d),l=a.mul(l,d),h=a.mul(h,f),u=g}return l}}function Um(r){if(r%Ra===Lm){let e=(r+J)/Ra;return function(n,o){let s=n.pow(o,e);if(!n.eql(n.sqr(s),o))throw new Error("Cannot find square root");return s}}if(r%mu===pu){let e=(r-pu)/mu;return function(n,o){let s=n.mul(o,br),i=n.pow(s,e),a=n.mul(o,i),c=n.mul(n.mul(a,br),i),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),o))throw new Error("Cannot find square root");return u}}return r%Dm,Om(r)}var gu=(r,e)=>(Z(r,e)&J)===J,Mm=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _a(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=Mm.reduce((n,o)=>(n[o]="function",n),e);return pt(r,t)}function Fm(r,e,t){if(t<ye)throw new Error("Expected power > 0");if(t===ye)return r.ONE;if(t===J)return e;let n=r.ONE,o=e;for(;t>ye;)t&J&&(n=r.mul(n,o)),o=r.sqr(o),t>>=J;return n}function Vm(r,e){let t=new Array(e.length),n=e.reduce((s,i,a)=>r.is0(i)?s:(t[a]=s,r.mul(s,i)),r.ONE),o=r.inv(n);return e.reduceRight((s,i,a)=>r.is0(i)?s:(t[a]=r.mul(s,t[a]),r.mul(s,i)),o),t}function Sa(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Uo(r,e,t=!1,n={}){if(r<=ye)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:o,nByteLength:s}=Sa(r,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let i=Um(r),a=Object.freeze({ORDER:r,BITS:o,BYTES:s,MASK:Un(o),ZERO:ye,ONE:J,create:c=>Z(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ye<=c&&c<r},is0:c=>c===ye,isOdd:c=>(c&J)===J,neg:c=>Z(-c,r),eql:(c,u)=>c===u,sqr:c=>Z(c*c,r),add:(c,u)=>Z(c+u,r),sub:(c,u)=>Z(c-u,r),mul:(c,u)=>Z(c*u,r),pow:(c,u)=>Fm(a,c,u),div:(c,u)=>Z(c*Oo(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Oo(c,r),sqrt:n.sqrt||(c=>i(a,c)),invertBatch:c=>Vm(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>t?wr(c,s):Qt(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return t?Zt(c):Bt(c)}});return Object.freeze(a)}function yu(r,e){if(!r.isOdd)throw new Error("Field doesn't have isOdd");let t=r.sqrt(e);return r.isOdd(t)?r.neg(t):t}function wu(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function Ia(r){let e=wu(r);return e+Math.ceil(e/2)}function bu(r,e,t=!1){let n=r.length,o=wu(e),s=Ia(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let i=t?Bt(r):Zt(r),a=Z(i,e-J)+J;return t?wr(a,o):Qt(a,o)}var Hm=BigInt(0),Ba=BigInt(1);function Mo(r,e){let t=(o,s)=>{let i=s.negate();return o?i:s},n=o=>{let s=Math.ceil(e/o)+1,i=2**(o-1);return{windows:s,windowSize:i}};return{constTimeNegate:t,unsafeLadder(o,s){let i=r.ZERO,a=o;for(;s>Hm;)s&Ba&&(i=i.add(a)),a=a.double(),s>>=Ba;return i},precomputeWindow(o,s){let{windows:i,windowSize:a}=n(s),c=[],u=o,f=u;for(let l=0;l<i;l++){f=u,c.push(f);for(let h=1;h<a;h++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(o,s,i){let{windows:a,windowSize:c}=n(o),u=r.ZERO,f=r.BASE,l=BigInt(2**o-1),h=2**o,g=BigInt(o);for(let d=0;d<a;d++){let p=d*c,m=Number(i&l);i>>=g,m>c&&(m-=h,i+=Ba);let w=p,x=p+Math.abs(m)-1,b=d%2!==0,A=m<0;m===0?f=f.add(t(b,s[w])):u=u.add(t(A,s[x]))}return{p:u,f}},wNAFCached(o,s,i,a){let c=o._WINDOW_SIZE||1,u=s.get(o);return u||(u=this.precomputeWindow(o,c),c!==1&&s.set(o,a(u))),this.wNAF(c,u,i)}}}function Mn(r){return _a(r.Fp),pt(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Sa(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var st=BigInt(0),ze=BigInt(1),Fo=BigInt(2),$m=BigInt(8),qm={zip215:!0};function Gm(r){let e=Mn(r);return pt(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Vo(r){let e=Gm(r),{Fp:t,n,prehash:o,hash:s,randomBytes:i,nByteLength:a,h:c}=e,u=Fo<<BigInt(a*8)-ze,f=t.create,l=e.uvRatio||((_,E)=>{try{return{isValid:!0,value:t.sqrt(_*t.inv(E))}}catch{return{isValid:!1,value:st}}}),h=e.adjustScalarBytes||(_=>_),g=e.domain||((_,E,T)=>{if(E.length||T)throw new Error("Contexts/pre-hash are not supported");return _}),d=_=>typeof _=="bigint"&&st<_,p=(_,E)=>d(_)&&d(E)&&_<E,m=_=>_===st||p(_,u);function w(_,E){if(p(_,E))return _;throw new Error(`Expected valid scalar < ${E}, got ${typeof _} ${_}`)}function x(_){return _===st?_:w(_,n)}let b=new Map;function A(_){if(!(_ instanceof v))throw new Error("ExtendedPoint expected")}class v{constructor(E,T,k,P){if(this.ex=E,this.ey=T,this.ez=k,this.et=P,!m(E))throw new Error("x required");if(!m(T))throw new Error("y required");if(!m(k))throw new Error("z required");if(!m(P))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof v)throw new Error("extended point not allowed");let{x:T,y:k}=E||{};if(!m(T)||!m(k))throw new Error("invalid affine point");return new v(T,k,ze,f(T*k))}static normalizeZ(E){let T=t.invertBatch(E.map(k=>k.ez));return E.map((k,P)=>k.toAffine(T[P])).map(v.fromAffine)}_setWindowSize(E){this._WINDOW_SIZE=E,b.delete(this)}assertValidity(){let{a:E,d:T}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:k,ey:P,ez:F,et:V}=this,Y=f(k*k),$=f(P*P),z=f(F*F),de=f(z*z),oe=f(Y*E),ve=f(z*f(oe+$)),Ae=f(de+f(T*f(Y*$)));if(ve!==Ae)throw new Error("bad point: equation left != right (1)");let ge=f(k*P),Ne=f(F*V);if(ge!==Ne)throw new Error("bad point: equation left != right (2)")}equals(E){A(E);let{ex:T,ey:k,ez:P}=this,{ex:F,ey:V,ez:Y}=E,$=f(T*Y),z=f(F*P),de=f(k*Y),oe=f(V*P);return $===z&&de===oe}is0(){return this.equals(v.ZERO)}negate(){return new v(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=e,{ex:T,ey:k,ez:P}=this,F=f(T*T),V=f(k*k),Y=f(Fo*f(P*P)),$=f(E*F),z=T+k,de=f(f(z*z)-F-V),oe=$+V,ve=oe-Y,Ae=$-V,ge=f(de*ve),Ne=f(oe*Ae),vt=f(de*Ae),pr=f(ve*oe);return new v(ge,Ne,pr,vt)}add(E){A(E);let{a:T,d:k}=e,{ex:P,ey:F,ez:V,et:Y}=this,{ex:$,ey:z,ez:de,et:oe}=E;if(T===BigInt(-1)){let Il=f((F-P)*(z+$)),Bl=f((F+P)*(z-$)),$i=f(Bl-Il);if($i===st)return this.double();let Tl=f(V*Fo*oe),Cl=f(Y*Fo*de),Nl=Cl+Tl,Ll=Bl+Il,kl=Cl-Tl,Pd=f(Nl*$i),Od=f(Ll*kl),Ud=f(Nl*kl),Md=f($i*Ll);return new v(Pd,Od,Md,Ud)}let ve=f(P*$),Ae=f(F*z),ge=f(Y*k*oe),Ne=f(V*de),vt=f((P+F)*($+z)-ve-Ae),pr=Ne-ge,Ln=Ne+ge,Sl=f(Ae-T*ve),Nd=f(vt*pr),Ld=f(Ln*Sl),kd=f(vt*Sl),Dd=f(pr*Ln);return new v(Nd,Ld,Dd,kd)}subtract(E){return this.add(E.negate())}wNAF(E){return N.wNAFCached(this,b,E,v.normalizeZ)}multiply(E){let{p:T,f:k}=this.wNAF(w(E,n));return v.normalizeZ([T,k])[0]}multiplyUnsafe(E){let T=x(E);return T===st?C:this.equals(C)||T===ze?this:this.equals(S)?this.wNAF(T).p:N.unsafeLadder(this,T)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(E){let{ex:T,ey:k,ez:P}=this,F=this.is0();E==null&&(E=F?$m:t.inv(P));let V=f(T*E),Y=f(k*E),$=f(P*E);if(F)return{x:st,y:ze};if($!==ze)throw new Error("invZ was invalid");return{x:V,y:Y}}clearCofactor(){let{h:E}=e;return E===ze?this:this.multiplyUnsafe(E)}static fromHex(E,T=!1){let{d:k,a:P}=e,F=t.BYTES;E=ae("pointHex",E,F);let V=E.slice(),Y=E[F-1];V[F-1]=Y&-129;let $=Zt(V);$===st||(T?w($,u):w($,t.ORDER));let z=f($*$),de=f(z-ze),oe=f(k*z-P),{isValid:ve,value:Ae}=l(de,oe);if(!ve)throw new Error("Point.fromHex: invalid y coordinate");let ge=(Ae&ze)===ze,Ne=(Y&128)!==0;if(!T&&Ae===st&&Ne)throw new Error("Point.fromHex: x=0 and x_0=1");return Ne!==ge&&(Ae=f(-Ae)),v.fromAffine({x:Ae,y:$})}static fromPrivateKey(E){return U(E).point}toRawBytes(){let{x:E,y:T}=this.toAffine(),k=wr(T,t.BYTES);return k[k.length-1]|=E&ze?128:0,k}toHex(){return It(this.toRawBytes())}}v.BASE=new v(e.Gx,e.Gy,ze,f(e.Gx*e.Gy)),v.ZERO=new v(st,ze,ze,st);let{BASE:S,ZERO:C}=v,N=Mo(v,a*8);function q(_){return Z(_,n)}function G(_){return q(Zt(_))}function U(_){let E=a;_=ae("private key",_,E);let T=ae("hashed private key",s(_),2*E),k=h(T.slice(0,E)),P=T.slice(E,2*E),F=G(k),V=S.multiply(F),Y=V.toRawBytes();return{head:k,prefix:P,scalar:F,point:V,pointBytes:Y}}function he(_){return U(_).pointBytes}function le(_=new Uint8Array,...E){let T=Tt(...E);return G(s(g(T,ae("context",_),!!o)))}function Je(_,E,T={}){_=ae("message",_),o&&(_=o(_));let{prefix:k,scalar:P,pointBytes:F}=U(E),V=le(T.context,k,_),Y=S.multiply(V).toRawBytes(),$=le(T.context,Y,F,_),z=q(V+$*P);x(z);let de=Tt(Y,wr(z,t.BYTES));return ae("result",de,a*2)}let R=qm;function L(_,E,T,k=R){let{context:P,zip215:F}=k,V=t.BYTES;_=ae("signature",_,2*V),E=ae("message",E),o&&(E=o(E));let Y=Zt(_.slice(V,2*V)),$,z,de;try{$=v.fromHex(T,F),z=v.fromHex(_.slice(0,V),F),de=S.multiplyUnsafe(Y)}catch{return!1}if(!F&&$.isSmallOrder())return!1;let oe=le(P,z.toRawBytes(),$.toRawBytes(),E);return z.add($.multiplyUnsafe(oe)).subtract(de).clearCofactor().equals(v.ZERO)}return S._setWindowSize(8),{CURVE:e,getPublicKey:he,sign:Je,verify:L,ExtendedPoint:v,utils:{getExtendedPublicKey:U,randomPrivateKey:()=>i(t.BYTES),precompute(_=8,E=v.BASE){return E._setWindowSize(_),E.multiply(BigInt(3)),E}}}}var Ca=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Eu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Xb=BigInt(0),zm=BigInt(1),Ta=BigInt(2),Ym=BigInt(5),xu=BigInt(10),Wm=BigInt(20),jm=BigInt(40),vu=BigInt(80);function Xm(r){let e=Ca,n=r*r%e*r%e,o=ee(n,Ta,e)*n%e,s=ee(o,zm,e)*r%e,i=ee(s,Ym,e)*s%e,a=ee(i,xu,e)*i%e,c=ee(a,Wm,e)*a%e,u=ee(c,jm,e)*c%e,f=ee(u,vu,e)*u%e,l=ee(f,vu,e)*u%e,h=ee(l,xu,e)*i%e;return{pow_p_5_8:ee(h,Ta,e)*r%e,b2:n}}function Zm(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Qm(r,e){let t=Ca,n=Z(e*e*e,t),o=Z(n*n*e,t),s=Xm(r*o).pow_p_5_8,i=Z(r*n*s,t),a=Z(e*i*i,t),c=i,u=Z(i*Eu,t),f=a===r,l=a===Z(-r,t),h=a===Z(-r*Eu,t);return f&&(i=c),(l||h)&&(i=u),gu(i,t)&&(i=Z(-i,t)),{isValid:f||l,value:i}}var Ct=Uo(Ca,void 0,!0),Na={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Ct,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Xr,randomBytes:Wr,adjustScalarBytes:Zm,uvRatio:Qm},Qr=Vo(Na);function Au(r,e,t){if(e.length>255)throw new Error("Context is too big");return No(wa("SigEd25519 no Ed25519 collisions"),new Uint8Array([t?1:0,e.length]),e,r)}var Zb=Vo({...Na,domain:Au}),Qb=Vo({...Na,domain:Au,prehash:Xr});var Jm=(Ct.ORDER+BigInt(3))/BigInt(8),Jb=Ct.pow(Ta,Jm),eE=Ct.sqrt(Ct.neg(Ct.ONE)),tE=(Ct.ORDER-BigInt(5))/BigInt(8),rE=BigInt(486662);var nE=yu(Ct,Ct.neg(BigInt(486664)));var oE=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),sE=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),iE=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),aE=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var cE=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Jr=32,Nt=64,Ko=32;function Ru(){let r=Qr.utils.randomPrivateKey(),e=Qr.getPublicKey(r);return{privateKey:Bu(r,e),publicKey:e}}function _u(r){if(r.length!==Ko)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Qr.getPublicKey(e);return{privateKey:Bu(e,t),publicKey:t}}function Su(r,e){let t=r.subarray(0,Ko);return Qr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function Iu(r,e,t){return Qr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Bu(r,e){let t=new Uint8Array(Nt);for(let n=0;n<Ko;n++)t[n]=r[n],t[Ko+n]=e[n];return t}var Me={get(r=globalThis){let e=r.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var La={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Tu(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,o=r?.digest??"SHA-256",s=r?.saltLength??16,i=r?.iterations??32767,a=Me.get();t*=8;async function c(l,h){let g=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),p={name:e,iv:d};typeof h=="string"&&(h=D(h));let m;if(h.length===0){m=await a.subtle.importKey("jwk",La,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,b,{name:e,length:t},!0,["encrypt"])}catch{m=await a.subtle.importKey("jwk",La,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,b,{name:e,length:t},!0,["encrypt"])}let w=await a.subtle.encrypt(p,m,l);return _e([g,p.iv,new Uint8Array(w)])}async function u(l,h){let g=l.subarray(0,s),d=l.subarray(s,s+n),p=l.subarray(s+n),m={name:e,iv:d};typeof h=="string"&&(h=D(h));let w;if(h.length===0)try{let b={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}catch{w=await a.subtle.importKey("jwk",La,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:g,iterations:i,hash:{name:o}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}let x=await a.subtle.decrypt(m,w,p);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function en(r,e){let n=await Tu().encrypt(r,e);return Pn.encode(n)}var rg=Math.pow(2,7),ng=Math.pow(2,14),og=Math.pow(2,21),ka=Math.pow(2,28),Da=Math.pow(2,35),Pa=Math.pow(2,42),Oa=Math.pow(2,49),j=128,ke=127;function pe(r){if(r<rg)return 1;if(r<ng)return 2;if(r<og)return 3;if(r<ka)return 4;if(r<Da)return 5;if(r<Pa)return 6;if(r<Oa)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Ua(r,e,t=0){switch(pe(r)){case 8:e[t++]=r&255|j,r/=128;case 7:e[t++]=r&255|j,r/=128;case 6:e[t++]=r&255|j,r/=128;case 5:e[t++]=r&255|j,r/=128;case 4:e[t++]=r&255|j,r>>>=7;case 3:e[t++]=r&255|j,r>>>=7;case 2:e[t++]=r&255|j,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function sg(r,e,t=0){switch(pe(r)){case 8:e.set(t++,r&255|j),r/=128;case 7:e.set(t++,r&255|j),r/=128;case 6:e.set(t++,r&255|j),r/=128;case 5:e.set(t++,r&255|j),r/=128;case 4:e.set(t++,r&255|j),r>>>=7;case 3:e.set(t++,r&255|j),r>>>=7;case 2:e.set(t++,r&255|j),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Ma(r,e){let t=r[e],n=0;if(n+=t&ke,t<j||(t=r[e+1],n+=(t&ke)<<7,t<j)||(t=r[e+2],n+=(t&ke)<<14,t<j)||(t=r[e+3],n+=(t&ke)<<21,t<j)||(t=r[e+4],n+=(t&ke)*ka,t<j)||(t=r[e+5],n+=(t&ke)*Da,t<j)||(t=r[e+6],n+=(t&ke)*Pa,t<j)||(t=r[e+7],n+=(t&ke)*Oa,t<j))return n;throw new RangeError("Could not decode varint")}function ig(r,e){let t=r.get(e),n=0;if(n+=t&ke,t<j||(t=r.get(e+1),n+=(t&ke)<<7,t<j)||(t=r.get(e+2),n+=(t&ke)<<14,t<j)||(t=r.get(e+3),n+=(t&ke)<<21,t<j)||(t=r.get(e+4),n+=(t&ke)*ka,t<j)||(t=r.get(e+5),n+=(t&ke)*Da,t<j)||(t=r.get(e+6),n+=(t&ke)*Pa,t<j)||(t=r.get(e+7),n+=(t&ke)*Oa,t<j))return n;throw new RangeError("Could not decode varint")}function De(r,e,t=0){return e==null&&(e=Le(pe(r))),e instanceof Uint8Array?Ua(r,e,t):sg(r,e,t)}function it(r,e=0){return r instanceof Uint8Array?Ma(r,e):ig(r,e)}var Fa=new Float32Array([-0]),Jt=new Uint8Array(Fa.buffer);function Cu(r,e,t){Fa[0]=r,e[t]=Jt[0],e[t+1]=Jt[1],e[t+2]=Jt[2],e[t+3]=Jt[3]}function Nu(r,e){return Jt[0]=r[e],Jt[1]=r[e+1],Jt[2]=r[e+2],Jt[3]=r[e+3],Fa[0]}var Va=new Float64Array([-0]),Pe=new Uint8Array(Va.buffer);function Lu(r,e,t){Va[0]=r,e[t]=Pe[0],e[t+1]=Pe[1],e[t+2]=Pe[2],e[t+3]=Pe[3],e[t+4]=Pe[4],e[t+5]=Pe[5],e[t+6]=Pe[6],e[t+7]=Pe[7]}function ku(r,e){return Pe[0]=r[e],Pe[1]=r[e+1],Pe[2]=r[e+2],Pe[3]=r[e+3],Pe[4]=r[e+4],Pe[5]=r[e+5],Pe[6]=r[e+6],Pe[7]=r[e+7],Va[0]}var ag=BigInt(Number.MAX_SAFE_INTEGER),cg=BigInt(Number.MIN_SAFE_INTEGER),Ye=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return xr;if(e<ag&&e>cg)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Du&&(o=0n,++n>Du&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return xr;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):xr}},xr=new Ye(0,0);xr.toBigInt=function(){return 0n};xr.zzEncode=xr.zzDecode=function(){return this};xr.length=function(){return 1};var Du=4294967296n;function Pu(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Ou(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Ka(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function at(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ho(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Ha=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,at(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw at(this,4);return Ho(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw at(this,4);return Ho(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw at(this,4);let e=Nu(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw at(this,4);let e=ku(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw at(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Ou(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw at(this,e);this.pos+=e}else do if(this.pos>=this.len)throw at(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Ye(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw at(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw at(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw at(this,8);let e=Ho(this.buf,this.pos+=4),t=Ho(this.buf,this.pos+=4);return new Ye(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Ma(this.buf,this.pos);return this.pos+=pe(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function $a(r){return new Ha(r instanceof Uint8Array?r:r.subarray())}function Fe(r,e,t){let n=$a(r);return e.decode(n,void 0,t)}function qa(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Le(i);o+i>e&&(n=Le(e),o=0);let a=n.subarray(o,o+=i);return o&7&&(o=(o|7)+1),a}}var vr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Ga(){}var Ya=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},lg=qa();function ug(r){return globalThis.Buffer!=null?Le(r):lg(r)}var Vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new vr(Ga,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new vr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Wa((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push($o,10,Ye.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Ye.fromBigInt(e);return this._push($o,t.length(),t)}uint64Number(e){return this._push(Ua,pe(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=Ye.fromBigInt(e).zzEncode();return this._push($o,t.length(),t)}sint64Number(e){let t=Ye.fromNumber(e).zzEncode();return this._push($o,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(za,1,e?1:0)}fixed32(e){return this._push(Fn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Ye.fromBigInt(e);return this._push(Fn,4,t.lo)._push(Fn,4,t.hi)}fixed64Number(e){let t=Ye.fromNumber(e);return this._push(Fn,4,t.lo)._push(Fn,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Cu,4,e)}double(e){return this._push(Lu,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(za,1,0):this.uint32(t)._push(hg,t,e)}string(e){let t=Pu(e);return t!==0?this.uint32(t)._push(Ka,t,e):this._push(za,1,0)}fork(){return this.states=new Ya(this),this.head=this.tail=new vr(Ga,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new vr(Ga,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=ug(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function za(r,e,t){e[t]=r&255}function fg(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Wa=class extends vr{next;constructor(e,t){super(fg,e,t),this.next=void 0}};function $o(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function Fn(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function hg(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(Vn.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(dg,e,r),this},Vn.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(pg,e,r),this});function dg(r,e,t){e.set(r,t)}function pg(r,e,t){r.length<40?Ka(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(D(r),t)}function ja(){return new Vn}function Ve(r,e){let t=ja();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var tn;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(tn||(tn={}));function qo(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function Xa(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return qo("enum",tn.VARINT,t,n)}function Ke(r,e){return qo("message",tn.LENGTH_DELIMITED,r,e)}var te;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(te||(te={}));var Za;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Za||(Za={}));(function(r){r.codec=()=>Xa(Za)})(te||(te={}));var mt;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),te.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.Type=te.codec().decode(t);break;case 2:o.Data=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Fe(t,r.codec())})(mt||(mt={}));var gt;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),te.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.Type=te.codec().decode(t);break;case 2:o.Data=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Fe(t,r.codec())})(gt||(gt={}));var Kn=class{_key;constructor(e){this._key=rn(e,Jr)}verify(e,t){return Iu(this._key,t,e)}marshal(){return this._key}get bytes(){return mt.encode({Type:te.Ed25519,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Re.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}},Ar=class{_key;_publicKey;constructor(e,t){this._key=rn(e,Nt),this._publicKey=rn(t,Jr)}sign(e){return Su(this._key,e)}get public(){return new Kn(this._publicKey)}marshal(){return this._key}get bytes(){return gt.encode({Type:te.Ed25519,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}async hash(){let e=Re.digest(this.bytes),t;return et(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=Gt.digest(this.public.bytes);return ne.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return en(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function mg(r){if(r.length>Nt){r=rn(r,Nt+Jr);let n=r.subarray(0,Nt),o=r.subarray(Nt,r.length);return new Ar(n,o)}r=rn(r,Nt);let e=r.subarray(0,Nt),t=r.subarray(Jr);return new Ar(e,t)}function gg(r){return r=rn(r,Jr),new Kn(r)}async function yg(){let{privateKey:r,publicKey:e}=Ru();return new Ar(r,e)}async function Mu(r){let{privateKey:e,publicKey:t}=_u(r);return new Ar(e,t)}function rn(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new y(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}function K(r,e="utf8"){let t=Bo[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var cc={};Ee(cc,{MAX_RSA_KEY_SIZE:()=>Jn,RsaPrivateKey:()=>cn,RsaPublicKey:()=>Qn,fromJwk:()=>qg,generateKeyPair:()=>Gg,unmarshalRsaPrivateKey:()=>ic,unmarshalRsaPublicKey:()=>$g});function yt(r){if(isNaN(r)||r<=0)throw new y("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Wr(r)}var nr={};Ee(nr,{exportToPem:()=>Mg,importFromPem:()=>Fg,jwkToPkcs1:()=>Dg,jwkToPkix:()=>Og,pkcs1ToJwk:()=>kg,pkixToJwk:()=>Pg});var zo=class extends zr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,To(e);let n=Yt(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,s=new Uint8Array(o);s.set(n.length>o?e.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=e.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),s.fill(0)}update(e){return Gr(this),this.iHash.update(e),this}digestInto(e){Gr(this),qr(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Hn=(r,e,t)=>new zo(r,e).update(t).digest();Hn.create=(r,e)=>new zo(r,e);function wg(r,e,t,n){To(r);let o=iu({dkLen:32,asyncTick:10},n),{c:s,dkLen:i,asyncTick:a}=o;if($r(s),$r(i),$r(a),s<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Yt(e),u=Yt(t),f=new Uint8Array(i),l=Hn.create(r,c),h=l._cloneInto().update(u);return{c:s,dkLen:i,asyncTick:a,DK:f,PRF:l,PRFSalt:h}}function bg(r,e,t,n,o){return r.destroy(),e.destroy(),n&&n.destroy(),o.fill(0),t}async function Ja(r,e,t,n){let{c:o,dkLen:s,asyncTick:i,DK:a,PRF:c,PRFSalt:u}=wg(r,e,t,n),f,l=new Uint8Array(4),h=Yr(l),g=new Uint8Array(c.outputLen);for(let d=1,p=0;p<s;d++,p+=c.outputLen){let m=a.subarray(p,p+c.outputLen);h.setInt32(0,d,!1),(f=u._cloneInto(f)).update(l).digestInto(g),m.set(g.subarray(0,m.length)),await su(o-1,i,()=>{c._cloneInto(f).update(g).digestInto(g);for(let w=0;w<m.length;w++)m[w]^=g[w]})}return bg(c,u,a,f,g)}var H=Kt(Fu());function Rr(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function er(r,e,t=-1){let n=t,o=r,s=0,i=Math.pow(2,e);for(let a=1;a<8;a++){if(r<i){let c;if(n<0)c=new ArrayBuffer(a),s=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),s=n}let u=new Uint8Array(c);for(let f=a-1;f>=0;f--){let l=Math.pow(2,f*e);u[s-f-1]=Math.floor(o/l),o-=u[s-f-1]*l}return c}i*=Math.pow(2,e)}return new ArrayBuffer(0)}function jo(...r){let e=0,t=0;for(let s of r)e+=s.length;let n=new ArrayBuffer(e),o=new Uint8Array(n);for(let s of r)o.set(s,t),t+=s.length;return o}function tc(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=Rr(t,8),o=new ArrayBuffer(this.valueHex.byteLength),s=new Uint8Array(o);for(let a=0;a<this.valueHex.byteLength;a++)s[a]=r[a];return s[0]&=127,Rr(s,8)-n}function Vu(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let i=t-e,a=er(i,8,n),c=new Uint8Array(a);return c[0]|=128,a}let o=er(e,8,n),s=new Uint8Array(o);if(s[0]&128){let i=o.slice(0),a=new Uint8Array(i);o=new ArrayBuffer(o.byteLength+1),s=new Uint8Array(o);for(let c=0;c<i.byteLength;c++)s[c+1]=a[c];s[0]=0}return o}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Ku(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let o=0;o<t.length;o++)if(t[o]!==n[o])return!1;return!0}function qe(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,o=new Array(n);for(let i=0;i<n;i++)o[i]="0";return o.join("").concat(t)}var gx=Math.log(2);function Xo(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function rc(r){let e=0,t=0;for(let o=0;o<r.length;o++){let s=r[o];e+=s.byteLength}let n=new Uint8Array(e);for(let o=0;o<r.length;o++){let s=r[o];n.set(new Uint8Array(s),t),t+=s.byteLength}return n.buffer}function Ot(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var qn=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return rc(this.items)}},$n=[new Uint8Array([1])],Hu="0123456789";var sn="",lt=new ArrayBuffer(0),nc=new Uint8Array(0),Gn="EndOfContent",qu="OCTET STRING",Gu="BIT STRING";function Ut(r){var e;return e=class extends r{constructor(...n){var o;super(...n);let s=n[0]||{};this.isHexOnly=(o=s.isHexOnly)!==null&&o!==void 0?o:!1,this.valueHexView=s.valueHex?H.BufferSourceConverter.toUint8Array(s.valueHex):nc}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,o,s){let i=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!Ot(this,i,o,s))return-1;let a=o+s;return this.valueHexView=i.subarray(o,a),this.valueHexView.length?(this.blockLength=s,a):(this.warnings.push("Zero buffer length"),o)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",lt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:H.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var kt=class{constructor({blockLength:e=0,error:t=sn,warnings:n=[],valueBeforeDecode:o=nc}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=H.BufferSourceConverter.toUint8Array(o)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:H.Convert.ToHex(this.valueBeforeDecodeView)}}};kt.NAME="baseBlock";var Oe=class extends kt{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Oe.NAME="valueBlock";var Zo=class extends Ut(kt){constructor({idBlock:e={}}={}){var t,n,o,s;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?H.BufferSourceConverter.toUint8Array(e.valueHex):nc,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(o=e.tagNumber)!==null&&o!==void 0?o:-1,this.isConstructed=(s=e.isConstructed)!==null&&s!==void 0?s:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",lt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let o=new Uint8Array(1);if(!e){let s=this.tagNumber;s&=31,t|=s,o[0]=t}return o.buffer}if(!this.isHexOnly){let o=er(this.tagNumber,7),s=new Uint8Array(o),i=o.byteLength,a=new Uint8Array(i+1);if(a[0]=t|31,!e){for(let c=0;c<i-1;c++)a[c+1]=s[c]|128;a[i]=s[i-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let o=this.valueHexView;for(let s=0;s<o.length-1;s++)n[s+1]=o[s]|128;n[this.valueHexView.byteLength]=o[o.length-1]}return n.buffer}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,o,t,n))return-1;let s=o.subarray(t,t+n);if(s.length===0)return this.error="Zero buffer length",-1;switch(s[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(s[0]&32)===32,this.isHexOnly=!1;let a=s[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,u=this.valueHexView=new Uint8Array(255),f=255;for(;s[c]&128;){if(u[c-1]=s[c]&127,c++,c>=s.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let h=new Uint8Array(f);for(let g=0;g<u.length;g++)h[g]=u[g];u=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,u[c-1]=s[c]&127;let l=new Uint8Array(c);for(let h=0;h<c;h++)l[h]=u[h];u=this.valueHexView=new Uint8Array(c),u.set(l),this.blockLength<=9?this.tagNumber=Rr(u,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};Zo.NAME="identificationBlock";var Qo=class extends kt{constructor({lenBlock:e={}}={}){var t,n,o;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(o=e.length)!==null&&o!==void 0?o:0}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,o,t,n))return-1;let s=o.subarray(t,t+n);if(s.length===0)return this.error="Zero buffer length",-1;if(s[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=s[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(s[0]&128),this.longFormUsed===!1)return this.length=s[0],this.blockLength=1,t+this.blockLength;let i=s[0]&127;if(i>8)return this.error="Too big integer",-1;if(i+1>s.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=o.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Rr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let o=er(this.length,8);if(o.byteLength>127)return this.error="Too big length",lt;if(t=new ArrayBuffer(o.byteLength+1),e)return t;let s=new Uint8Array(o);n=new Uint8Array(t),n[0]=o.byteLength|128;for(let i=0;i<o.byteLength;i++)n[i+1]=s[i];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};Qo.NAME="lengthBlock";var I={},Se=class extends kt{constructor({name:e=sn,optional:t=!1,primitiveSchema:n,...o}={},s){super(o),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new Zo(o),this.lenBlock=new Qo(o),this.valueBlock=s?new s(o):new Oe(o)}fromBER(e,t,n){let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}toBER(e,t){let n=t||new qn;t||zu(this);let o=this.idBlock.toBER(e);if(n.write(o),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let s=this.valueBlock.toBER(e);this.lenBlock.length=s.byteLength;let i=this.lenBlock.toBER(e);n.write(i),n.write(s)}return t?lt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():H.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${H.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Ku(t,n)}};Se.NAME="BaseBlock";function zu(r){if(r instanceof I.Constructed)for(let e of r.valueBlock.value)zu(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var Jo=class extends Se{constructor({value:e=sn,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};Jo.NAME="BaseStringBlock";var es=class extends Ut(Oe){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};es.NAME="PrimitiveValueBlock";var Yu,ts=class extends Se{constructor(e={}){super(e,es),this.idBlock.isConstructed=!1}};Yu=ts;I.Primitive=Yu;ts.NAME="PRIMITIVE";function Bg(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Ds(r,e=0,t=r.length){let n=e,o=new Se({},Oe),s=new kt;if(!Ot(s,r,e,t))return o.error=s.error,{offset:-1,result:o};if(!r.subarray(e,e+t).length)return o.error="Zero buffer length",{offset:-1,result:o};let a=o.idBlock.fromBER(r,e,t);if(o.idBlock.warnings.length&&o.warnings.concat(o.idBlock.warnings),a===-1)return o.error=o.idBlock.error,{offset:-1,result:o};if(e=a,t-=o.idBlock.blockLength,a=o.lenBlock.fromBER(r,e,t),o.lenBlock.warnings.length&&o.warnings.concat(o.lenBlock.warnings),a===-1)return o.error=o.lenBlock.error,{offset:-1,result:o};if(e=a,t-=o.lenBlock.blockLength,!o.idBlock.isConstructed&&o.lenBlock.isIndefiniteForm)return o.error="Indefinite length form used for primitive encoding form",{offset:-1,result:o};let c=Se;switch(o.idBlock.tagClass){case 1:if(o.idBlock.tagNumber>=37&&o.idBlock.isHexOnly===!1)return o.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:o};switch(o.idBlock.tagNumber){case 0:if(o.idBlock.isConstructed&&o.lenBlock.length>0)return o.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:o};c=I.EndOfContent;break;case 1:c=I.Boolean;break;case 2:c=I.Integer;break;case 3:c=I.BitString;break;case 4:c=I.OctetString;break;case 5:c=I.Null;break;case 6:c=I.ObjectIdentifier;break;case 10:c=I.Enumerated;break;case 12:c=I.Utf8String;break;case 13:c=I.RelativeObjectIdentifier;break;case 14:c=I.TIME;break;case 15:return o.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:o};case 16:c=I.Sequence;break;case 17:c=I.Set;break;case 18:c=I.NumericString;break;case 19:c=I.PrintableString;break;case 20:c=I.TeletexString;break;case 21:c=I.VideotexString;break;case 22:c=I.IA5String;break;case 23:c=I.UTCTime;break;case 24:c=I.GeneralizedTime;break;case 25:c=I.GraphicString;break;case 26:c=I.VisibleString;break;case 27:c=I.GeneralString;break;case 28:c=I.UniversalString;break;case 29:c=I.CharacterString;break;case 30:c=I.BmpString;break;case 31:c=I.DATE;break;case 32:c=I.TimeOfDay;break;case 33:c=I.DateTime;break;case 34:c=I.Duration;break;default:{let u=o.idBlock.isConstructed?new I.Constructed:new I.Primitive;u.idBlock=o.idBlock,u.lenBlock=o.lenBlock,u.warnings=o.warnings,o=u}}break;case 2:case 3:case 4:default:c=o.idBlock.isConstructed?I.Constructed:I.Primitive}return o=Bg(o,c),a=o.fromBER(r,e,o.lenBlock.isIndefiniteForm?t:o.lenBlock.length),o.valueBeforeDecodeView=r.subarray(n,n+o.blockLength),{offset:a,result:o}}function an(r){if(!r.byteLength){let e=new Se({},Oe);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Ds(H.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Tg(r,e){return r?1:e}var wt=class extends Oe{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,o,t,n))return-1;if(this.valueBeforeDecodeView=o.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let s=t;for(;Tg(this.isIndefiniteForm,n)>0;){let i=Ds(o,s,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(s=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===Gn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===Gn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),s}toBER(e,t){let n=t||new qn;for(let o=0;o<this.value.length;o++)this.value[o].toBER(e,n);return t?lt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};wt.NAME="ConstructedValueBlock";var Wu,tr=class extends Se{constructor(e={}){super(e,wt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let o=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return o===-1?(this.error=this.valueBlock.error,o):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),o)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
3
3
  `).map(o=>` ${o}`).join(`
4
4
  `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
5
5
  ${e.join(`
6
- `)}`:`${t} :`}};zu=Jt;I.Constructed=zu;Jt.NAME="CONSTRUCTED";var es=class extends De{fromBER(e,t,n){return t}toBER(e){return lt}};es.override="EndOfContentValueBlock";var Yu,ts=class extends _e{constructor(e={}){super(e,es),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Yu=ts;I.EndOfContent=Yu;ts.NAME=qn;var Wu,er=class extends _e{constructor(e={}){super(e,De),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,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,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let o=new Uint8Array(n);o[0]=5,o[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Wu=er;I.Null=Wu;er.NAME="NULL";var rs=class extends Pt(De){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=H.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);return Dt(this,o,t,n)?(this.valueHexView=o.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ja.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};rs.NAME="BooleanValueBlock";var ju,ns=class extends _e{constructor(e={}){super(e,rs),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};ju=ns;I.Boolean=ju;ns.NAME="BOOLEAN";var os=class extends Pt(yt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let o=0;if(this.isConstructed){if(this.isHexOnly=!1,o=yt.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let s=0;s<this.value.length;s++){let i=this.value[s].constructor.NAME;if(i===qn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==Hu)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,o=super.fromBER(e,t,n),this.blockLength=n;return o}toBER(e,t){return this.isConstructed?yt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};os.NAME="OctetStringValueBlock";var Xu,Lt=class r extends _e{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},os),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,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),t;if(!this.valueBlock.isConstructed){let s=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(s.byteLength){let i=Ls(s,0,s.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Jt.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${H.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return H.BufferSourceConverter.concat(e)}};Xu=Lt;I.OctetString=Xu;Lt.NAME=Hu;var ss=class extends Pt(yt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let o=-1;if(this.isConstructed){if(o=yt.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let a of this.value){let c=a.constructor.NAME;if(c===qn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==$u)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=a.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return o}let s=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=Ls(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,t+n}toBER(e,t){if(this.isConstructed)return yt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return lt;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}}};ss.NAME="BitStringValueBlock";var Zu,nn=class extends _e{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},ss),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Jt.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let o of t)e.push(o.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};Zu=nn;I.BitString=Zu;nn.NAME=$u;var Qu;function Tg(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,u=0,f=c<i?i:c,l=0;for(let h=f;h>=0;h--,l++){switch(!0){case l<a.length:u=s[i-l]+a[c-l]+t[0];break;default:u=s[i-l]+t[0]}switch(t[0]=u/10,!0){case l>=s.length:s=Yo(new Uint8Array([u%10]),s);break;default:s[i-l]=u%10}}return t[0]>0&&(s=Yo(t,s)),s}function Ku(r){if(r>=Hn.length)for(let e=Hn.length;e<=r;e++){let t=new Uint8Array([0]),n=Hn[e-1].slice(0);for(let o=n.length-1;o>=0;o--){let s=new Uint8Array([(n[o]<<1)+t[0]]);t[0]=s[0]/10,n[o]=s[0]%10}t[0]>0&&(n=Yo(t,n)),Hn.push(n)}return Hn[r]}function Ng(r,e){let t=0,n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,u,f=0;for(let l=c;l>=0;l--,f++)switch(u=s[i-f]-a[c-f]-t,!0){case u<0:t=1,s[i-f]=u+10;break;default:t=0,s[i-f]=u}if(t>0)for(let l=i-c+1;l>=0;l--,f++)if(u=s[i-f]-t,u<0)t=1,s[i-f]=u+10;else{t=0,s[i-f]=u;break}return s.slice()}var Gn=class extends Pt(De){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}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=Ja.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Mu(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,o=0){let s=this.fromBER(e,t,n);if(s===-1)return s;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):o!==0&&i.length<o&&(o-i.length>1&&(o=i.length+1),this.valueHexView=i.subarray(o-i.length)),s}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let o=super.fromBER(e,t,n);return o===-1||this.setValueHex(),o}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,o,s=this.valueHexView,i="",a=!1;for(let c=s.byteLength-1;c>=0;c--){o=s[c];for(let u=0;u<8;u++){if((o&1)===1)switch(n){case e:t=Ng(Ku(n),t),i="-";break;default:t=Tg(t,Ku(n))}n++,o>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(i+=Vu.charAt(t[c]));return a===!1&&(i+=Vu.charAt(0)),i}};Qu=Gn;Gn.NAME="IntegerValueBlock";Object.defineProperty(Qu.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var Ju,de=class r extends _e{constructor(e={}){super(e,Gn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Wo(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Wo();let t=BigInt(e),n=new $n,o=t.toString(16).replace(/^-/,""),s=new Uint8Array(H.Convert.FromHex(o));if(t<0){let a=new Uint8Array(s.length+(s[0]&128?1:0));a[0]|=128;let u=BigInt(`0x${H.Convert.ToHex(a)}`)+t,f=H.BufferSourceConverter.toUint8Array(H.Convert.FromHex(u.toString(16)));f[0]|=128,n.write(f)}else s[0]&128&&n.write(new Uint8Array([0])),n.write(s);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}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()}`}};Ju=de;I.Integer=Ju;de.NAME="INTEGER";var ef,is=class extends de{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};ef=is;I.Enumerated=ef;is.NAME="ENUMERATED";var zn=class extends Pt(De){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let o=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=Ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Wo();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let o=0;o<n.length;o++)n[o]=parseInt(t.slice(o*7,o*7+7),2)+(o+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=Qt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",lt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n}toString(){let e="";if(this.isHexOnly)e=H.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};zn.NAME="sidBlock";var as=class extends De{constructor({value:e=on,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new zn;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.value.length===0&&(s.isFirstSid=!0),this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}return o}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let o=this.value[n].toBER(e);if(o.byteLength===0)return this.error=this.value[n].error,lt;t.push(o)}return ec(t)}fromString(e){this.value=[];let t=0,n=0,o="",s=!1;do if(n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1,s){let i=this.value[0],a=0;switch(i.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(o,10);if(isNaN(c))return;i.valueDec=c+a,s=!1}else{let i=new zn;if(o>Number.MAX_SAFE_INTEGER){Wo();let a=BigInt(o);i.valueBigInt=a}else if(i.valueDec=parseInt(o,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,s=!0),this.value.push(i)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t?(o=`{${o}}`,this.value[n].isFirstSid?e=`2.{${o} - 80}`:e+=o):e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};as.NAME="ObjectIdentifierValueBlock";var tf,ct=class extends _e{constructor(e={}){super(e,as),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};tf=ct;I.ObjectIdentifier=tf;ct.NAME="OBJECT IDENTIFIER";var Yn=class extends Pt(Ct){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let o=H.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=Ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=Qt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",lt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n.buffer}toString(){let e="";return this.isHexOnly?e=H.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Yn.NAME="relativeSidBlock";var cs=class extends De{constructor({value:e=on,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new Yn;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}return o}toBER(e,t){let n=[];for(let o=0;o<this.value.length;o++){let s=this.value[o].toBER(e);if(s.byteLength===0)return this.error=this.value[o].error,lt;n.push(s)}return ec(n)}fromString(e){this.value=[];let t=0,n=0,o="";do{n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1;let s=new Yn;if(s.valueDec=parseInt(o,10),isNaN(s.valueDec))return!0;this.value.push(s)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(o=`{${o}}`),e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};cs.NAME="RelativeObjectIdentifierValueBlock";var rf,ls=class extends _e{constructor(e={}){super(e,cs),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};rf=ls;I.RelativeObjectIdentifier=rf;ls.NAME="RelativeObjectIdentifier";var nf,Ee=class extends Jt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};nf=Ee;I.Sequence=nf;Ee.NAME="SEQUENCE";var of,us=class extends Jt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};of=us;I.Set=of;us.NAME="SET";var fs=class extends Pt(De){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=on}toJSON(){return{...super.toJSON(),value:this.value}}};fs.NAME="StringValueBlock";var hs=class extends fs{};hs.NAME="SimpleStringValueBlock";var Ke=class extends Zo{constructor({...e}={}){super(e,hs)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,H.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);this.valueBlock.value=e}};Ke.NAME="SIMPLE STRING";var ds=class extends Ke{fromBuffer(e){this.valueBlock.valueHexView=H.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=H.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=H.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(H.Convert.FromUtf8String(e)),this.valueBlock.value=e}};ds.NAME="Utf8StringValueBlock";var sf,kt=class extends ds{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};sf=kt;I.Utf8String=sf;kt.NAME="UTF8String";var ps=class extends Ke{fromBuffer(e){this.valueBlock.value=H.Convert.ToUtf16String(e),this.valueBlock.valueHexView=H.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(H.Convert.FromUtf16String(e))}};ps.NAME="BmpStringValueBlock";var af,ms=class extends ps{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};af=ms;I.BmpString=af;ms.NAME="BMPString";var gs=class extends Ke{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let o=0;o<n.length;o+=4)n[o]=n[o+3],n[o+1]=n[o+2],n[o+2]=0,n[o+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let o=0;o<t;o++){let s=Qt(e.charCodeAt(o),8),i=new Uint8Array(s);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[o*4+c+a]=i[c]}this.valueBlock.value=e}};gs.NAME="UniversalStringValueBlock";var cf,ys=class extends gs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};cf=ys;I.UniversalString=cf;ys.NAME="UniversalString";var lf,ws=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};lf=ws;I.NumericString=lf;ws.NAME="NumericString";var uf,bs=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};uf=bs;I.PrintableString=uf;bs.NAME="PrintableString";var ff,Es=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};ff=Es;I.TeletexString=ff;Es.NAME="TeletexString";var hf,xs=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};hf=xs;I.VideotexString=hf;xs.NAME="VideotexString";var df,vs=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};df=vs;I.IA5String=df;vs.NAME="IA5String";var pf,As=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};pf=As;I.GraphicString=pf;As.NAME="GraphicString";var mf,Wn=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};mf=Wn;I.VisibleString=mf;Wn.NAME="VisibleString";var gf,Rs=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};gf=Rs;I.GeneralString=gf;Rs.NAME="GeneralString";var yf,_s=class extends Ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};yf=_s;I.CharacterString=yf;_s.NAME="CharacterString";var wf,jn=class extends Wn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let o=0;o<e.length;o++)this.valueBlock.valueHexView[o]=e.charCodeAt(o)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,H.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let o=parseInt(n[1],10);o>=50?this.year=1900+o:this.year=2e3+o,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(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=qe(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=qe(this.month,2),t[2]=qe(this.day,2),t[3]=qe(this.hour,2),t[4]=qe(this.minute,2),t[5]=qe(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}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}}};wf=jn;I.UTCTime=wf;jn.NAME="UTCTime";var bf,Ss=class extends jn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",o="",s=0,i,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){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 l=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),l=-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 d=parseInt(g.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*d,g.length===4){if(d=parseInt(g.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=l*d}}}let u=n.indexOf(".");if(u===-1&&(u=n.indexOf(",")),u!==-1){let l=new Number(`0${n.substring(u)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");s=l.valueOf(),o=n.substring(0,u)}else o=n;switch(!0){case o.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case o.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*s;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*s;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=1e3*s;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(o);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l<f.length;l++)switch(l){case 1:this.year=parseInt(f[l],10);break;case 2:this.month=parseInt(f[l],10);break;case 3:this.day=parseInt(f[l],10);break;case 4:this.hour=parseInt(f[l],10)+a;break;case 5:this.minute=parseInt(f[l],10)+c;break;case 6:this.second=parseInt(f[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(qe(this.year,4)),t.push(qe(this.month,2)),t.push(qe(this.day,2)),t.push(qe(this.hour,2)),t.push(qe(this.minute,2)),t.push(qe(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(qe(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};bf=Ss;I.GeneralizedTime=bf;Ss.NAME="GeneralizedTime";var Ef,Is=class extends kt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ef=Is;I.DATE=Ef;Is.NAME="DATE";var xf,Bs=class extends kt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};xf=Bs;I.TimeOfDay=xf;Bs.NAME="TimeOfDay";var vf,Ts=class extends kt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};vf=Ts;I.DateTime=vf;Ts.NAME="DateTime";var Af,Ns=class extends kt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Af=Ns;I.Duration=Af;Ns.NAME="Duration";var Rf,Cs=class extends kt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Rf=Cs;I.TIME=Rf;Cs.NAME="TIME";function Lg(r){let{result:e}=sn(r),t=e.valueBlock.value;return{n:K(wt(t[1].toBigInt()),"base64url"),e:K(wt(t[2].toBigInt()),"base64url"),d:K(wt(t[3].toBigInt()),"base64url"),p:K(wt(t[4].toBigInt()),"base64url"),q:K(wt(t[5].toBigInt()),"base64url"),dp:K(wt(t[6].toBigInt()),"base64url"),dq:K(wt(t[7].toBigInt()),"base64url"),qi:K(wt(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function kg(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 y("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new Ee({value:[new de({value:0}),de.fromBigInt(bt(D(r.n,"base64url"))),de.fromBigInt(bt(D(r.e,"base64url"))),de.fromBigInt(bt(D(r.d,"base64url"))),de.fromBigInt(bt(D(r.p,"base64url"))),de.fromBigInt(bt(D(r.q,"base64url"))),de.fromBigInt(bt(D(r.dp,"base64url"))),de.fromBigInt(bt(D(r.dq,"base64url"))),de.fromBigInt(bt(D(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function Dg(r){let{result:e}=sn(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:K(wt(t[0].toBigInt()),"base64url"),e:K(wt(t[1].toBigInt()),"base64url")}}function Pg(r){if(r.n==null||r.e==null)throw new y("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new Ee({value:[new Ee({value:[new ct({value:"1.2.840.113549.1.1.1"}),new er]}),new nn({valueHex:new Ee({value:[de.fromBigInt(bt(D(r.n,"base64url"))),de.fromBigInt(bt(D(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function wt(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),o=0,s=0;for(;o<t;)n[o]=parseInt(e.slice(s,s+2),16),o+=1,s+=2;return n}function bt(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var Og=16,rc=32,nc=1e4;async function Ug(r,e){let t=Ue.get(),o=new Ee({value:[new de({value:0}),new Ee({value:[new ct({value:"1.2.840.113549.1.1.1"}),new er]}),new Lt({valueHex:r.marshal()})]}).toBER(),s=new Uint8Array(o,0,o.byteLength),i=vr(Og),a=await Za(jr,e,i,{c:nc,dkLen:rc}),c=vr(16),u=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},u,s),l=new Ee({value:[new Lt({valueHex:i}),new de({value:nc}),new de({value:rc}),new Ee({value:[new ct({value:"1.2.840.113549.2.11"}),new er]})]}),h=new Ee({value:[new ct({value:"1.2.840.113549.1.5.13"}),new Ee({value:[new Ee({value:[new ct({value:"1.2.840.113549.1.5.12"}),l]}),new Ee({value:[new ct({value:"2.16.840.1.101.3.4.1.42"}),new Lt({valueHex:c})]})]})]}),d=new Ee({value:[h,new Lt({valueHex:f})]}).toBER(),p=new Uint8Array(d,0,d.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...K(p,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
- `)}async function Mg(r,e){let t=Ue.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=D(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=sn(o),{iv:i,salt:a,iterations:c,keySize:u,cipherText:f}=Fg(s),l=await Za(jr,e,a,{c,dkLen:u}),h=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),g=Xn(await t.subtle.decrypt({name:"AES-CBC",iv:i},h,f)),{result:d}=sn(g);n=_f(d)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=D(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=sn(o);n=_f(s)}else throw new y("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return oc(n)}function Fg(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new y("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new y("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let s=n.valueBlock.value[1],i=Xn(s.valueBlock.value[0].getValue()),a=nc,c=rc;if(s.valueBlock.value.length===3)a=Number(s.valueBlock.value[1].toBigInt()),c=Number(s.valueBlock.value[2].toBigInt());else if(s.valueBlock.value.length===2)throw new y("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let u=e.valueBlock.value[1].valueBlock.value[1],f=u.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new y("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Xn(u.valueBlock.value[1].getValue());return{cipherText:Xn(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:l}}function _f(r){return Xn(r.valueBlock.value[2].getValue())}function Xn(r){return new Uint8Array(r,0,r.byteLength)}async function Sf(r){let e=await Ue.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Tf(e);return{privateKey:t[0],publicKey:t[1]}}async function sc(r){let t=[await Ue.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Vg(r)],n=await Tf({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function If(r,e){let t=await Ue.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ue.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Bf(r,e,t){let n=await Ue.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ue.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Tf(r){if(r.privateKey==null||r.publicKey==null)throw new y("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ue.get().subtle.exportKey("jwk",r.privateKey),Ue.get().subtle.exportKey("jwk",r.publicKey)])}async function Vg(r){return Ue.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function ks(r){if(r.kty!=="RSA")throw new y("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new y("invalid key modulus","ERR_INVALID_KEY_MODULUS");return D(r.n,"base64url").length*8}var Qn=8192,Zn=class{_key;constructor(e){this._key=e}verify(e,t){return Bf(this._key,t,e)}marshal(){return tr.jwkToPkix(this._key)}get bytes(){return mt.encode({Type:te.RSA,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Ae.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}},an=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return vr(16)}sign(e){return If(this._key,e)}get public(){if(this._publicKey==null)throw new y("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Zn(this._publicKey)}marshal(){return tr.jwkToPkcs1(this._key)}get bytes(){return gt.encode({Type:te.RSA,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Ae.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return K(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return tr.exportToPem(this,e);if(t==="libp2p-key")return Jr(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function oc(r){let e=tr.pkcs1ToJwk(r);if(ks(e)>Qn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await sc(e);return new an(t.privateKey,t.publicKey)}function Hg(r){let e=tr.pkixToJwk(r);if(ks(e)>Qn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Zn(e)}async function $g(r){if(ks(r)>Qn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await sc(r);return new an(e.privateKey,e.publicKey)}async function qg(r){if(r>Qn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Sf(r);return new an(e.privateKey,e.publicKey)}var fc={};be(fc,{Secp256k1PrivateKey:()=>eo,Secp256k1PublicKey:()=>Jn,generateKeyPair:()=>n0,unmarshalSecp256k1PrivateKey:()=>t0,unmarshalSecp256k1PublicKey:()=>r0});var Gg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),rr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nr=new Uint32Array(64),ac=class extends Wr{constructor(){super(64,32,8,!1),this.A=rr[0]|0,this.B=rr[1]|0,this.C=rr[2]|0,this.D=rr[3]|0,this.E=rr[4]|0,this.F=rr[5]|0,this.G=rr[6]|0,this.H=rr[7]|0}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)nr[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=nr[l-15],g=nr[l-2],d=ot(h,7)^ot(h,18)^h>>>3,p=ot(g,17)^ot(g,19)^g>>>10;nr[l]=p+nr[l-7]+d+nr[l-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let h=ot(a,6)^ot(a,11)^ot(a,25),g=f+h+su(a,c,u)+Gg[l]+nr[l]|0,p=(ot(n,2)^ot(n,13)^ot(n,22))+iu(n,o,s)|0;f=u,u=c,c=a,a=i+g|0,i=s,s=o,o=n,n=g+p|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,o,s,i,a,c,u,f)}roundClean(){nr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Nf=No(()=>new ac);function zg(r){let e=Un(r);pt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:o}=e;if(t){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Yg,hexToBytes:Wg}=ko,Rr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=Rr;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Yg(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=Rr,t=typeof r=="string"?Wg(r):r;Xr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:o,l:s}=Rr._parseInt(t.subarray(2)),{d:i,l:a}=Rr._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s:i}},hexFromSig(r){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,t=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=e(t(r.s)),o=e(t(r.r)),s=n.length/2,i=o.length/2,a=t(s),c=t(i);return`30${t(i+s+4)}02${c}${o}02${a}${n}`}},Ot=BigInt(0),rt=BigInt(1),Kx=BigInt(2),Cf=BigInt(3),Hx=BigInt(4);function jg(r){let e=zg(r),{Fp:t}=e,n=e.toBytes||((d,p,m)=>{let w=p.toAffine();return It(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),o=e.fromBytes||(d=>{let p=d.subarray(1),m=t.fromBytes(p.subarray(0,t.BYTES)),w=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:m,y:w}});function s(d){let{a:p,b:m}=e,w=t.sqr(d),x=t.mul(w,d);return t.add(t.add(x,t.mul(d,p)),m)}if(!t.eql(t.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function i(d){return typeof d=="bigint"&&Ot<d&&d<e.n}function a(d){if(!i(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:p,nByteLength:m,wrapPrivateKey:w,n:x}=e;if(p&&typeof d!="bigint"){if(Wt(d)&&(d=_t(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(m*2,"0")}let b;try{b=typeof d=="bigint"?d:St(ae("private key",d,m))}catch{throw new Error(`private key must be ${m} bytes, hex or bigint, not ${typeof d}`)}return w&&(b=Z(b,x)),a(b),b}let u=new Map;function f(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,m,w){if(this.px=p,this.py=m,this.pz=w,p==null||!t.isValid(p))throw new Error("x required");if(m==null||!t.isValid(m))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required")}static fromAffine(p){let{x:m,y:w}=p||{};if(!p||!t.isValid(m)||!t.isValid(w))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let x=b=>t.eql(b,t.ZERO);return x(m)&&x(w)?l.ZERO:new l(m,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let m=t.invertBatch(p.map(w=>w.pz));return p.map((w,x)=>w.toAffine(m[x])).map(l.fromAffine)}static fromHex(p){let m=l.fromAffine(o(ae("pointHex",p)));return m.assertValidity(),m}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:m}=this.toAffine();if(!t.isValid(p)||!t.isValid(m))throw new Error("bad point: x or y not FE");let w=t.sqr(m),x=s(p);if(!t.eql(w,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){f(p);let{px:m,py:w,pz:x}=this,{px:b,py:A,pz:v}=p,S=t.eql(t.mul(m,v),t.mul(b,x)),N=t.eql(t.mul(w,v),t.mul(A,x));return S&&N}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:m}=e,w=t.mul(m,Cf),{px:x,py:b,pz:A}=this,v=t.ZERO,S=t.ZERO,N=t.ZERO,C=t.mul(x,x),q=t.mul(b,b),G=t.mul(A,A),U=t.mul(x,b);return U=t.add(U,U),N=t.mul(x,A),N=t.add(N,N),v=t.mul(p,N),S=t.mul(w,G),S=t.add(v,S),v=t.sub(q,S),S=t.add(q,S),S=t.mul(v,S),v=t.mul(U,v),N=t.mul(w,N),G=t.mul(p,G),U=t.sub(C,G),U=t.mul(p,U),U=t.add(U,N),N=t.add(C,C),C=t.add(N,C),C=t.add(C,G),C=t.mul(C,U),S=t.add(S,C),G=t.mul(b,A),G=t.add(G,G),C=t.mul(G,U),v=t.sub(v,C),N=t.mul(G,q),N=t.add(N,N),N=t.add(N,N),new l(v,S,N)}add(p){f(p);let{px:m,py:w,pz:x}=this,{px:b,py:A,pz:v}=p,S=t.ZERO,N=t.ZERO,C=t.ZERO,q=e.a,G=t.mul(e.b,Cf),U=t.mul(m,b),ue=t.mul(w,A),ce=t.mul(x,v),Je=t.add(m,w),R=t.add(b,A);Je=t.mul(Je,R),R=t.add(U,ue),Je=t.sub(Je,R),R=t.add(m,x);let L=t.add(b,v);return R=t.mul(R,L),L=t.add(U,ce),R=t.sub(R,L),L=t.add(w,x),S=t.add(A,v),L=t.mul(L,S),S=t.add(ue,ce),L=t.sub(L,S),C=t.mul(q,R),S=t.mul(G,ce),C=t.add(S,C),S=t.sub(ue,C),C=t.add(ue,C),N=t.mul(S,C),ue=t.add(U,U),ue=t.add(ue,U),ce=t.mul(q,ce),R=t.mul(G,R),ue=t.add(ue,ce),ce=t.sub(U,ce),ce=t.mul(q,ce),R=t.add(R,ce),U=t.mul(ue,R),N=t.add(N,U),U=t.mul(L,R),S=t.mul(Je,S),S=t.sub(S,U),U=t.mul(Je,ue),C=t.mul(L,C),C=t.add(C,U),new l(S,N,C)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return g.wNAFCached(this,u,p,m=>{let w=t.invertBatch(m.map(x=>x.pz));return m.map((x,b)=>x.toAffine(w[b])).map(l.fromAffine)})}multiplyUnsafe(p){let m=l.ZERO;if(p===Ot)return m;if(a(p),p===rt)return this;let{endo:w}=e;if(!w)return g.unsafeLadder(this,p);let{k1neg:x,k1:b,k2neg:A,k2:v}=w.splitScalar(p),S=m,N=m,C=this;for(;b>Ot||v>Ot;)b&rt&&(S=S.add(C)),v&rt&&(N=N.add(C)),C=C.double(),b>>=rt,v>>=rt;return x&&(S=S.negate()),A&&(N=N.negate()),N=new l(t.mul(N.px,w.beta),N.py,N.pz),S.add(N)}multiply(p){a(p);let m=p,w,x,{endo:b}=e;if(b){let{k1neg:A,k1:v,k2neg:S,k2:N}=b.splitScalar(m),{p:C,f:q}=this.wNAF(v),{p:G,f:U}=this.wNAF(N);C=g.constTimeNegate(A,C),G=g.constTimeNegate(S,G),G=new l(t.mul(G.px,b.beta),G.py,G.pz),w=C.add(G),x=q.add(U)}else{let{p:A,f:v}=this.wNAF(m);w=A,x=v}return l.normalizeZ([w,x])[0]}multiplyAndAddUnsafe(p,m,w){let x=l.BASE,b=(v,S)=>S===Ot||S===rt||!v.equals(x)?v.multiplyUnsafe(S):v.multiply(S),A=b(this,m).add(b(p,w));return A.is0()?void 0:A}toAffine(p){let{px:m,py:w,pz:x}=this,b=this.is0();p==null&&(p=b?t.ONE:t.inv(x));let A=t.mul(m,p),v=t.mul(w,p),S=t.mul(x,p);if(b)return{x:t.ZERO,y:t.ZERO};if(!t.eql(S,t.ONE))throw new Error("invZ was invalid");return{x:A,y:v}}isTorsionFree(){let{h:p,isTorsionFree:m}=e;if(p===rt)return!0;if(m)return m(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:m}=e;return p===rt?this:m?m(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return _t(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,g=Oo(l,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:i}}function Xg(r){let e=Un(r);return pt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Lf(r){let e=Xg(r),{Fp:t,n}=e,o=t.BYTES+1,s=2*t.BYTES+1;function i(R){return Ot<R&&R<t.ORDER}function a(R){return Z(R,n)}function c(R){return Do(R,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:h}=jg({...e,toBytes(R,L,M){let _=L.toAffine(),E=t.toBytes(_.x),T=It;return M?T(Uint8Array.from([L.hasEvenY()?2:3]),E):T(Uint8Array.from([4]),E,t.toBytes(_.y))},fromBytes(R){let L=R.length,M=R[0],_=R.subarray(1);if(L===o&&(M===2||M===3)){let E=St(_);if(!i(E))throw new Error("Point is not on curve");let T=l(E),k;try{k=t.sqrt(T)}catch(V){let Y=V instanceof Error?": "+V.message:"";throw new Error("Point is not on curve"+Y)}let P=(k&rt)===rt;return(M&1)===1!==P&&(k=t.neg(k)),{x:E,y:k}}else if(L===s&&M===4){let E=t.fromBytes(_.subarray(0,t.BYTES)),T=t.fromBytes(_.subarray(t.BYTES,2*t.BYTES));return{x:E,y:T}}else throw new Error(`Point of length ${L} was invalid. Expected ${o} compressed bytes or ${s} uncompressed bytes`)}}),g=R=>_t(Xt(R,e.nByteLength));function d(R){let L=n>>rt;return R>L}function p(R){return d(R)?a(-R):R}let m=(R,L,M)=>St(R.slice(L,M));class w{constructor(L,M,_){this.r=L,this.s=M,this.recovery=_,this.assertValidity()}static fromCompact(L){let M=e.nByteLength;return L=ae("compactSignature",L,M*2),new w(m(L,0,M),m(L,M,2*M))}static fromDER(L){let{r:M,s:_}=Rr.toSig(ae("DER",L));return new w(M,_)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new w(this.r,this.s,L)}recoverPublicKey(L){let{r:M,s:_,recovery:E}=this,T=N(ae("msgHash",L));if(E==null||![0,1,2,3].includes(E))throw new Error("recovery id invalid");let k=E===2||E===3?M+e.n:M;if(k>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let P=E&1?"03":"02",F=u.fromHex(P+g(k)),V=c(k),Y=a(-T*V),$=a(_*V),z=u.BASE.multiplyAndAddUnsafe(F,Y,$);if(!z)throw new Error("point at infinify");return z.assertValidity(),z}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return mr(this.toDERHex())}toDERHex(){return Rr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return mr(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let x={isValidPrivateKey(R){try{return f(R),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let R=_a(e.n);return yu(e.randomBytes(R),e.n)},precompute(R=8,L=u.BASE){return L._setWindowSize(R),L.multiply(BigInt(3)),L}};function b(R,L=!0){return u.fromPrivateKey(R).toRawBytes(L)}function A(R){let L=Wt(R),M=typeof R=="string",_=(L||M)&&R.length;return L?_===o||_===s:M?_===2*o||_===2*s:R instanceof u}function v(R,L,M=!0){if(A(R))throw new Error("first arg must be private key");if(!A(L))throw new Error("second arg must be public key");return u.fromHex(L).multiply(f(R)).toRawBytes(M)}let S=e.bits2int||function(R){let L=St(R),M=R.length*8-e.nBitLength;return M>0?L>>BigInt(M):L},N=e.bits2int_modN||function(R){return a(S(R))},C=On(e.nBitLength);function q(R){if(typeof R!="bigint")throw new Error("bigint expected");if(!(Ot<=R&&R<C))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Xt(R,e.nByteLength)}function G(R,L,M=U){if(["recovered","canonical"].some(oe=>oe in M))throw new Error("sign() legacy options not supported");let{hash:_,randomBytes:E}=e,{lowS:T,prehash:k,extraEntropy:P}=M;T==null&&(T=!0),R=ae("msgHash",R),k&&(R=ae("prehashed msgHash",_(R)));let F=N(R),V=f(L),Y=[q(V),q(F)];if(P!=null&&P!==!1){let oe=P===!0?E(t.BYTES):P;Y.push(ae("extraEntropy",oe))}let $=It(...Y),z=F;function fe(oe){let xe=S(oe);if(!h(xe))return;let ve=c(xe),me=u.BASE.multiply(xe).toAffine(),Te=a(me.x);if(Te===Ot)return;let xt=a(ve*a(z+Te*V));if(xt===Ot)return;let fr=(me.x===Te?0:2)|Number(me.y&rt),Cn=xt;return T&&d(xt)&&(Cn=p(xt),fr^=1),new w(Te,Cn,fr)}return{seed:$,k2sig:fe}}let U={lowS:e.lowS,prehash:!1},ue={lowS:e.lowS,prehash:!1};function ce(R,L,M=U){let{seed:_,k2sig:E}=G(R,L,M),T=e;return xa(T.hash.outputLen,T.nByteLength,T.hmac)(_,E)}u.BASE._setWindowSize(8);function Je(R,L,M,_=ue){let E=R;if(L=ae("msgHash",L),M=ae("publicKey",M),"strict"in _)throw new Error("options.strict was renamed to lowS");let{lowS:T,prehash:k}=_,P,F;try{if(typeof E=="string"||Wt(E))try{P=w.fromDER(E)}catch(me){if(!(me instanceof Rr.Err))throw me;P=w.fromCompact(E)}else if(typeof E=="object"&&typeof E.r=="bigint"&&typeof E.s=="bigint"){let{r:me,s:Te}=E;P=new w(me,Te)}else throw new Error("PARSE");F=u.fromHex(M)}catch(me){if(me.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(T&&P.hasHighS())return!1;k&&(L=e.hash(L));let{r:V,s:Y}=P,$=N(L),z=c(Y),fe=a($*z),oe=a(V*z),xe=u.BASE.multiplyAndAddUnsafe(F,fe,oe)?.toAffine();return xe?a(xe.x)===V:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:v,sign:ce,verify:Je,ProjectivePoint:u,Signature:w,utils:x}}function Zg(r){return{hash:r,hmac:(e,...t)=>Kn(r,e,To(...t)),randomBytes:Yr}}function kf(r,e){let t=n=>Lf({...r,...Zg(n)});return Object.freeze({...t(e),create:t})}var Of=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Df=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Qg=BigInt(1),cc=BigInt(2),Pf=(r,e)=>(r+e/cc)/e;function Jg(r){let e=Of,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%e,f=u*u*r%e,l=ee(f,t,e)*f%e,h=ee(l,t,e)*f%e,g=ee(h,cc,e)*u%e,d=ee(g,o,e)*g%e,p=ee(d,s,e)*d%e,m=ee(p,a,e)*p%e,w=ee(m,c,e)*m%e,x=ee(w,a,e)*p%e,b=ee(x,t,e)*f%e,A=ee(b,i,e)*d%e,v=ee(A,n,e)*u%e,S=ee(v,cc,e);if(!lc.eql(lc.sqr(S),r))throw new Error("Cannot find square root");return S}var lc=Po(Of,void 0,void 0,{sqrt:Jg}),ut=kf({a:BigInt(0),b:BigInt(7),Fp:lc,n:Df,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Df,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Qg*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,i=BigInt("0x100000000000000000000000000000000"),a=Pf(s*r,e),c=Pf(-n*r,e),u=Z(r-a*t-c*o,e),f=Z(-a*n-c*s,e),l=u>i,h=f>i;if(l&&(u=e-u),h&&(f=e-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:h,k2:f}}}},Nf),Zx=BigInt(0);var Qx=ut.ProjectivePoint;function Uf(){return ut.utils.randomPrivateKey()}function Mf(r,e){let t=Ae.digest(e instanceof Uint8Array?e:e.subarray());if(et(t))return t.then(({digest:n})=>ut.sign(n,r).toDERRawBytes()).catch(n=>{throw new y(String(n),"ERR_INVALID_INPUT")});try{return ut.sign(t.digest,r).toDERRawBytes()}catch(n){throw new y(String(n),"ERR_INVALID_INPUT")}}function Ff(r,e,t){let n=Ae.digest(t instanceof Uint8Array?t:t.subarray());if(et(n))return n.then(({digest:o})=>ut.verify(e,o,r)).catch(o=>{throw new y(String(o),"ERR_INVALID_INPUT")});try{return ut.verify(e,n.digest,r)}catch(o){throw new y(String(o),"ERR_INVALID_INPUT")}}function Vf(r){return ut.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Kf(r){try{ut.getPublicKey(r,!0)}catch(e){throw new y(String(e),"ERR_INVALID_PRIVATE_KEY")}}function uc(r){try{ut.ProjectivePoint.fromHex(r)}catch(e){throw new y(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Hf(r){try{return ut.getPublicKey(r,!0)}catch(e){throw new y(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Jn=class{_key;constructor(e){uc(e),this._key=e}verify(e,t){return Ff(this._key,t,e)}marshal(){return Vf(this._key)}get bytes(){return mt.encode({Type:te.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}async hash(){let e=Ae.digest(this.bytes),t;return et(e)?{bytes:t}=await e:t=e.bytes,t}},eo=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??Hf(e),Kf(this._key),uc(this._publicKey)}sign(e){return Mf(this._key,e)}get public(){return new Jn(this._publicKey)}marshal(){return this._key}get bytes(){return gt.encode({Type:te.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Ae.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return K(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Jr(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function t0(r){return new eo(r)}function r0(r){return new Jn(r)}async function n0(){let r=Uf();return new eo(r)}var or={rsa:ic,ed25519:Xa,secp256k1:fc};function hc(r){let e=Object.keys(or).join(" / ");return new y(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function dc(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return or[r];throw hc(r)}async function $f(r,e){return dc(r).generateKeyPair(e??2048)}function to(r){let e=mt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case te.RSA:return or.rsa.unmarshalRsaPublicKey(t);case te.Ed25519:return or.ed25519.unmarshalEd25519PublicKey(t);case te.Secp256k1:return or.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw hc(e.Type??"unknown")}}function qf(r,e){return e=(e??"rsa").toLowerCase(),dc(e),r.bytes}async function ro(r){let e=gt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case te.RSA:return or.rsa.unmarshalRsaPrivateKey(t);case te.Ed25519:return or.ed25519.unmarshalEd25519PrivateKey(t);case te.Secp256k1:return or.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw hc(e.Type??"RSA")}}function Gf(r,e){return e=(e??"rsa").toLowerCase(),dc(e),r.bytes}var je=Ft(Xf(),1);je.default.formatters.b=r=>r==null?"undefined":ne.baseEncode(r);je.default.formatters.t=r=>r==null?"undefined":Ge.baseEncode(r);je.default.formatters.m=r=>r==null?"undefined":Dn.baseEncode(r);je.default.formatters.p=r=>r==null?"undefined":r.toString();je.default.formatters.c=r=>r==null?"undefined":r.toString();je.default.formatters.k=r=>r==null?"undefined":r.toString();je.default.formatters.a=r=>r==null?"undefined":r.toString();function g0(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Os(){return{forComponent(r){return y0(r)}}}function y0(r){let e=g0(`${r}:trace`);return je.default.enabled(`${r}:trace`)&&je.default.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=(0,je.default)(`${r}:trace`)),Object.assign((0,je.default)(r),{error:(0,je.default)(`${r}:error`),trace:e})}var w0=Symbol.for("nodejs.util.inspect.custom"),Zf=Object.values(qt).map(r=>r.decoder).reduce((r,e)=>r.or(e),qt.identity.decoder),Qf=114,pc=36,mc=37,no=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[qi]=!0;toString(){return this.string==null&&(this.string=ne.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return nt.createV1(Qf,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return ie(this.multihash.bytes,e);if(typeof e=="string")return ye(e).equals(this);if(e?.multihash?.bytes!=null)return ie(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[w0](){return`PeerId(${this.toString()})`}},Sr=class extends no{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ir=class extends no{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},Br=class extends no{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function Jf(r){if(r.type==="RSA")return new Sr(r);if(r.type==="Ed25519")return new Ir(r);if(r.type==="secp256k1")return new Br(r);throw new y("Not a PeerId","ERR_INVALID_PARAMETERS")}function ye(r,e){if(e=e??Zf,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=dr(ne.decode(`z${r}`));return r.startsWith("12D")?new Ir({multihash:t}):r.startsWith("16U")?new Br({multihash:t}):new Sr({multihash:t})}return fn(Zf.decode(r))}function fn(r){try{let e=dr(r);if(e.code===$t.code){if(e.digest.length===pc)return new Ir({multihash:e});if(e.digest.length===mc)return new Br({multihash:e})}if(e.code===Ae.code)return new Sr({multihash:e})}catch{return b0(nt.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function b0(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==Qf)throw new Error("Supplied PeerID CID is invalid");let e=r.multihash;if(e.code===Ae.code)return new Sr({multihash:r.multihash});if(e.code===$t.code){if(e.digest.length===pc)return new Ir({multihash:r.multihash});if(e.digest.length===mc)return new Br({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function hn(r,e){return r.length===pc?new Ir({multihash:dt($t.code,r),privateKey:e}):r.length===mc?new Br({multihash:dt($t.code,r),privateKey:e}):new Sr({multihash:await Ae.digest(r),publicKey:r,privateKey:e})}function dn(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}var Xe=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return dn(this.map.entries(),e=>[ye(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,ye(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return dn(this.map.keys(),e=>ye(e))}values(){return this.map.values()}get size(){return this.map.size}};var ft=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return dn(this.set.entries(),e=>{let t=ye(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=ye(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return dn(this.set.values(),e=>ye(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var eh=async()=>{let r=await $f("Ed25519"),e=await E0(r);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function E0(r){return hn(qf(r.public),Gf(r))}var rh=Symbol.for("@achingbrain/uint8arraylist");function th(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function Us(r){return!!r?.[rh]}var we=class r{bufs;length;[rh]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(Us(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Us(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=th(this.bufs,e);return t.buf[t.index]}set(e,t){let n=th(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(Us(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return Re(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:Re(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,e>=c)continue;let u=e>=a&&e<c,f=t>a&&t<=c;if(u&&f){if(e===a&&t===c){n.push(i);break}let l=e-a;n.push(i.subarray(l,l+(t-e)));break}if(u){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(f){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Us(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let l=0;l<s;l++)i[l]=-1;for(let l=0;l<o;l++)i[n[l]]=l;let a=i,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=t;l<=c;l+=f){f=0;for(let h=u;h>=0;h--){let g=this.get(l+h);if(n[h]!==g){f=Math.max(1,h-a[g]);break}}if(f===0)return l}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Ne(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=At(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=At(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=At(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Ne(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=At(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=At(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=At(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=At(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=At(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!ie(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var nh={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var oo;(function(r){let e;r.codec=()=>(e==null&&(e=Ve((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.publicKey=t.bytes();break;case 2:o.payloadType=t.bytes();break;case 3:o.payload=t.bytes();break;case 5:o.signature=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Fe(t,r.codec()),r.decode=t=>Me(t,r.codec())})(oo||(oo={}));var pn=class r{static createFromProtobuf=async e=>{let t=oo.decode(e),n=await hn(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,o=e.codec,s=e.marshal(),i=oh(n,o,s),c=await(await ro(t.privateKey)).sign(i.subarray());return new r({peerId:t,payloadType:o,payload:s,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new y("envelope signature is not valid for the given domain",nh.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:o,signature:s}=e;this.peerId=t,this.payloadType=n,this.payload=o,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=oo.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return ie(this.marshal(),e.marshal())}async validate(e){let t=oh(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return to(this.peerId.publicKey).verify(t.subarray(),this.signature)}},oh=(r,e,t)=>{let n=D(r),o=Le(n.byteLength),s=Le(e.length),i=Le(t.length);return new we(o,n,s,e,i,t)};function sh(r,e){let t=(n,o)=>n.toString().localeCompare(o.toString());return r.length!==e.length?!1:(e.sort(t),r.sort(t).every((n,o)=>e[o].equals(n)))}var Ms=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*o)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let h=Number.parseInt(l,e);if(!Number.isNaN(h))return h});if(f===void 0)break;if(s*=e,s+=f,s>u||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let o=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[o]=i[0],t[o+1]=i[1],t[o+2]=i[2],t[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];t[o]=s>>8,t[o+1]=s&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,o]=e(t);if(n===16)return t;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return t.set(s.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var ih=45,x0=15,mn=new Ms;function gc(r){if(!(r.length>x0))return mn.new(r).parseWith(()=>mn.readIPv4Addr())}function yc(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>ih))return mn.new(r).parseWith(()=>mn.readIPv6Addr())}function Fs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>ih))return mn.new(r).parseWith(()=>mn.readIPAddr())}var m1=parseInt("0xFFFF",16),g1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function gn(r){return!!gc(r)}function yn(r){return!!yc(r)}function Vs(r){return!!Fs(r)}var lh=gn,S0=yn,wc=function(r){let e=0;if(r=r.toString().trim(),lh(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(S0(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=lh(t[n]),i;s&&(i=wc(t[n]),t[n]=K(i.slice(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,K(i.slice(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){let s=parseInt(t[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},uh=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let o=[];for(let s=0;s<t;s++)o.push(r[e+s]);return o.join(".")}if(t===16){let o=[];for(let s=0;s<t;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var wn={},bc={},B0=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];B0.forEach(r=>{let e=T0(...r);bc[e.code]=e,wn[e.name]=e});function T0(r,e,t,n,o){return{code:r,size:e,name:t,resolvable:!!n,path:!!o}}function X(r){if(typeof r=="number"){if(bc[r]!=null)return bc[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(wn[r]!=null)return wn[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var J1=X("ip4"),eA=X("ip6"),tA=X("ipcidr");function xc(r,e){switch(X(r).code){case 4:case 41:return C0(e);case 42:return dh(e);case 6:case 273:case 33:case 132:return mh(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return dh(e);case 421:return P0(e);case 444:return ph(e);case 445:return ph(e);case 466:return D0(e);default:return K(e,"base16")}}function vc(r,e){switch(X(r).code){case 4:return fh(e);case 41:return fh(e);case 42:return hh(e);case 6:case 273:case 33:case 132:return Ac(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return hh(e);case 421:return L0(e);case 444:return O0(e);case 445:return U0(e);case 466:return k0(e);default:return D(e,"base16")}}var Ec=Object.values(qt).map(r=>r.decoder),N0=function(){let r=Ec[0].or(Ec[1]);return Ec.slice(2).forEach(e=>r=r.or(e)),r}();function fh(r){if(!Vs(r))throw new Error("invalid ip address");return wc(r)}function C0(r){let e=uh(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!Vs(e))throw new Error("invalid ip address");return e}function Ac(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function mh(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function hh(r){let e=D(r),t=Uint8Array.from(Le(e.length));return Re([t,e],t.length+e.length)}function dh(r){let e=it(r);if(r=r.slice(he(e)),r.length!==e)throw new Error("inconsistent lengths");return K(r)}function L0(r){let e;r[0]==="Q"||r[0]==="1"?e=dr(ne.decode(`z${r}`)).bytes:e=nt.parse(r).multihash.bytes;let t=Uint8Array.from(Le(e.length));return Re([t,e],t.length+e.length)}function k0(r){let e=N0.decode(r),t=Uint8Array.from(Le(e.length));return Re([t,e],t.length+e.length)}function D0(r){let e=it(r),t=r.slice(he(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+K(t,"base64url")}function P0(r){let e=it(r),t=r.slice(he(e));if(t.length!==e)throw new Error("inconsistent lengths");return K(t,"base58btc")}function O0(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=Ge.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Ac(n);return Re([t,o],t.length+o.length)}function U0(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=Ge.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Ac(n);return Re([t,o],t.length+o.length)}function ph(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=K(e,"base32"),o=mh(t);return`${n}:${o}`}function gh(r){r=Rc(r);let e=[],t=[],n=null,o=r.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<o.length;s++){let i=o[s],a=X(i);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(s++,s>=o.length)throw wh("invalid address: "+r);if(a.path===!0){n=Rc(o.slice(s).join("/")),e.push([a.code,vc(a.code,n)]),t.push([a.code,n]);break}let c=vc(a.code,o[s]);e.push([a.code,c]),t.push([a.code,xc(a.code,c)])}return{string:yh(t),bytes:Sc(e),tuples:e,stringTuples:t,path:n}}function _c(r){let e=[],t=[],n=null,o=0;for(;o<r.length;){let s=it(r,o),i=he(s),a=X(s),c=M0(a,r.slice(o+i));if(c===0){e.push([s]),t.push([s]),o+=i;continue}let u=r.slice(o+i,o+i+c);if(o+=c+i,o>r.length)throw wh("Invalid address Uint8Array: "+K(r,"base16"));e.push([s,u]);let f=xc(s,u);if(t.push([s,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:yh(t),tuples:e,stringTuples:t,path:n}}function yh(r){let e=[];return r.map(t=>{let n=X(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),Rc(e.join("/"))}function Sc(r){return Re(r.map(e=>{let t=X(e[0]),n=Uint8Array.from(Le(t.code));return e.length>1&&e[1]!=null&&(n=Re([n,e[1]])),n}))}function M0(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=it(e instanceof Uint8Array?e:Uint8Array.from(e));return t+he(t)}}function Rc(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function wh(r){return new Error("Error parsing address: "+r)}var F0=Symbol.for("nodejs.util.inspect.custom"),Ic=Symbol.for("@multiformats/js-multiaddr/multiaddr"),V0=[X("dns").code,X("dns4").code,X("dns6").code,X("dnsaddr").code],Ks=class r{bytes;#e;#t;#s;#a;[Ic]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=_c(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=gh(e)}else if(sr(e))t=_c(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#s=t.stringTuples,this.#a=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,o,s="",i=X("tcp"),a=X("udp"),c=X("ip4"),u=X("ip6"),f=X("dns6"),l=X("ip6zone");for(let[g,d]of this.stringTuples())g===l.code&&(s=`%${d??""}`),V0.includes(g)&&(t=i.name,o=443,n=`${d??""}${s}`,e=g===f.code?6:4),(g===i.code||g===a.code)&&(t=X(g).name,o=parseInt(d??"")),(g===c.code||g===u.code)&&(t=X(g).name,n=`${d??""}${s}`,e=g===u.code?6:4);if(e==null||t==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:o}}protos(){return this.#t.map(([e])=>Object.assign({},X(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>X(e).name)}tuples(){return this.#t}stringTuples(){return this.#s}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,o))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(Sc(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===wn.p2p.code&&e.push([n,o]),n===wn["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?K(ne.decode(`z${n}`),"base58btc"):K(nt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return ie(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(s=>s.resolvable);if(t==null)return[this];let n=bn.get(t.name);if(n==null)throw new y(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>re(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[F0](){return`Multiaddr(${this.#e})`}};var bn=new Map;function sr(r){return!!r?.[Ic]}function re(r){return new Ks(r)}var bh="libp2p-peer-record",Eh=Uint8Array.from([3,1]);var so;(function(r){let e;(function(n){let o;n.codec=()=>(o==null&&(o=Ve((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(i.uint32(10),i.bytes(s.multiaddr)),a.lengthDelimited!==!1&&i.ldelim()},(s,i)=>{let a={multiaddr:new Uint8Array(0)},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),o),n.encode=s=>Fe(s,n.codec()),n.decode=s=>Me(s,n.codec())})(e=r.AddressInfo||(r.AddressInfo={}));let t;r.codec=()=>(t==null&&(t=Ve((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(o.uint32(10),o.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(o.uint32(16),o.uint64(n.seq)),n.addresses!=null)for(let i of n.addresses)o.uint32(26),r.AddressInfo.codec().encode(i,o);s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},i=o==null?n.len:n.pos+o;for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),t),r.encode=n=>Fe(n,r.codec()),r.decode=n=>Me(n,r.codec())})(so||(so={}));var Tr=class r{static createFromProtobuf=e=>{let t=so.decode(e),n=fn(t.peerId),o=(t.addresses??[]).map(i=>re(i.multiaddr)),s=t.seq;return new r({peerId:n,multiaddrs:o,seqNumber:s})};static DOMAIN=bh;static CODEC=Eh;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(e){let{peerId:t,multiaddrs:n,seqNumber:o}=e;this.peerId=t,this.multiaddrs=n??[],this.seqNumber=o??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=so.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof r)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!sh(this.multiaddrs,e.multiaddrs))}};function K0(r){return r[Symbol.asyncIterator]!=null}function H0(r){if(K0(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var io=H0;var Tc=Ft(vh(),1);var co=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Nc=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ah=r=>globalThis.DOMException===void 0?new Nc(r):new DOMException(r),Rh=r=>{let e=r.reason===void 0?Ah("This operation was aborted."):r.reason;return e instanceof Error?e:Ah(e)};function lo(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,c=new Promise((u,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:h}=e;h.aborted&&f(Rh(h)),h.addEventListener("abort",()=>{f(Rh(h))})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let l=new co;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(l.message=o??`Promise timed out after ${t} milliseconds`,f(l))},t),(async()=>{try{u(await r)}catch(h){f(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},c}function Cc(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var uo=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Cc(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var ir=class extends Tc.default{#e;#t;#s=0;#a;#c;#p=0;#n;#l;#r;#m;#o=0;#u;#i;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:uo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#r=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#t||this.#s<this.#a}get#E(){return this.#o<this.#u}#x(){this.#o--,this.#f(),this.emit("next")}#v(){this.#w(),this.#y(),this.#l=void 0}get#A(){let e=Date.now();if(this.#n===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#o:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#o===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#A;if(this.#b&&this.#E){let t=this.#r.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#t||this.#n!==void 0||(this.#n=setInterval(()=>{this.#w()},this.#c),this.#p=Date.now()+this.#c)}#w(){this.#s===0&&this.#o===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#s=this.#e?this.#o:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#h()}async#R(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#r.enqueue(async()=>{this.#o++,this.#s++;try{t.signal?.throwIfAborted();let s=e({signal:t.signal});t.timeout&&(s=lo(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#R(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof co&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#x()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#h(),this):this}pause(){this.#i=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#d("next",()=>this.#r.size<e)}async onIdle(){this.#o===0&&this.#r.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#o}get isPaused(){return this.#i}};var ar={},En=r=>{r.addEventListener("message",e=>{En.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{En.dispatchEvent("message",r,e)})};En.addEventListener=(r,e)=>{ar[r]==null&&(ar[r]=[]),ar[r].push(e)};En.removeEventListener=(r,e)=>{ar[r]!=null&&(ar[r]=ar[r].filter(t=>t===e))};En.dispatchEvent=function(r,e,t){ar[r]!=null&&ar[r].forEach(n=>n(e,t))};var Lc=En;var kc="lock:worker:request-read",Dc="lock:worker:release-read",Pc="lock:master:grant-read",Oc="lock:worker:request-write",Uc="lock:worker:release-write",Mc="lock:master:grant-write";var _h=(r=21)=>Math.random().toString().substring(2);var Sh=(r,e,t,n,o)=>(s,i)=>{if(i.data.type!==t)return;let a={type:i.data.type,name:i.data.name,identifier:i.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:o,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=f=>{if(f==null||f.data==null)return;let l={type:f.data.type,name:f.data.name,identifier:f.data.identifier};l.type===n&&l.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},Ih=(r,e,t,n)=>async()=>{let o=_h();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(s=>{let i=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===o&&(globalThis.removeEventListener("message",i),s(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",i)})},G0={singleProcess:!1},Bh=r=>{if(r=Object.assign({},G0,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return Lc.addEventListener("message",Sh(t,"requestReadLock",kc,Dc,Pc)),Lc.addEventListener("message",Sh(t,"requestWriteLock",Oc,Uc,Mc)),t}return{isWorker:!0,readLock:t=>Ih(t,kc,Pc,Dc),writeLock:t=>Ih(t,Oc,Mc,Uc)}};var Nr={},cr;async function Fc(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>lo((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var z0=(r,e)=>{if(cr.isWorker===!0)return{readLock:cr.readLock(r,e),writeLock:cr.writeLock(r,e)};let t=new ir({concurrency:1}),n;return{async readLock(){if(n!=null)return Fc(n,e);n=new ir({concurrency:e.concurrency,autoStart:!1});let o=n,s=Fc(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),s},async writeLock(){return n=null,Fc(t,e)}}},Y0={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Vc(r){let e=Object.assign({},Y0,r);return cr==null&&(cr=Bh(e),cr.isWorker!==!0&&(cr.addEventListener("requestReadLock",t=>{Nr[t.data.name]!=null&&Nr[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),cr.addEventListener("requestWriteLock",async t=>{Nr[t.data.name]!=null&&Nr[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Nr[e.name]==null&&(Nr[e.name]=z0(e.name,e)),Nr[e.name]}var Se={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var xn;(function(r){let e;(function(o){let s;o.codec=()=>(s==null&&(s=Ve((i,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),i.key!=null&&i.key!==""&&(a.uint32(10),a.string(i.key)),i.value!=null&&i.value.byteLength>0&&(a.uint32(18),a.bytes(i.value)),c.lengthDelimited!==!1&&a.ldelim()},(i,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:c.key=i.string();break;case 2:c.value=i.bytes();break;default:i.skipType(f&7);break}}return c})),s),o.encode=i=>Fe(i,o.codec()),o.decode=i=>Me(i,o.codec())})(e=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let t;(function(o){let s;o.codec=()=>(s==null&&(s=Ve((i,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),i.key!=null&&i.key!==""&&(a.uint32(10),a.string(i.key)),i.value!=null&&(a.uint32(18),qs.codec().encode(i.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(i,a)=>{let c={key:""},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:c.key=i.string();break;case 2:c.value=qs.codec().decode(i,i.uint32());break;default:i.skipType(f&7);break}}return c})),s),o.encode=i=>Fe(i,o.codec()),o.decode=i=>Me(i,o.codec())})(t=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Ve((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.addresses!=null)for(let a of o.addresses)s.uint32(10),$s.codec().encode(a,s);if(o.protocols!=null)for(let a of o.protocols)s.uint32(18),s.string(a);if(o.publicKey!=null&&(s.uint32(34),s.bytes(o.publicKey)),o.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(o.peerRecordEnvelope)),o.metadata!=null&&o.metadata.size!==0)for(let[a,c]of o.metadata.entries())s.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(o.tags!=null&&o.tags.size!==0)for(let[a,c]of o.tags.entries())s.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},s);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.addresses.push($s.codec().decode(o,o.uint32()));break;case 2:i.protocols.push(o.string());break;case 4:i.publicKey=o.bytes();break;case 5:i.peerRecordEnvelope=o.bytes();break;case 6:{let u=r.Peer$metadataEntry.codec().decode(o,o.uint32());i.metadata.set(u.key,u.value);break}case 7:{let u=r.Peer$tagsEntry.codec().decode(o,o.uint32());i.tags.set(u.key,u.value);break}default:o.skipType(c&7);break}}return i})),n),r.encode=o=>Fe(o,r.codec()),r.decode=o=>Me(o,r.codec())})(xn||(xn={}));var $s;(function(r){let e;r.codec=()=>(e==null&&(e=Ve((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.multiaddr!=null&&t.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(t.multiaddr)),t.isCertified!=null&&(n.uint32(16),n.bool(t.isCertified)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={multiaddr:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.multiaddr=t.bytes();break;case 2:o.isCertified=t.bool();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Fe(t,r.codec()),r.decode=t=>Me(t,r.codec())})($s||($s={}));var qs;(function(r){let e;r.codec=()=>(e==null&&(e=Ve((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.value!=null&&t.value!==0&&(n.uint32(8),n.uint32(t.value)),t.expiry!=null&&(n.uint32(16),n.uint64(t.expiry)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={value:0},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.value=t.uint32();break;case 2:o.expiry=t.uint64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Fe(t,r.codec()),r.decode=t=>Me(t,r.codec())})(qs||(qs={}));function vn(r,e){let t=xn.decode(e);t.publicKey!=null&&r.publicKey==null&&(r=Jf({...r,publicKey:r.publicKey}));let n=new Map,o=BigInt(Date.now());for(let[s,i]of t.tags.entries())i.expiry!=null&&i.expiry<o||n.set(s,i);return{...t,id:r,addresses:t.addresses.map(({multiaddr:s,isCertified:i})=>({multiaddr:re(s),isCertified:i??!1})),metadata:t.metadata,peerRecordEnvelope:t.peerRecordEnvelope??void 0,tags:n}}var Ut="/",Th=new TextEncoder().encode(Ut),Gs=Th[0],Cr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=D(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Gs)throw new Error("Invalid key")}toString(e="utf8"){return K(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Ut))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Th),this._buf[0]!==Gs){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Gs,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Gs;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ut).slice(1)}type(){return W0(this.baseNamespace())}name(){return j0(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ut)||(e+=Ut),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Ut):new r(e.slice(0,-1).join(Ut))}child(e){return this.toString()===Ut?e:e.toString()===Ut?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...X0(e.map(t=>t.namespaces()))])}};function W0(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function j0(r){let e=r.split(":");return e[e.length-1]}function X0(r){return[].concat(...r)}var Kc="/peers/";function An(r){if(!vo(r)||r.type==null)throw new y("Invalid PeerId",Se.ERR_INVALID_PARAMETERS);let e=r.toCID().toString();return new Cr(`${Kc}${e}`)}async function Nh(r,e,t){let n=new Map;for(let o of t){if(o==null)continue;if(o.multiaddr instanceof Uint8Array&&(o.multiaddr=re(o.multiaddr)),!sr(o.multiaddr))throw new y("Multiaddr was invalid",Se.ERR_INVALID_PARAMETERS);if(!await e(r,o.multiaddr))continue;let s=o.isCertified??!1,i=o.multiaddr.toString(),a=n.get(i);a!=null?o.isCertified=a.isCertified||s:n.set(i,{multiaddr:o.multiaddr,isCertified:s})}return[...n.values()].sort((o,s)=>o.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:o,multiaddr:s})=>({isCertified:o,multiaddr:s.bytes}))}async function Ys(r,e,t,n){if(e==null)throw new y("Invalid PeerData",Se.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&r.publicKey!=null&&!ie(e.publicKey,r.publicKey))throw new y("publicKey bytes do not match peer id publicKey bytes",Se.ERR_INVALID_PARAMETERS);let o=n.existingPeer;if(o!=null&&!r.equals(o.id))throw new y("peer id did not match existing peer id",Se.ERR_INVALID_PARAMETERS);let s=o?.addresses??[],i=new Set(o?.protocols??[]),a=o?.metadata??new Map,c=o?.tags??new Map,u=o?.peerRecordEnvelope;if(t==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(l=>({isCertified:!1,multiaddr:l}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(i=new Set(e.protocols)),e.metadata!=null){let l=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=zs(l,{validate:Ch})}if(e.tags!=null){let l=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=zs(l,{validate:Lh,map:kh})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(t==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(l=>({isCertified:!1,multiaddr:l}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(i=new Set([...i,...e.protocols])),e.metadata!=null){let l=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,g]of l)g==null?a.delete(h):a.set(h,g);a=zs([...a.entries()],{validate:Ch})}if(e.tags!=null){let l=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[g,d]of l)d==null?h.delete(g):h.set(g,d);c=zs([...h.entries()],{validate:Lh,map:kh})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let f={addresses:await Nh(r,n.addressFilter??(async()=>!0),s),protocols:[...i.values()].sort((l,h)=>l.localeCompare(h)),metadata:a,tags:c,publicKey:o?.id.publicKey??e.publicKey??r.publicKey,peerRecordEnvelope:u};return r.type!=="RSA"&&delete f.publicKey,f}function zs(r,e){let t=new Map;for(let[n,o]of r)o!=null&&e.validate(n,o);for(let[n,o]of r.sort(([s],[i])=>s.localeCompare(i)))o!=null&&t.set(n,e.map?.(n,o)??o);return t}function Ch(r,e){if(typeof r!="string")throw new y("Metadata key must be a string",Se.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new y("Metadata value must be a Uint8Array",Se.ERR_INVALID_PARAMETERS)}function Lh(r,e){if(typeof r!="string")throw new y("Tag name must be a string",Se.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new y("Tag value must be an integer",Se.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new y("Tag value must be between 0-100",Se.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new y("Tag ttl must be an integer",Se.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new y("Tag ttl must be between greater than 0",Se.ERR_INVALID_PARAMETERS)}}function kh(r,e){let t;return e.expiry!=null&&(t=e.expiry),e.ttl!=null&&(t=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:t}}function Ws(r,e,t){let n=r.toString().split("/")[2],o=Ge.decode(n),s=fn(o),i=t.get(s);if(i!=null)return i;let a=vn(s,e);return t.set(s,a),a}function Z0(r,e){return r==null?{}:{prefix:Kc,filters:(r.filters??[]).map(t=>({key:n,value:o})=>t(Ws(n,o,e))),orders:(r.orders??[]).map(t=>(n,o)=>t(Ws(n.key,n.value,e),Ws(o.key,o.value,e)))}}var js=class{peerId;datastore;lock;addressFilter;constructor(e,t={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.lock=Vc({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(An(e))}async delete(e){if(this.peerId.equals(e))throw new y("Cannot delete self peer",Se.ERR_INVALID_PARAMETERS);await this.datastore.delete(An(e))}async load(e){let t=await this.datastore.get(An(e));return vn(e,t)}async save(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await Ys(e,t,"patch",{addressFilter:this.addressFilter});return this.#t(e,s,n,o)}async patch(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await Ys(e,t,"patch",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,n,o)}async merge(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await Ys(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,n,o)}async*all(e){let t=new Xe;for await(let{key:n,value:o}of this.datastore.query(Z0(e??{},t))){let s=Ws(n,o,t);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let t=await this.datastore.get(An(e)),n=vn(e,t);return{existingBuf:t,existingPeer:n}}catch(t){if(t.code!=="ERR_NOT_FOUND")throw t}return{}}async#t(e,t,n,o){let s=xn.encode(t);return n!=null&&ie(s,n)?{peer:vn(e,s),previous:o,updated:!1}:(await this.datastore.put(An(e),s),{peer:vn(e,s),previous:o,updated:!0})}};var Xs=class{store;events;peerId;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new js(e,t)}async forEach(e,t){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 o of this.store.all(t))e(o)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let t=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await io(this.store.all(e))}finally{this.log.trace("all release read lock"),t()}}async delete(e){this.log.trace("delete await write lock");let t=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(e)}finally{this.log.trace("delete release write lock"),t()}}async has(e){this.log.trace("has await read lock");let t=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(e)}finally{this.log.trace("has release read lock"),t()}}async get(e){this.log.trace("get await read lock");let t=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(e)}finally{this.log.trace("get release read lock"),t()}}async save(e,t){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let o=await this.store.save(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,t){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let o=await this.store.patch(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,t){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let o=await this.store.merge(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,t){let n=await pn.openAndCertify(e,Tr.DOMAIN);if(t?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",t,n.peerId),!1;let o=Tr.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(s?.peerRecordEnvelope!=null){let i=await pn.createFromProtobuf(s.peerRecordEnvelope),a=Tr.createFromProtobuf(i.payload);if(a.seqNumber>=o.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,o.seqNumber),!1}return await this.patch(o.peerId,{peerRecordEnvelope:e,addresses:o.multiaddrs.map(i=>({isCertified:!0,multiaddr:i}))}),!0}#e(e,t){t.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:t}):this.events.safeDispatchEvent("peer:update",{detail:t}))}};function Q0(r){return r[Symbol.asyncIterator]!=null}function J0(r){if(Q0(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Hc=J0;function ey(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Dh=ey;function ty(r){return r[Symbol.asyncIterator]!=null}function ry(r,e){if(ty(r))return async function*(){for await(let a of r)await e(a)&&(yield a)}();let t=Dh(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of t)await e(a)&&(yield a)}();let i=e;return function*(){s===!0&&(yield n);for(let a of t)i(a)&&(yield a)}()}var Lr=ry;function ny(r){return r[Symbol.asyncIterator]!=null}function oy(r,e){return ny(r)?async function*(){yield*(await io(r)).sort(e)}():function*(){yield*io(r).sort(e)}()}var $c=oy;function sy(r){return r[Symbol.asyncIterator]!=null}function iy(r,e){return sy(r)?async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}():function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}}()}var qc=iy;var Zs=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await Hc(this.putMany(e,n)),e=[],await Hc(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=Lr(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Lr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>$c(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=Lr(n,()=>o++>=s)}return e.limit!=null&&(n=qc(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=Lr(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Lr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>$c(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=Lr(n,()=>s++>=o)}return e.limit!=null&&(n=qc(n,e.limit)),n}};var Uh=Ft(Gc(),1);function Mh(r){return r=r??new Error("Not Found"),(0,Uh.default)(r,"ERR_NOT_FOUND")}var Qs=class extends Zs{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(e.toString(),t),e}get(e){let t=this.data.get(e.toString());if(t==null)throw Mh();return t}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,t]of this.data.entries())yield{key:new Cr(e),value:t}}*_allKeys(){for(let e of this.data.keys())yield new Cr(e)}};function Fh(r,e){let t;return function(){let n=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(n,e)}}var ly=r=>r;function zc(r,e){let t=r.getPeerId();return t!=null&&ye(t).equals(e)&&(r=r.decapsulate(re(`/p2p/${e.toString()}`))),r}var Js=class{log;components;listen;announce;observed;announceFilter;constructor(e,t={}){let{listen:n=[],announce:o=[]}=t;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(o.map(s=>s.toString())),this.observed=new Map,this.announceFilter=t.announceFilter??ly,this._updatePeerStoreAddresses=Fh(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([t,n])=>n.confident).map(([t])=>re(t))).map(t=>t.getPeerId()===this.components.peerId.toString()?t.decapsulate(`/p2p/${this.components.peerId.toString()}`):t);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(t=>{this.log.error("error updating addresses",t)})}getListenAddrs(){return Array.from(this.listen).map(e=>re(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>re(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>re(e))}addObservedAddr(e){e=zc(e,this.components.peerId);let t=e.toString();this.observed.has(t)||this.observed.set(t,{confident:!1})}confirmObservedAddr(e){e=zc(e,this.components.peerId);let t=e.toString(),o=(this.observed.get(t)??{confident:!1}).confident;this.observed.set(t,{confident:!0}),o||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=zc(e,this.components.peerId);let t=e.toString();this.observed.delete(t)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,o])=>o.confident).map(([n])=>n));let t=new Set(e);return this.announceFilter(Array.from(t).map(n=>re(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Yc=class{components={};_started=!1;constructor(e={}){this.components={};for(let[t,n]of Object.entries(e))this.components[t]=n;this.components.logger==null&&(this.components.logger=Os())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(t=>Pl(t)).map(async t=>{await t[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},uy=["metrics","connectionProtector","dns"],fy=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Vh(r={}){let e=new Yc(r);return new Proxy(e,{get(n,o,s){if(typeof o=="string"&&!fy.includes(o)){let i=e.components[o];if(i==null&&!uy.includes(o))throw new y(`${o} not set`,"ERR_SERVICE_MISSING");return i}return Reflect.get(n,o,s)},set(n,o,s){return typeof o=="string"?e.components[o]=s:Reflect.set(n,o,s),!0}})}var Hh=Ft(Kh(),1),hy=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],dy=hy.map(r=>new Hh.Netmask(r));function py(r){for(let e of dy)if(e.contains(r))return!0;return!1}function my(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}function ei(r){return gn(r)?py(r):yn(r)?my(r):void 0}function $h(r={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let t=e.stringTuples();return t[0][0]===4||t[0][0]===41?!!ei(`${t[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...r}}var gy=r=>r.toString().split("/").slice(1),ho=r=>({match:e=>e.length<1?!1:r(e[0])?e.slice(1):!1,pattern:"fn"}),W=r=>({match:e=>ho(t=>t===r).match(e),pattern:r}),ni=()=>({match:r=>ho(e=>typeof e=="string").match(r),pattern:"{string}"}),oi=()=>({match:r=>ho(e=>!isNaN(parseInt(e))).match(r),pattern:"{number}"}),Ie=()=>({match:r=>{if(r.length<2||r[0]!=="p2p"&&r[0]!=="ipfs")return!1;if(r[1].startsWith("Q")||r[1].startsWith("1"))try{ne.decode(`z${r[1]}`)}catch{return!1}else return!1;return r.slice(2)},pattern:"/p2p/{peerid}"}),ti=()=>({match:r=>{if(r.length<2||r[0]!=="certhash")return!1;try{ua.decode(r[1])}catch{return!1}return r.slice(2)},pattern:"/certhash/{certhash}"}),$e=r=>({match:e=>{let t=r.match(e);return t===!1?e:t},pattern:`optional(${r.pattern})`}),Ze=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1},pattern:`or(${r.map(e=>e.pattern).join(", ")})`}),Q=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${r.map(e=>e.pattern).join(", ")})`});function le(...r){function e(o){let s=gy(o);for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matches:t,exactMatch:n}}var jc=Q(W("dns4"),ni()),Xc=Q(W("dns6"),ni()),Zc=Q(W("dnsaddr"),ni()),qh=Q(W("dns"),ni()),SR=le(jc),IR=le(Xc),BR=le(Zc),TR=le(Ze(qh,Zc,jc,Xc)),Gh=Q(W("ip4"),ho(gn)),zh=Q(W("ip6"),ho(yn)),Yh=Ze(Gh,zh),Et=Ze(Yh,qh,jc,Xc,Zc),NR=le(Et),CR=le(Gh),LR=le(zh),kR=le(Yh),si=Q(Et,W("tcp"),oi()),po=Q(Et,W("udp"),oi()),yy=Ze(si,po),DR=le(si),PR=le(po),Qc=Q(po,W("quic")),ii=Q(po,W("quic-v1")),wy=Ze(Qc,ii),OR=le(Qc),UR=le(ii),Wc=Ze(Et,si,po,Qc,ii),Wh=Ze(Q(Wc,W("ws"),$e(Ie()))),MR=le(Wh),jh=Ze(Q(Wc,W("wss"),$e(Ie())),Q(Wc,W("tls"),W("ws"),$e(Ie()))),FR=le(jh),Xh=Q(yy,W("webrtc-direct"),ti(),$e(ti()),$e(Ie())),VR=le(Xh),Zh=Q(ii,W("webtransport"),ti(),ti(),$e(Ie())),KR=le(Zh),ri=Ze(Wh,jh,Q(si,$e(Ie())),Q(wy,$e(Ie())),Q(Et,$e(Ie())),Xh,Zh,Ie()),HR=le(ri),by=Q(ri,W("p2p-circuit"),Ie()),mo=le(by),Ey=Ze(Q(ri,W("p2p-circuit"),W("webrtc"),Ie()),Q(ri,W("webrtc"),$e(Ie())),W("webrtc")),$R=le(Ey),xy=Ze(Q(Et,W("tcp"),oi(),W("http"),$e(Ie())),Q(Et,W("http"),$e(Ie()))),qR=le(xy),vy=Ze(Q(Et,W("tcp"),Ze(Q(W("443"),W("http")),Q(oi(),W("https"))),$e(Ie())),Q(Et,W("tls"),W("http"),$e(Ie())),Q(Et,W("https"),$e(Ie()))),GR=le(vy);function Jc(r){try{let{address:e}=r.nodeAddress();return!!ei(e)}catch{return!0}}function Ay(r,e){let t=Jc(r.multiaddr),n=Jc(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function Ry(r,e){return r.isCertified&&!e.isCertified?-1:!r.isCertified&&e.isCertified?1:0}function _y(r,e){let t=mo.exactMatch(r.multiaddr),n=mo.exactMatch(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function Rn(r,e){let t=Ay(r,e);if(t!==0)return t;let n=_y(r,e);return n!==0?n:Ry(r,e)}var lr=class extends Event{constructor(e,t){super(e),this.detail=t}};function ai(r){let e=[Qe.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var el=60;function ci(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:Qe[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Qe[e.type],TTL:e.TTL??e.ttl??el,data:e.data instanceof Uint8Array?K(e.data):e.data}))}}var Sy=4;function tl(r,e={}){let t=new ir({concurrency:e.queryConcurrency??Sy});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),ai(o.types).forEach(a=>{s.append("type",Qe[a])}),o.onProgress?.(new lr("dns:query",{detail:n}));let i=await t.add(async()=>{let a=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=ci(await a.json());return o.onProgress?.(new lr("dns:response",{detail:c})),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Qh(){return[tl("https://cloudflare-dns.com/dns-query"),tl("https://dns.google/resolve")]}var td=Ft(ed(),1);var rl=class{lru;constructor(e){this.lru=(0,td.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return ci({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:Qe[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??el)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function rd(r){return new rl(r)}var Iy=1e3,li=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=rd(e.cacheSize??Iy),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Qh())}async query(e,t={}){let n=ai(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new lr("dns:cache",{detail:o})),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let u=await c(e,{...t,types:n});for(let f of u.Answer)this.cache.add(e,f);return u}catch(u){a.push(u),t.onProgress?.(new lr("dns:error",{detail:u}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Qe;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Qe||(Qe={}));function nd(r={}){return new li(r)}var By=32,{code:Ty}=X("dnsaddr"),kr=async function(e,t={}){let n=t.maxRecursiveDepth??By;if(n===0)throw new y("Max recursive depth reached","ERR_MAX_RECURSIVE_DEPTH_REACHED");let[,o]=e.stringTuples().find(([u])=>u===Ty)??[],i=await(t?.dns??nd()).query(`_dnsaddr.${o}`,{signal:t?.signal,types:[Qe.TXT]}),a=e.getPeerId(),c=[];for(let u of i.Answer){let f=u.data.split("=")[1];if(f==null||a!=null&&!f.includes(a))continue;let l=re(f);if(f.startsWith("/dnsaddr")){let h=await l.resolve({...t,maxRecursiveDepth:n-1});c.push(...h.map(g=>g.toString()))}else c.push(l.toString())}return c};var hd=Ft(fd(),1),hi=hd.default;var Mt;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(Mt||(Mt={}));var B;(function(r){r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",r.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(B||(B={}));var Py={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{resolvers:{dnsaddr:kr},addressSorter:Rn},transportManager:{faultTolerance:Vt.FATAL_ALL}};async function dd(r){let e=hi(Py,r);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new y(Mt.ERR_PROTECTOR_REQUIRED,B.ERR_PROTECTOR_REQUIRED);if(!(await hn(e.privateKey.public.bytes,e.privateKey.bytes)).equals(e.peerId))throw new y("Private key doesn't match peer id",B.ERR_INVALID_KEY);return e}var pd=()=>{let r=new Error("Delay aborted");return r.name="AbortError",r},Oy=new WeakMap;function Uy({clearTimeout:r,setTimeout:e}={}){return(t,{value:n,signal:o}={})=>{if(o?.aborted)return Promise.reject(pd());let s,i,a,c=r??clearTimeout,u=()=>{c(s),a(pd())},f=()=>{o&&o.removeEventListener("abort",u)},l=new Promise((h,g)=>{i=()=>{f(),h(n)},a=g,s=(e??setTimeout)(i,t)});return o&&o.addEventListener("abort",u,{once:!0}),Oy.set(l,()=>{c(s),s=null,i()}),l}}var My=Uy(),md=My;var di=class{memoryStorage;points;duration;blockDuration;execEvenly;execEvenlyMinDelayMs;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.execEvenly=e.execEvenly??!1,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs??this.duration*1e3/this.points,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new ol}async consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new y("Rate limit exceeded","ERR_RATE_LIMIT_EXCEEDED",i);if(this.execEvenly&&i.msBeforeNext>0&&!i.isFirstInDuration){let a=Math.ceil(i.msBeforeNext/(i.remainingPoints+2));a<this.execEvenlyMinDelayMs&&(a=i.consumedPoints*this.execEvenlyMinDelayMs),await md(a)}return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},ol=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};function pi(r){if(vo(r))return{peerId:r,multiaddrs:[]};Array.isArray(r)||(r=[r]);let e;if(r.length>0){let t=r[0].getPeerId();e=t==null?void 0:ye(t),r.forEach(n=>{if(!sr(n))throw new y("Invalid Multiaddr",B.ERR_INVALID_MULTIADDR);let o=n.getPeerId();if(o==null){if(e!=null)throw new y("Multiaddrs must all have the same peer id or have no peer id",B.ERR_INVALID_PARAMETERS)}else{let s=ye(o);if(e==null||!e.equals(s))throw new y("Multiaddrs must all have the same peer id or have no peer id",B.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:r}}function pe(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var mi=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},In=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new mi(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new mi(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var sl=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function gi(r={}){return Fy(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Fy(r,e){e=e??{};let t=e.onEnd,n=new In,o,s,i,a=pe(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((m,w)=>{s=x=>{s=null,n.push(x);try{m(r(n))}catch(b){w(b)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=pe()})}},u=m=>s!=null?s(m):(n.push(m),o),f=m=>(n=new In,s!=null?s({error:m}):(n.push({error:m}),o)),l=m=>{if(i)return o;if(e?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:m})},h=m=>i?o:(i=!0,m!=null?f(m):u({done:!0})),g=()=>(n=new In,h(),{done:!0}),d=m=>(h(m),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:g,throw:d,push:l,end:h,get readableLength(){return n.size},onEmpty:async m=>{let w=m?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let x,b;w!=null&&(x=new Promise((A,v)=>{b=()=>{v(new sl)},w.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&w!=null&&w?.removeEventListener("abort",b)}}},t==null)return o;let p=o;return o={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),t!=null&&(t(m),t=void 0),{done:!0}},return(){return p.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(m){return p.end(m),t!=null&&(t(m),t=void 0),o},get readableLength(){return p.readableLength},onEmpty:m=>p.onEmpty(m)},o}var il=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function yi(r,e,t,n){let o=new il(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((s,i)=>{let a=u=>{try{if(n?.filter?.(u)===!1)return}catch(f){r.removeEventListener(e,a),t?.removeEventListener("abort",c),i(f);return}r.removeEventListener(e,a),t?.removeEventListener("abort",c),s(u)},c=()=>{r.removeEventListener(e,a),t?.removeEventListener("abort",c),i(o)};r.addEventListener(e,a),t?.addEventListener("abort",c)})}var wi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function Bn(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new wi(t?.errorMessage,t?.errorCode));let n,o=new wi(t?.errorMessage,t?.errorCode);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var bi=class{deferred;signal;where;constructor(e,t){this.signal=t,this.deferred=pe(),this.where=e,this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Kt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Vy(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ei=class{id;fn;options;priority;recipients;status;timeline;controller;constructor(e,t,n=0){this.id=Vy(),this.status="queued",this.fn=e,this.priority=n,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,Oe(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Kt),this.cleanup())}async join(e={}){let t=new bi(new Error("where").stack,e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Bn(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Ky(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Tn=class extends hr{concurrency;queue;pending;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){if(this.queue[this.size-1]?.priority>=e.priority){this.queue.push(e);return}let t=Ky(this.queue,e,(n,o)=>o.priority-n.priority);this.queue.splice(t,0,e)}async add(e,t){t?.signal?.throwIfAborted();let n=new Ei(e,t,t?.priority),o=n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s});return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Kt)}),this.clear()}async onEmpty(e){this.size!==0&&await yi(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await yi(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await yi(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=gi({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail)},s=c=>{n(c.detail)},i=()=>{n()},a=()=>{n(new y("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",o),this.addEventListener("error",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var xi=class extends Tn{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var vi="last-dial-failure";var Ai=5,Ri=100,_i=50,gd=1e3*60*7;var Dr={minConnections:Ai,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:gd,autoDialDiscoveredPeersDebounce:10},Si=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,t){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=t.minConnections??Dr.minConnections,this.autoDialPriority=t.autoDialPriority??Dr.autoDialPriority,this.autoDialIntervalMs=t.autoDialInterval??Dr.autoDialInterval,this.autoDialMaxQueueLength=t.maxQueueLength??Dr.maxQueueLength,this.autoDialPeerRetryThresholdMs=t.autoDialPeerRetryThreshold??Dr.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=t.autoDialDiscoveredPeersDebounce??Dr.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new xi({concurrency:t.autoDialConcurrency??Dr.autoDialConcurrency,metricName:"libp2p_autodial_queue",metrics:e.metrics}),this.queue.addEventListener("error",o=>{this.log.error("error during auto-dial",o.detail)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(o=>{this.log.error(o)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(o=>{this.log.error(o)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),t=e.size;if(t>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",t,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",t,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",t,this.minConnections);let n=new ft(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),o=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.has(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=o.sort(()=>Math.random()>.5?1:-1),i=new Xe;for(let u of s)i.has(u.id)||i.set(u.id,[...u.tags.values()].reduce((f,l)=>f+l.value,0));let c=s.sort((u,f)=>{let l=i.get(u.id)??0,h=i.get(f.id)??0;return l>h?-1:l<h?1:0}).filter(u=>{let f=u.metadata.get(vi);if(f==null)return!0;let l=parseInt(K(f));return isNaN(l)?!0:Date.now()-l>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,o.length);for(let u of c)this.queue.add(async()=>{let f=this.connectionManager.getConnectionsMap().size;if(f>=this.minConnections){this.log("got enough connections now %d/%d",f,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(f=>{this.log.error("could not connect to peerStore stored peer",f)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var yd={maxConnections:Ri,allow:[]},Ii=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,t={}){this.maxConnections=t.maxConnections??yd.maxConnections,this.allow=t.allow??yd.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),t=e.length,n=Math.max(t-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",t,this.maxConnections),t<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",t,this.maxConnections,n);let o=new Xe;for(let a of e){let c=a.remotePeer;if(!o.has(c)){o.set(c,0);try{let u=await this.peerStore.get(c);o.set(c,[...u.tags.values()].reduce((f,l)=>f+l.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=o.get(a.remotePeer)??0,f=o.get(c.remotePeer)??0;if(u>f)return 1;if(u<f)return-1;let l=a.timeline.open,h=c.timeline.open;return l<h?1:l>h?-1:0}),i=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||i.push(a),i.length===n)break;await Promise.all(i.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:i})}};function wd(r){let e=new globalThis.AbortController;function t(){e.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}async function bd(r,e){let t=!1;for(let o of bn.keys())if(t=r.protoNames().includes(o),t)break;if(!t)return[r];let n=await r.resolve(e);return e.log("resolved %s to",r,n.map(o=>o.toString())),n}var go={addressSorter:Rn,maxParallelDials:_i,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:5e3,resolvers:{dnsaddr:kr}},Bi=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;shutDownController;connections;log;constructor(e,t={}){this.addressSorter=t.addressSorter??go.addressSorter,this.maxPeerAddrsToDial=t.maxPeerAddrsToDial??go.maxPeerAddrsToDial,this.maxDialQueueLength=t.maxDialQueueLength??go.maxDialQueueLength,this.dialTimeout=t.dialTimeout??go.dialTimeout,this.connections=t.connections??new Xe,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.shutDownController=new AbortController,Oe(1/0,this.shutDownController.signal);for(let[n,o]of Object.entries(t.resolvers??{}))bn.set(n,o);this.queue=new Tn({concurrency:t.maxParallelDials??go.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("error",n=>{this.log.error("error in dial queue",n.detail)})}start(){this.shutDownController=new AbortController,Oe(1/0,this.shutDownController.signal)}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,t={}){let{peerId:n,multiaddrs:o}=pi(e),s=Array.from(this.connections.values()).flat().find(a=>t.force===!0?!1:a.remotePeer.equals(n)?!0:o.find(c=>c.equals(a.remoteAddr)));if(s!=null)return this.log("already connected to %a",s.remoteAddr),s;let i=this.queue.queue.find(a=>{if(n?.equals(a.options.peerId)===!0)return!0;let c=a.options.multiaddrs;if(c==null)return!1;for(let u of o)if(c.has(u.toString()))return!0;return!1});if(i!=null){this.log("joining existing dial target for %p",n);for(let a of o)i.options.multiaddrs.add(a.toString());return i.join(t)}if(this.queue.size>=this.maxDialQueueLength)throw new y("Dial queue is full","ERR_DIAL_QUEUE_FULL");return this.log("creating dial target for %p",n,o.map(a=>a.toString())),this.queue.add(async a=>{let c=this.createDialAbortController(a?.signal),u;try{u=await this.calculateMultiaddrs(n,a?.multiaddrs,{...a,signal:c}),u.map(({multiaddr:f})=>f.toString()).forEach(f=>{a?.multiaddrs.add(f)})}catch(f){throw c.clear(),f}try{let f=0,l=[];for(let h of u){if(f===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",f,n),new y("Peer had more than maxPeerAddrsToDial",B.ERR_TOO_MANY_ADDRESSES);f++;try{let g=await this.components.transportManager.dial(h.multiaddr,{...a,signal:c});return this.log("dial to %a succeeded",h.multiaddr),g}catch(g){if(this.log.error("dial failed to %a",h.multiaddr,g),n!=null)try{await this.components.peerStore.patch(n,{metadata:{[vi]:D(Date.now().toString())}})}catch(d){this.log.error("could not update last dial failure key for %p",n,d)}if(c.aborted)throw new y(g.message,Ro);l.push(g)}}throw l.length===1?l[0]:new Ao(l,"All multiaddr dials failed",B.ERR_TRANSPORT_DIAL_FAILED)}finally{c.clear()}},{peerId:n,priority:t.priority,multiaddrs:new Set(o.map(a=>a.toString())),signal:t.signal})}createDialAbortController(e){let t=wd([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);return Oe(1/0,t),t}async calculateMultiaddrs(e,t=new Set,n={}){let o=[...t].map(l=>({multiaddr:re(l),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new y("Tried to dial self",B.ERR_DIALED_SELF);if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new y("The dial request is blocked by gater.allowDialPeer",B.ERR_PEER_DIAL_INTERCEPTED);if(o.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.components.peerStore.get(e);o.push(...l.addresses),this.log("loaded multiaddrs for %p",e,o.map(({multiaddr:h})=>h.toString()))}catch(l){if(l.code!==B.ERR_NOT_FOUND)throw l}}if(o.length===0){this.log("looking up multiaddrs for %p in the peer routing",e);try{let l=await this.components.peerRouting.findPeer(e);this.log("found multiaddrs for %p in the peer routing",e,o.map(({multiaddr:h})=>h.toString())),o.push(...l.multiaddrs.map(h=>({multiaddr:h,isCertified:!1})))}catch(l){l.code!==B.ERR_NO_ROUTERS_AVAILABLE&&this.log.error("looking up multiaddrs for %p in the peer routing failed",e,l)}}}let s=(await Promise.all(o.map(async l=>{let h=await bd(l.multiaddr,{dns:this.components.dns,...n,log:this.log});return h.length===1&&h[0].equals(l.multiaddr)?l:h.map(g=>({multiaddr:g,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;s=s.map(h=>h.multiaddr.protos().pop()?.path===!0?h:h.multiaddr.getPeerId()==null?{multiaddr:h.multiaddr.encapsulate(l),isCertified:h.isCertified}:h)}let i=s.filter(l=>{if(this.components.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let h=l.multiaddr.getPeerId();return e!=null&&h!=null?e.equals(h):!0}),a=new Map;for(let l of i){let h=l.multiaddr.toString(),g=a.get(h);if(g!=null){g.isCertified=g.isCertified||l.isCertified||!1;continue}a.set(h,l)}let c=[...a.values()];if(c.length===0)throw new y("The dial request has no valid addresses",B.ERR_NO_VALID_ADDRESSES);let u=[];for(let l of c)this.components.connectionGater.denyDialMultiaddr!=null&&await this.components.connectionGater.denyDialMultiaddr(l.multiaddr)||u.push(l);let f=u.sort(this.addressSorter);if(f.length===0)throw new y("The connection gater denied all addresses in the dial request",B.ERR_NO_VALID_ADDRESSES);return this.log.trace("addresses for %p before filtering",e??"unknown peer",s.map(({multiaddr:l})=>l.toString())),this.log.trace("addresses for %p after filtering",e??"unknown peer",f.map(({multiaddr:l})=>l.toString())),f}async isDialable(e,t={}){Array.isArray(e)||(e=[e]);try{let n=await this.calculateMultiaddrs(void 0,new Set(e.map(o=>o.toString())),t);return t.runOnTransientConnection===!1?n.find(o=>!mo.matches(o.multiaddr))!=null:!0}catch(n){this.log.trace("error calculating if multiaddr(s) were dialable",n)}return!1}};var zy=50,Pr={minConnections:Ai,maxConnections:Ri,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Ti=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,t={}){this.maxConnections=t.maxConnections??Pr.maxConnections;let n=t.minConnections??Pr.minConnections;if(this.maxConnections<n)throw new y("Connection Manager maxConnections must be greater than minConnections",B.ERR_INVALID_PARAMETERS);this.connections=new Xe,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(t.allow??[]).map(o=>re(o)),this.deny=(t.deny??[]).map(o=>re(o)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=t.maxIncomingPendingConnections??Pr.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new di({points:t.inboundConnectionThreshold??Pr.inboundConnectionThreshold,duration:1}),this.autoDial=new Si({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:t.autoDialConcurrency??Pr.autoDialConcurrency,autoDialPriority:t.autoDialPriority??Pr.autoDialPriority,maxQueueLength:t.autoDialMaxQueueLength??Pr.autoDialMaxQueueLength}),this.connectionPruner=new Ii({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Bi(e,{addressSorter:t.addressSorter??Rn,maxParallelDials:t.maxParallelDials??_i,maxDialQueueLength:t.maxDialQueueLength??500,maxPeerAddrsToDial:t.maxPeerAddrsToDial??25,dialTimeout:t.dialTimeout??5e3,resolvers:t.resolvers??{dnsaddr:kr},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let t of this.connections.values())for(let n of t)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let t of this.connections.values())for(let n of t)for(let o of n.streams){let s=`${o.direction} ${o.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let o of n){let s={};for(let i of o.streams){let a=`${i.direction} ${i.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[i,a]of Object.entries(s))e[i]=e[i]??[],e[i].push(a)}let t={};for(let[n,o]of Object.entries(e)){o=o.sort((i,a)=>i-a);let s=Math.floor(o.length*.9);t[n]=o[s]}return t}}),this.dialQueue.start(),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[t=>t.tags.has(Dl)]});await Promise.all(e.map(async t=>{await this.openConnection(t.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let t of this.connections.values())for(let n of t)e.push((async()=>{try{await n.close()}catch(o){this.log.error(o)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(t=>{this.log.error(t)})}async _onConnect(e){let{detail:t}=e;if(!this.started){await t.close();return}let n=t.remotePeer,o=this.connections.get(n),s=!1;o!=null?o.push(t):(s=!0,this.connections.set(n,[t])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:t.remotePeer})}onDisconnect(e){let{detail:t}=e;if(!this.started)return;let n=t.remotePeer,o=this.connections.get(n);o!=null&&o.length>1?(o=o.filter(s=>s.id!==t.id),this.connections.set(n,o)):o!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:t.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let t=[];for(let n of this.connections.values())t=t.concat(n);return t}getConnectionsMap(){return this.connections}async openConnection(e,t={}){if(!this.isStarted())throw new y("Not started",B.ERR_NODE_NOT_STARTED);t.signal?.throwIfAborted();let{peerId:n}=pi(e);if(n!=null&&t.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let o=await this.dialQueue.dial(e,{...t,priority:t.priority??zy}),s=this.connections.get(o.remotePeer);s==null&&(s=[],this.connections.set(o.remotePeer,s));let i=!1;for(let a of s)a.id===o.id&&(i=!0);return i||s.push(o),o}async closeConnections(e,t={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async o=>{try{await o.close(t)}catch(s){o.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(o=>e.remoteAddr.toString().startsWith(o.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(o=>e.remoteAddr.toString().startsWith(o.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let o=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(o,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,o),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){let e={queued:"queued",running:"active",errored:"error",complete:"success"};return this.dialQueue.queue.queue.map(t=>({id:t.id,status:e[t.status],peerId:t.options.peerId,multiaddrs:[...t.options.multiaddrs].map(n=>re(n))}))}async isDialable(e,t={}){return this.dialQueue.isDialable(e,t)}};function Yy(r){return r[Symbol.asyncIterator]!=null}function Wy(...r){let e=[];for(let t of r)Yy(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=gi({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var yo=Wy;var Ni=class{routers;started;components;constructor(e,t){this.routers=t.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,t={}){if(this.routers.length===0)throw new y("No content routers available",B.ERR_NO_ROUTERS_AVAILABLE);let n=this,o=new ft;for await(let s of yo(...n.routers.map(i=>i.findProviders(e,t))))s!=null&&(s.multiaddrs.length>0&&await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!o.has(s.id)&&(o.add(s.id),yield s))}async provide(e,t={}){if(this.routers.length===0)throw new y("No content routers available",B.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,t)}))}async put(e,t,n){if(!this.isStarted())throw new y(Mt.NOT_STARTED_YET,B.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async o=>{await o.put(e,t,n)}))}async get(e,t){if(!this.isStarted())throw new y(Mt.NOT_STARTED_YET,B.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,t)))}};var Ci=globalThis.CustomEvent??Event;async function*dl(r,e={}){let t=e.concurrency??1/0;t<1&&(t=1/0);let n=e.ordered==null?!1:e.ordered,o=new EventTarget,s=[],i=pe(),a=pe(),c=!1,u,f=!1;o.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let d of r){if(s.length===t&&(i=pe(),await i.promise),f)break;let p={done:!1};s.push(p),d().then(m=>{p.done=!0,p.ok=!0,p.value=m,o.dispatchEvent(new Ci("task-complete"))},m=>{p.done=!0,p.err=m,o.dispatchEvent(new Ci("task-complete"))})}c=!0,o.dispatchEvent(new Ci("task-complete"))}catch(d){u=d,o.dispatchEvent(new Ci("task-complete"))}});function l(){return n?s[0]?.done:!!s.find(d=>d.done)}function*h(){for(;s.length>0&&s[0].done;){let d=s[0];if(s.shift(),d.ok)yield d.value;else throw f=!0,i.resolve(),d.err;i.resolve()}}function*g(){for(;l();)for(let d=0;d<s.length;d++)if(s[d].done){let p=s[d];if(s.splice(d,1),d--,p.ok)yield p.value;else throw f=!0,i.resolve(),p.err;i.resolve()}}for(;;){if(l()||(a=pe(),await a.promise),u!=null)throw u;if(n?yield*h():yield*g(),c&&s.length===0)break}}var Li=class{log;peerId;peerStore;routers;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=t.routers??[]}async findPeer(e,t){if(this.routers.length===0)throw new y("No peer routers available",B.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new y("Should not try to find self",B.ERR_FIND_SELF);let n=this,o=yo(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error(i)}}()));for await(let s of o)if(s!=null)return s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),s;throw new y(Mt.NOT_FOUND,B.ERR_NOT_FOUND)}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new y("No peer routers available",B.ERR_NO_ROUTERS_AVAILABLE);let n=this,o=new ft;for await(let s of dl(async function*(){let i=yo(...n.routers.map(a=>a.getClosestPeers(e,t)));for await(let a of i)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...t,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs",c);return}return a}}()))s!=null&&(s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!o.has(s.id)&&(o.add(s.id),yield s))}};var pl=32,ml=64,ki=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let t=this.handlers.get(e);if(t==null)throw new y(`No handler registered for protocol ${e}`,B.ERR_NO_HANDLER_FOR_PROTOCOL);return t}getTopologies(e){let t=this.topologies.get(e);return t==null?[]:[...t.values()]}async handle(e,t,n){if(this.handlers.has(e))throw new y(`Handler already registered for protocol ${e}`,B.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let o=hi.bind({ignoreUndefined:!0})({maxInboundStreams:pl,maxOutboundStreams:ml},n);this.handlers.set(e,{handler:t,options:o}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,t){if(t==null)throw new y("invalid topology",B.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,o=this.topologies.get(e);return o==null&&(o=new Map,this.topologies.set(e,o)),o.set(n,t),n}unregister(e){for(let[t,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(t))}_onDisconnect(e){let t=e.detail;this.components.peerStore.get(t).then(n=>{for(let o of n.protocols){let s=this.topologies.get(o);if(s!=null)for(let i of s.values())i.onDisconnect?.(t)}}).catch(n=>{n.code!==B.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",t,n)})}_onPeerUpdate(e){let{peer:t,previous:n}=e.detail,o=(n?.protocols??[]).filter(s=>!t.protocols.includes(s));for(let s of o){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())a.onDisconnect?.(t.id)}}_onPeerIdentify(e){let t=e.detail.protocols,n=e.detail.connection,o=e.detail.peerId;for(let s of t){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(o,n)}}};var gl=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Ed(r){let{name:e,metrics:t}=r,n;return t!=null?n=new gl({name:e,metrics:t}):n=new Map,n}var Di=class{log;components;transports;listeners;faultTolerance;started;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Ed({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=t.faultTolerance??Vt.FATAL_ALL}add(e){let t=e[Symbol.toStringTag];if(t==null)throw new y("Transport must have a valid tag",B.ERR_INVALID_KEY);if(this.transports.has(t))throw new y(`There is already a transport with the tag ${t}`,B.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",t),this.transports.set(t,e),this.listeners.has(t)||this.listeners.set(t,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[t,n]of this.listeners)for(this.log("closing listeners for %s",t);n.length>0;){let o=n.pop();o!=null&&e.push(o.close())}await Promise.all(e),this.log("all listeners closed");for(let t of this.listeners.keys())this.listeners.set(t,[]);this.started=!1}async dial(e,t){let n=this.transportForMultiaddr(e);if(n==null)throw new y(`No transport available for address ${String(e)}`,B.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...t,upgrader:this.components.upgrader})}catch(o){throw o.code==null&&(o.code=B.ERR_TRANSPORT_DIAL_FAILED),o}}getAddrs(){let e=[];for(let t of this.listeners.values())for(let n of t)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let t of this.transports.values())if(t.filter([e]).length>0)return t}async listen(e){if(!this.isStarted())throw new y("Not started",B.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let t=[];for(let[n,o]of this.transports.entries()){let s=o.filter(e),i=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let f=o.createListener({upgrader:this.components.upgrader}),l=this.listeners.get(n)??[];l==null&&(l=[],this.listeners.set(n,l)),l.push(f),f.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:f})}),f.addEventListener("close",()=>{let h=l.findIndex(g=>g===f);l.splice(h,1),this.components.events.safeDispatchEvent("transport:close",{detail:f})}),i.push(f.listen(u))}if(i.length===0){t.push(n);continue}if((await Promise.allSettled(i)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==Vt.NO_FATAL)throw new y(`Transport (${n}) could not listen on any available address`,B.ERR_NO_VALID_ADDRESSES)}if(t.length===this.transports.size){let n=`no valid addresses were provided for transports [${t.join(", ")}]`;if(this.faultTolerance===Vt.FATAL_ALL)throw new y(n,B.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let t=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);t.length>0;){let o=t.pop();o!=null&&n.push(o.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let t of this.transports.keys())e.push(this.remove(t));await Promise.all(e)}};var Be="/multistream/1.0.0";var yl=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=pe(),this.haveNext=pe()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=pe(),e}async throw(e){return this.ended=!0,e!=null&&this.haveNext.reject(e),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return await this._push(void 0),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");if(this.nextResult!=null&&(await this.readNext.promise,this.nextResult!=null))throw new Error("NeedNext promise resolved but nextResult was not consumed");e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=pe(),await Bn(this.readNext.promise,t?.signal,t)}};function xd(){return new yl}var Pi=class extends Error{code;constructor(e,t){super(e),this.code=t}},wl=class extends Pi{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function vd(r,e){let t=xd();r.sink(t).catch(async i=>{await t.end(i)}),r.sink=async i=>{for await(let a of i)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let o=new we;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new wl("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:h}=await Promise.race([n.next(),u]);return l===!0?new we:h}for(;o.byteLength<i;){let{value:l,done:h}=await Promise.race([n.next(),u]);if(h===!0)throw new Pi("unexpected end of input","ERR_UNEXPECTED_EOF");o.append(l)}let f=o.sublist(0,i);return o.consume(i),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(i,a)=>{a?.signal?.throwIfAborted(),i instanceof Uint8Array?await t.push(i,a):await t.push(i.subarray(),a)},unwrap:()=>{if(o.byteLength>0){let i=r.source;r.source=async function*(){e?.yieldBytes===!1?yield o:yield*o,yield*i}()}return r}}}var Oi=class extends Error{code;constructor(e,t){super(e),this.code=t}};function wo(r,e={}){let t=vd(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=he(e.maxDataLength));let n=e?.lengthDecoder??it,o=e?.lengthEncoder??Le;return{read:async i=>{let a=-1,c=new we;for(;;){c.append(await t.read(1,i));try{a=n(c)}catch(u){if(u instanceof RangeError)continue;throw u}if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Oi("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Oi("message length too long","ERR_MSG_DATA_TOO_LONG");return t.read(a,i)},write:async(i,a)=>{await t.write(new we(o(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new we(...i.flatMap(u=>[o(u.byteLength),u]));await t.write(c,a)},unwrap:()=>t.unwrap()}}var jy=D(`
8
- `);async function Or(r,e,t){await r.write(e,t)}async function Ad(r,e,t){await r.writeV(e,t)}async function Xy(r,e){let t=await r.read(e);if(t.byteLength===0||t.get(t.byteLength-1)!==jy[0])throw e.log.error("Invalid mss message - missing newline",t),new y("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return t.sublist(0,-1)}async function ur(r,e){let t=await Xy(r,e);return K(t.subarray())}async function bo(r,e,t){if(e=Array.isArray(e)?[...e]:[e],e.length===1&&t.negotiateFully===!1)return Zy(r,e[0],t);let n=wo(r,{...t,maxDataLength:1024}),o=e.shift();if(o==null)throw new Error("At least one protocol must be specified");t.log.trace('select: write ["%s", "%s"]',Be,o);let s=D(`${Be}
6
+ `)}`:`${t} :`}};Wu=tr;I.Constructed=Wu;tr.NAME="CONSTRUCTED";var rs=class extends Oe{fromBER(e,t,n){return t}toBER(e){return lt}};rs.override="EndOfContentValueBlock";var ju,ns=class extends Se{constructor(e={}){super(e,rs),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};ju=ns;I.EndOfContent=ju;ns.NAME=Gn;var Xu,rr=class extends Se{constructor(e={}){super(e,Oe),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,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,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let o=new Uint8Array(n);o[0]=5,o[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Xu=rr;I.Null=Xu;rr.NAME="NULL";var os=class extends Ut(Oe){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=H.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let o=H.BufferSourceConverter.toUint8Array(e);return Ot(this,o,t,n)?(this.valueHexView=o.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,tc.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};os.NAME="BooleanValueBlock";var Zu,ss=class extends Se{constructor(e={}){super(e,os),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Zu=ss;I.Boolean=Zu;ss.NAME="BOOLEAN";var is=class extends Ut(wt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let o=0;if(this.isConstructed){if(this.isHexOnly=!1,o=wt.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let s=0;s<this.value.length;s++){let i=this.value[s].constructor.NAME;if(i===Gn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==qu)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,o=super.fromBER(e,t,n),this.blockLength=n;return o}toBER(e,t){return this.isConstructed?wt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};is.NAME="OctetStringValueBlock";var Qu,Dt=class r extends Se{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},is),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,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),t;if(!this.valueBlock.isConstructed){let s=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(s.byteLength){let i=Ds(s,0,s.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?tr.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${H.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return H.BufferSourceConverter.concat(e)}};Qu=Dt;I.OctetString=Qu;Dt.NAME=qu;var as=class extends Ut(wt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let o=-1;if(this.isConstructed){if(o=wt.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let a of this.value){let c=a.constructor.NAME;if(c===Gn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Gu)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=a.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return o}let s=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=Ds(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,t+n}toBER(e,t){if(this.isConstructed)return wt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return lt;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}}};as.NAME="BitStringValueBlock";var Ju,on=class extends Se{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},as),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return tr.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let o of t)e.push(o.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};Ju=on;I.BitString=Ju;on.NAME=Gu;var ef;function Cg(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,u=0,f=c<i?i:c,l=0;for(let h=f;h>=0;h--,l++){switch(!0){case l<a.length:u=s[i-l]+a[c-l]+t[0];break;default:u=s[i-l]+t[0]}switch(t[0]=u/10,!0){case l>=s.length:s=jo(new Uint8Array([u%10]),s);break;default:s[i-l]=u%10}}return t[0]>0&&(s=jo(t,s)),s}function $u(r){if(r>=$n.length)for(let e=$n.length;e<=r;e++){let t=new Uint8Array([0]),n=$n[e-1].slice(0);for(let o=n.length-1;o>=0;o--){let s=new Uint8Array([(n[o]<<1)+t[0]]);t[0]=s[0]/10,n[o]=s[0]%10}t[0]>0&&(n=jo(t,n)),$n.push(n)}return $n[r]}function Ng(r,e){let t=0,n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,u,f=0;for(let l=c;l>=0;l--,f++)switch(u=s[i-f]-a[c-f]-t,!0){case u<0:t=1,s[i-f]=u+10;break;default:t=0,s[i-f]=u}if(t>0)for(let l=i-c+1;l>=0;l--,f++)if(u=s[i-f]-t,u<0)t=1,s[i-f]=u+10;else{t=0,s[i-f]=u;break}return s.slice()}var zn=class extends Ut(Oe){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}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=tc.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Vu(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,o=0){let s=this.fromBER(e,t,n);if(s===-1)return s;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):o!==0&&i.length<o&&(o-i.length>1&&(o=i.length+1),this.valueHexView=i.subarray(o-i.length)),s}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let o=super.fromBER(e,t,n);return o===-1||this.setValueHex(),o}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,o,s=this.valueHexView,i="",a=!1;for(let c=s.byteLength-1;c>=0;c--){o=s[c];for(let u=0;u<8;u++){if((o&1)===1)switch(n){case e:t=Ng($u(n),t),i="-";break;default:t=Cg(t,$u(n))}n++,o>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(i+=Hu.charAt(t[c]));return a===!1&&(i+=Hu.charAt(0)),i}};ef=zn;zn.NAME="IntegerValueBlock";Object.defineProperty(ef.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var tf,me=class r extends Se{constructor(e={}){super(e,zn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Xo(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Xo();let t=BigInt(e),n=new qn,o=t.toString(16).replace(/^-/,""),s=new Uint8Array(H.Convert.FromHex(o));if(t<0){let a=new Uint8Array(s.length+(s[0]&128?1:0));a[0]|=128;let u=BigInt(`0x${H.Convert.ToHex(a)}`)+t,f=H.BufferSourceConverter.toUint8Array(H.Convert.FromHex(u.toString(16)));f[0]|=128,n.write(f)}else s[0]&128&&n.write(new Uint8Array([0])),n.write(s);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}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()}`}};tf=me;I.Integer=tf;me.NAME="INTEGER";var rf,cs=class extends me{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};rf=cs;I.Enumerated=rf;cs.NAME="ENUMERATED";var Yn=class extends Ut(Oe){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let o=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=Rr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Xo();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let o=0;o<n.length;o++)n[o]=parseInt(t.slice(o*7,o*7+7),2)+(o+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=er(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",lt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n}toString(){let e="";if(this.isHexOnly)e=H.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Yn.NAME="sidBlock";var ls=class extends Oe{constructor({value:e=sn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new Yn;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.value.length===0&&(s.isFirstSid=!0),this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}return o}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let o=this.value[n].toBER(e);if(o.byteLength===0)return this.error=this.value[n].error,lt;t.push(o)}return rc(t)}fromString(e){this.value=[];let t=0,n=0,o="",s=!1;do if(n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1,s){let i=this.value[0],a=0;switch(i.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(o,10);if(isNaN(c))return;i.valueDec=c+a,s=!1}else{let i=new Yn;if(o>Number.MAX_SAFE_INTEGER){Xo();let a=BigInt(o);i.valueBigInt=a}else if(i.valueDec=parseInt(o,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,s=!0),this.value.push(i)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t?(o=`{${o}}`,this.value[n].isFirstSid?e=`2.{${o} - 80}`:e+=o):e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};ls.NAME="ObjectIdentifierValueBlock";var nf,ct=class extends Se{constructor(e={}){super(e,ls),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};nf=ct;I.ObjectIdentifier=nf;ct.NAME="OBJECT IDENTIFIER";var Wn=class extends Ut(kt){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let o=H.BufferSourceConverter.toUint8Array(e);if(!Ot(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=Rr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=er(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",lt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n.buffer}toString(){let e="";return this.isHexOnly?e=H.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Wn.NAME="relativeSidBlock";var us=class extends Oe{constructor({value:e=sn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new Wn;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}return o}toBER(e,t){let n=[];for(let o=0;o<this.value.length;o++){let s=this.value[o].toBER(e);if(s.byteLength===0)return this.error=this.value[o].error,lt;n.push(s)}return rc(n)}fromString(e){this.value=[];let t=0,n=0,o="";do{n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1;let s=new Wn;if(s.valueDec=parseInt(o,10),isNaN(s.valueDec))return!0;this.value.push(s)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(o=`{${o}}`),e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};us.NAME="RelativeObjectIdentifierValueBlock";var of,fs=class extends Se{constructor(e={}){super(e,us),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};of=fs;I.RelativeObjectIdentifier=of;fs.NAME="RelativeObjectIdentifier";var sf,xe=class extends tr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};sf=xe;I.Sequence=sf;xe.NAME="SEQUENCE";var af,hs=class extends tr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};af=hs;I.Set=af;hs.NAME="SET";var ds=class extends Ut(Oe){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=sn}toJSON(){return{...super.toJSON(),value:this.value}}};ds.NAME="StringValueBlock";var ps=class extends ds{};ps.NAME="SimpleStringValueBlock";var He=class extends Jo{constructor({...e}={}){super(e,ps)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,H.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);this.valueBlock.value=e}};He.NAME="SIMPLE STRING";var ms=class extends He{fromBuffer(e){this.valueBlock.valueHexView=H.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=H.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=H.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(H.Convert.FromUtf8String(e)),this.valueBlock.value=e}};ms.NAME="Utf8StringValueBlock";var cf,Pt=class extends ms{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};cf=Pt;I.Utf8String=cf;Pt.NAME="UTF8String";var gs=class extends He{fromBuffer(e){this.valueBlock.value=H.Convert.ToUtf16String(e),this.valueBlock.valueHexView=H.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(H.Convert.FromUtf16String(e))}};gs.NAME="BmpStringValueBlock";var lf,ys=class extends gs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};lf=ys;I.BmpString=lf;ys.NAME="BMPString";var ws=class extends He{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let o=0;o<n.length;o+=4)n[o]=n[o+3],n[o+1]=n[o+2],n[o+2]=0,n[o+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let o=0;o<t;o++){let s=er(e.charCodeAt(o),8),i=new Uint8Array(s);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[o*4+c+a]=i[c]}this.valueBlock.value=e}};ws.NAME="UniversalStringValueBlock";var uf,bs=class extends ws{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};uf=bs;I.UniversalString=uf;bs.NAME="UniversalString";var ff,Es=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};ff=Es;I.NumericString=ff;Es.NAME="NumericString";var hf,xs=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};hf=xs;I.PrintableString=hf;xs.NAME="PrintableString";var df,vs=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};df=vs;I.TeletexString=df;vs.NAME="TeletexString";var pf,As=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};pf=As;I.VideotexString=pf;As.NAME="VideotexString";var mf,Rs=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};mf=Rs;I.IA5String=mf;Rs.NAME="IA5String";var gf,_s=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};gf=_s;I.GraphicString=gf;_s.NAME="GraphicString";var yf,jn=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};yf=jn;I.VisibleString=yf;jn.NAME="VisibleString";var wf,Ss=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};wf=Ss;I.GeneralString=wf;Ss.NAME="GeneralString";var bf,Is=class extends He{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};bf=Is;I.CharacterString=bf;Is.NAME="CharacterString";var Ef,Xn=class extends jn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let o=0;o<e.length;o++)this.valueBlock.valueHexView[o]=e.charCodeAt(o)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,H.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let o=parseInt(n[1],10);o>=50?this.year=1900+o:this.year=2e3+o,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(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=qe(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=qe(this.month,2),t[2]=qe(this.day,2),t[3]=qe(this.hour,2),t[4]=qe(this.minute,2),t[5]=qe(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}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}}};Ef=Xn;I.UTCTime=Ef;Xn.NAME="UTCTime";var xf,Bs=class extends Xn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",o="",s=0,i,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){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 l=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),l=-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 d=parseInt(g.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*d,g.length===4){if(d=parseInt(g.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=l*d}}}let u=n.indexOf(".");if(u===-1&&(u=n.indexOf(",")),u!==-1){let l=new Number(`0${n.substring(u)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");s=l.valueOf(),o=n.substring(0,u)}else o=n;switch(!0){case o.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case o.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*s;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*s;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=1e3*s;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(o);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l<f.length;l++)switch(l){case 1:this.year=parseInt(f[l],10);break;case 2:this.month=parseInt(f[l],10);break;case 3:this.day=parseInt(f[l],10);break;case 4:this.hour=parseInt(f[l],10)+a;break;case 5:this.minute=parseInt(f[l],10)+c;break;case 6:this.second=parseInt(f[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(qe(this.year,4)),t.push(qe(this.month,2)),t.push(qe(this.day,2)),t.push(qe(this.hour,2)),t.push(qe(this.minute,2)),t.push(qe(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(qe(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};xf=Bs;I.GeneralizedTime=xf;Bs.NAME="GeneralizedTime";var vf,Ts=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};vf=Ts;I.DATE=vf;Ts.NAME="DATE";var Af,Cs=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Af=Cs;I.TimeOfDay=Af;Cs.NAME="TimeOfDay";var Rf,Ns=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Rf=Ns;I.DateTime=Rf;Ns.NAME="DateTime";var _f,Ls=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};_f=Ls;I.Duration=_f;Ls.NAME="Duration";var Sf,ks=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Sf=ks;I.TIME=Sf;ks.NAME="TIME";function kg(r){let{result:e}=an(r),t=e.valueBlock.value;return{n:K(bt(t[1].toBigInt()),"base64url"),e:K(bt(t[2].toBigInt()),"base64url"),d:K(bt(t[3].toBigInt()),"base64url"),p:K(bt(t[4].toBigInt()),"base64url"),q:K(bt(t[5].toBigInt()),"base64url"),dp:K(bt(t[6].toBigInt()),"base64url"),dq:K(bt(t[7].toBigInt()),"base64url"),qi:K(bt(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function Dg(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 y("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new xe({value:[new me({value:0}),me.fromBigInt(Et(D(r.n,"base64url"))),me.fromBigInt(Et(D(r.e,"base64url"))),me.fromBigInt(Et(D(r.d,"base64url"))),me.fromBigInt(Et(D(r.p,"base64url"))),me.fromBigInt(Et(D(r.q,"base64url"))),me.fromBigInt(Et(D(r.dp,"base64url"))),me.fromBigInt(Et(D(r.dq,"base64url"))),me.fromBigInt(Et(D(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function Pg(r){let{result:e}=an(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:K(bt(t[0].toBigInt()),"base64url"),e:K(bt(t[1].toBigInt()),"base64url")}}function Og(r){if(r.n==null||r.e==null)throw new y("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new xe({value:[new xe({value:[new ct({value:"1.2.840.113549.1.1.1"}),new rr]}),new on({valueHex:new xe({value:[me.fromBigInt(Et(D(r.n,"base64url"))),me.fromBigInt(Et(D(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function bt(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),o=0,s=0;for(;o<t;)n[o]=parseInt(e.slice(s,s+2),16),o+=1,s+=2;return n}function Et(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var Ug=16,oc=32,sc=1e4;async function Mg(r,e){let t=Me.get(),o=new xe({value:[new me({value:0}),new xe({value:[new ct({value:"1.2.840.113549.1.1.1"}),new rr]}),new Dt({valueHex:r.marshal()})]}).toBER(),s=new Uint8Array(o,0,o.byteLength),i=yt(Ug),a=await Ja(Xr,e,i,{c:sc,dkLen:oc}),c=yt(16),u=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},u,s),l=new xe({value:[new Dt({valueHex:i}),new me({value:sc}),new me({value:oc}),new xe({value:[new ct({value:"1.2.840.113549.2.11"}),new rr]})]}),h=new xe({value:[new ct({value:"1.2.840.113549.1.5.13"}),new xe({value:[new xe({value:[new ct({value:"1.2.840.113549.1.5.12"}),l]}),new xe({value:[new ct({value:"2.16.840.1.101.3.4.1.42"}),new Dt({valueHex:c})]})]})]}),d=new xe({value:[h,new Dt({valueHex:f})]}).toBER(),p=new Uint8Array(d,0,d.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...K(p,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
+ `)}async function Fg(r,e){let t=Me.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=D(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=an(o),{iv:i,salt:a,iterations:c,keySize:u,cipherText:f}=Vg(s),l=await Ja(Xr,e,a,{c,dkLen:u}),h=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),g=Zn(await t.subtle.decrypt({name:"AES-CBC",iv:i},h,f)),{result:d}=an(g);n=If(d)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=D(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=an(o);n=If(s)}else throw new y("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return ic(n)}function Vg(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new y("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new y("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let s=n.valueBlock.value[1],i=Zn(s.valueBlock.value[0].getValue()),a=sc,c=oc;if(s.valueBlock.value.length===3)a=Number(s.valueBlock.value[1].toBigInt()),c=Number(s.valueBlock.value[2].toBigInt());else if(s.valueBlock.value.length===2)throw new y("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let u=e.valueBlock.value[1].valueBlock.value[1],f=u.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new y("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Zn(u.valueBlock.value[1].getValue());return{cipherText:Zn(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:l}}function If(r){return Zn(r.valueBlock.value[2].getValue())}function Zn(r){return new Uint8Array(r,0,r.byteLength)}async function Bf(r){let e=await Me.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Nf(e);return{privateKey:t[0],publicKey:t[1]}}async function ac(r){let t=[await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Kg(r)],n=await Nf({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Tf(r,e){let t=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Cf(r,e,t){let n=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Nf(r){if(r.privateKey==null||r.publicKey==null)throw new y("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Me.get().subtle.exportKey("jwk",r.privateKey),Me.get().subtle.exportKey("jwk",r.publicKey)])}async function Kg(r){return Me.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Ps(r){if(r.kty!=="RSA")throw new y("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new y("invalid key modulus","ERR_INVALID_KEY_MODULUS");return D(r.n,"base64url").length*8}var Jn=8192,Qn=class{_key;constructor(e){this._key=e}verify(e,t){return Cf(this._key,t,e)}marshal(){return nr.jwkToPkix(this._key)}get bytes(){return mt.encode({Type:te.RSA,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Re.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}},cn=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return yt(16)}sign(e){return Tf(this._key,e)}get public(){if(this._publicKey==null)throw new y("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Qn(this._publicKey)}marshal(){return nr.jwkToPkcs1(this._key)}get bytes(){return gt.encode({Type:te.RSA,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Re.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return K(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return nr.exportToPem(this,e);if(t==="libp2p-key")return en(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function ic(r){let e=nr.pkcs1ToJwk(r);if(Ps(e)>Jn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await ac(e);return new cn(t.privateKey,t.publicKey)}function $g(r){let e=nr.pkixToJwk(r);if(Ps(e)>Jn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Qn(e)}async function qg(r){if(Ps(r)>Jn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await ac(r);return new cn(e.privateKey,e.publicKey)}async function Gg(r){if(r>Jn)throw new y("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Bf(r);return new cn(e.privateKey,e.publicKey)}var dc={};Ee(dc,{Secp256k1PrivateKey:()=>to,Secp256k1PublicKey:()=>eo,generateKeyPair:()=>o0,unmarshalSecp256k1PrivateKey:()=>r0,unmarshalSecp256k1PublicKey:()=>n0});var zg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),or=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),sr=new Uint32Array(64),lc=class extends jr{constructor(){super(64,32,8,!1),this.A=or[0]|0,this.B=or[1]|0,this.C=or[2]|0,this.D=or[3]|0,this.E=or[4]|0,this.F=or[5]|0,this.G=or[6]|0,this.H=or[7]|0}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)sr[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=sr[l-15],g=sr[l-2],d=ot(h,7)^ot(h,18)^h>>>3,p=ot(g,17)^ot(g,19)^g>>>10;sr[l]=p+sr[l-7]+d+sr[l-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let h=ot(a,6)^ot(a,11)^ot(a,25),g=f+h+au(a,c,u)+zg[l]+sr[l]|0,p=(ot(n,2)^ot(n,13)^ot(n,22))+cu(n,o,s)|0;f=u,u=c,c=a,a=i+g|0,i=s,s=o,o=n,n=g+p|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,o,s,i,a,c,u,f)}roundClean(){sr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Lf=Lo(()=>new lc);function Yg(r){let e=Mn(r);pt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:o}=e;if(t){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Wg,hexToBytes:jg}=Po,_r={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=_r;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Wg(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=_r,t=typeof r=="string"?jg(r):r;Zr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:o,l:s}=_r._parseInt(t.subarray(2)),{d:i,l:a}=_r._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s:i}},hexFromSig(r){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,t=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=e(t(r.s)),o=e(t(r.r)),s=n.length/2,i=o.length/2,a=t(s),c=t(i);return`30${t(i+s+4)}02${c}${o}02${a}${n}`}},Mt=BigInt(0),rt=BigInt(1),Hx=BigInt(2),kf=BigInt(3),$x=BigInt(4);function Xg(r){let e=Yg(r),{Fp:t}=e,n=e.toBytes||((d,p,m)=>{let w=p.toAffine();return Tt(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),o=e.fromBytes||(d=>{let p=d.subarray(1),m=t.fromBytes(p.subarray(0,t.BYTES)),w=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:m,y:w}});function s(d){let{a:p,b:m}=e,w=t.sqr(d),x=t.mul(w,d);return t.add(t.add(x,t.mul(d,p)),m)}if(!t.eql(t.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function i(d){return typeof d=="bigint"&&Mt<d&&d<e.n}function a(d){if(!i(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:p,nByteLength:m,wrapPrivateKey:w,n:x}=e;if(p&&typeof d!="bigint"){if(Xt(d)&&(d=It(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(m*2,"0")}let b;try{b=typeof d=="bigint"?d:Bt(ae("private key",d,m))}catch{throw new Error(`private key must be ${m} bytes, hex or bigint, not ${typeof d}`)}return w&&(b=Z(b,x)),a(b),b}let u=new Map;function f(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,m,w){if(this.px=p,this.py=m,this.pz=w,p==null||!t.isValid(p))throw new Error("x required");if(m==null||!t.isValid(m))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required")}static fromAffine(p){let{x:m,y:w}=p||{};if(!p||!t.isValid(m)||!t.isValid(w))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let x=b=>t.eql(b,t.ZERO);return x(m)&&x(w)?l.ZERO:new l(m,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let m=t.invertBatch(p.map(w=>w.pz));return p.map((w,x)=>w.toAffine(m[x])).map(l.fromAffine)}static fromHex(p){let m=l.fromAffine(o(ae("pointHex",p)));return m.assertValidity(),m}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:m}=this.toAffine();if(!t.isValid(p)||!t.isValid(m))throw new Error("bad point: x or y not FE");let w=t.sqr(m),x=s(p);if(!t.eql(w,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){f(p);let{px:m,py:w,pz:x}=this,{px:b,py:A,pz:v}=p,S=t.eql(t.mul(m,v),t.mul(b,x)),C=t.eql(t.mul(w,v),t.mul(A,x));return S&&C}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:m}=e,w=t.mul(m,kf),{px:x,py:b,pz:A}=this,v=t.ZERO,S=t.ZERO,C=t.ZERO,N=t.mul(x,x),q=t.mul(b,b),G=t.mul(A,A),U=t.mul(x,b);return U=t.add(U,U),C=t.mul(x,A),C=t.add(C,C),v=t.mul(p,C),S=t.mul(w,G),S=t.add(v,S),v=t.sub(q,S),S=t.add(q,S),S=t.mul(v,S),v=t.mul(U,v),C=t.mul(w,C),G=t.mul(p,G),U=t.sub(N,G),U=t.mul(p,U),U=t.add(U,C),C=t.add(N,N),N=t.add(C,N),N=t.add(N,G),N=t.mul(N,U),S=t.add(S,N),G=t.mul(b,A),G=t.add(G,G),N=t.mul(G,U),v=t.sub(v,N),C=t.mul(G,q),C=t.add(C,C),C=t.add(C,C),new l(v,S,C)}add(p){f(p);let{px:m,py:w,pz:x}=this,{px:b,py:A,pz:v}=p,S=t.ZERO,C=t.ZERO,N=t.ZERO,q=e.a,G=t.mul(e.b,kf),U=t.mul(m,b),he=t.mul(w,A),le=t.mul(x,v),Je=t.add(m,w),R=t.add(b,A);Je=t.mul(Je,R),R=t.add(U,he),Je=t.sub(Je,R),R=t.add(m,x);let L=t.add(b,v);return R=t.mul(R,L),L=t.add(U,le),R=t.sub(R,L),L=t.add(w,x),S=t.add(A,v),L=t.mul(L,S),S=t.add(he,le),L=t.sub(L,S),N=t.mul(q,R),S=t.mul(G,le),N=t.add(S,N),S=t.sub(he,N),N=t.add(he,N),C=t.mul(S,N),he=t.add(U,U),he=t.add(he,U),le=t.mul(q,le),R=t.mul(G,R),he=t.add(he,le),le=t.sub(U,le),le=t.mul(q,le),R=t.add(R,le),U=t.mul(he,R),C=t.add(C,U),U=t.mul(L,R),S=t.mul(Je,S),S=t.sub(S,U),U=t.mul(Je,he),N=t.mul(L,N),N=t.add(N,U),new l(S,C,N)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return g.wNAFCached(this,u,p,m=>{let w=t.invertBatch(m.map(x=>x.pz));return m.map((x,b)=>x.toAffine(w[b])).map(l.fromAffine)})}multiplyUnsafe(p){let m=l.ZERO;if(p===Mt)return m;if(a(p),p===rt)return this;let{endo:w}=e;if(!w)return g.unsafeLadder(this,p);let{k1neg:x,k1:b,k2neg:A,k2:v}=w.splitScalar(p),S=m,C=m,N=this;for(;b>Mt||v>Mt;)b&rt&&(S=S.add(N)),v&rt&&(C=C.add(N)),N=N.double(),b>>=rt,v>>=rt;return x&&(S=S.negate()),A&&(C=C.negate()),C=new l(t.mul(C.px,w.beta),C.py,C.pz),S.add(C)}multiply(p){a(p);let m=p,w,x,{endo:b}=e;if(b){let{k1neg:A,k1:v,k2neg:S,k2:C}=b.splitScalar(m),{p:N,f:q}=this.wNAF(v),{p:G,f:U}=this.wNAF(C);N=g.constTimeNegate(A,N),G=g.constTimeNegate(S,G),G=new l(t.mul(G.px,b.beta),G.py,G.pz),w=N.add(G),x=q.add(U)}else{let{p:A,f:v}=this.wNAF(m);w=A,x=v}return l.normalizeZ([w,x])[0]}multiplyAndAddUnsafe(p,m,w){let x=l.BASE,b=(v,S)=>S===Mt||S===rt||!v.equals(x)?v.multiplyUnsafe(S):v.multiply(S),A=b(this,m).add(b(p,w));return A.is0()?void 0:A}toAffine(p){let{px:m,py:w,pz:x}=this,b=this.is0();p==null&&(p=b?t.ONE:t.inv(x));let A=t.mul(m,p),v=t.mul(w,p),S=t.mul(x,p);if(b)return{x:t.ZERO,y:t.ZERO};if(!t.eql(S,t.ONE))throw new Error("invZ was invalid");return{x:A,y:v}}isTorsionFree(){let{h:p,isTorsionFree:m}=e;if(p===rt)return!0;if(m)return m(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:m}=e;return p===rt?this:m?m(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return It(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,g=Mo(l,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:i}}function Zg(r){let e=Mn(r);return pt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Df(r){let e=Zg(r),{Fp:t,n}=e,o=t.BYTES+1,s=2*t.BYTES+1;function i(R){return Mt<R&&R<t.ORDER}function a(R){return Z(R,n)}function c(R){return Oo(R,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:h}=Xg({...e,toBytes(R,L,M){let _=L.toAffine(),E=t.toBytes(_.x),T=Tt;return M?T(Uint8Array.from([L.hasEvenY()?2:3]),E):T(Uint8Array.from([4]),E,t.toBytes(_.y))},fromBytes(R){let L=R.length,M=R[0],_=R.subarray(1);if(L===o&&(M===2||M===3)){let E=Bt(_);if(!i(E))throw new Error("Point is not on curve");let T=l(E),k;try{k=t.sqrt(T)}catch(V){let Y=V instanceof Error?": "+V.message:"";throw new Error("Point is not on curve"+Y)}let P=(k&rt)===rt;return(M&1)===1!==P&&(k=t.neg(k)),{x:E,y:k}}else if(L===s&&M===4){let E=t.fromBytes(_.subarray(0,t.BYTES)),T=t.fromBytes(_.subarray(t.BYTES,2*t.BYTES));return{x:E,y:T}}else throw new Error(`Point of length ${L} was invalid. Expected ${o} compressed bytes or ${s} uncompressed bytes`)}}),g=R=>It(Qt(R,e.nByteLength));function d(R){let L=n>>rt;return R>L}function p(R){return d(R)?a(-R):R}let m=(R,L,M)=>Bt(R.slice(L,M));class w{constructor(L,M,_){this.r=L,this.s=M,this.recovery=_,this.assertValidity()}static fromCompact(L){let M=e.nByteLength;return L=ae("compactSignature",L,M*2),new w(m(L,0,M),m(L,M,2*M))}static fromDER(L){let{r:M,s:_}=_r.toSig(ae("DER",L));return new w(M,_)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new w(this.r,this.s,L)}recoverPublicKey(L){let{r:M,s:_,recovery:E}=this,T=C(ae("msgHash",L));if(E==null||![0,1,2,3].includes(E))throw new Error("recovery id invalid");let k=E===2||E===3?M+e.n:M;if(k>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let P=E&1?"03":"02",F=u.fromHex(P+g(k)),V=c(k),Y=a(-T*V),$=a(_*V),z=u.BASE.multiplyAndAddUnsafe(F,Y,$);if(!z)throw new Error("point at infinify");return z.assertValidity(),z}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return yr(this.toDERHex())}toDERHex(){return _r.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return yr(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let x={isValidPrivateKey(R){try{return f(R),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let R=Ia(e.n);return bu(e.randomBytes(R),e.n)},precompute(R=8,L=u.BASE){return L._setWindowSize(R),L.multiply(BigInt(3)),L}};function b(R,L=!0){return u.fromPrivateKey(R).toRawBytes(L)}function A(R){let L=Xt(R),M=typeof R=="string",_=(L||M)&&R.length;return L?_===o||_===s:M?_===2*o||_===2*s:R instanceof u}function v(R,L,M=!0){if(A(R))throw new Error("first arg must be private key");if(!A(L))throw new Error("second arg must be public key");return u.fromHex(L).multiply(f(R)).toRawBytes(M)}let S=e.bits2int||function(R){let L=Bt(R),M=R.length*8-e.nBitLength;return M>0?L>>BigInt(M):L},C=e.bits2int_modN||function(R){return a(S(R))},N=Un(e.nBitLength);function q(R){if(typeof R!="bigint")throw new Error("bigint expected");if(!(Mt<=R&&R<N))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Qt(R,e.nByteLength)}function G(R,L,M=U){if(["recovered","canonical"].some(oe=>oe in M))throw new Error("sign() legacy options not supported");let{hash:_,randomBytes:E}=e,{lowS:T,prehash:k,extraEntropy:P}=M;T==null&&(T=!0),R=ae("msgHash",R),k&&(R=ae("prehashed msgHash",_(R)));let F=C(R),V=f(L),Y=[q(V),q(F)];if(P!=null&&P!==!1){let oe=P===!0?E(t.BYTES):P;Y.push(ae("extraEntropy",oe))}let $=Tt(...Y),z=F;function de(oe){let ve=S(oe);if(!h(ve))return;let Ae=c(ve),ge=u.BASE.multiply(ve).toAffine(),Ne=a(ge.x);if(Ne===Mt)return;let vt=a(Ae*a(z+Ne*V));if(vt===Mt)return;let pr=(ge.x===Ne?0:2)|Number(ge.y&rt),Ln=vt;return T&&d(vt)&&(Ln=p(vt),pr^=1),new w(Ne,Ln,pr)}return{seed:$,k2sig:de}}let U={lowS:e.lowS,prehash:!1},he={lowS:e.lowS,prehash:!1};function le(R,L,M=U){let{seed:_,k2sig:E}=G(R,L,M),T=e;return Aa(T.hash.outputLen,T.nByteLength,T.hmac)(_,E)}u.BASE._setWindowSize(8);function Je(R,L,M,_=he){let E=R;if(L=ae("msgHash",L),M=ae("publicKey",M),"strict"in _)throw new Error("options.strict was renamed to lowS");let{lowS:T,prehash:k}=_,P,F;try{if(typeof E=="string"||Xt(E))try{P=w.fromDER(E)}catch(ge){if(!(ge instanceof _r.Err))throw ge;P=w.fromCompact(E)}else if(typeof E=="object"&&typeof E.r=="bigint"&&typeof E.s=="bigint"){let{r:ge,s:Ne}=E;P=new w(ge,Ne)}else throw new Error("PARSE");F=u.fromHex(M)}catch(ge){if(ge.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(T&&P.hasHighS())return!1;k&&(L=e.hash(L));let{r:V,s:Y}=P,$=C(L),z=c(Y),de=a($*z),oe=a(V*z),ve=u.BASE.multiplyAndAddUnsafe(F,de,oe)?.toAffine();return ve?a(ve.x)===V:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:v,sign:le,verify:Je,ProjectivePoint:u,Signature:w,utils:x}}function Qg(r){return{hash:r,hmac:(e,...t)=>Hn(r,e,No(...t)),randomBytes:Wr}}function Pf(r,e){let t=n=>Df({...r,...Qg(n)});return Object.freeze({...t(e),create:t})}var Mf=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Of=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Jg=BigInt(1),uc=BigInt(2),Uf=(r,e)=>(r+e/uc)/e;function e0(r){let e=Mf,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%e,f=u*u*r%e,l=ee(f,t,e)*f%e,h=ee(l,t,e)*f%e,g=ee(h,uc,e)*u%e,d=ee(g,o,e)*g%e,p=ee(d,s,e)*d%e,m=ee(p,a,e)*p%e,w=ee(m,c,e)*m%e,x=ee(w,a,e)*p%e,b=ee(x,t,e)*f%e,A=ee(b,i,e)*d%e,v=ee(A,n,e)*u%e,S=ee(v,uc,e);if(!fc.eql(fc.sqr(S),r))throw new Error("Cannot find square root");return S}var fc=Uo(Mf,void 0,void 0,{sqrt:e0}),ut=Pf({a:BigInt(0),b:BigInt(7),Fp:fc,n:Of,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Of,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Jg*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,i=BigInt("0x100000000000000000000000000000000"),a=Uf(s*r,e),c=Uf(-n*r,e),u=Z(r-a*t-c*o,e),f=Z(-a*n-c*s,e),l=u>i,h=f>i;if(l&&(u=e-u),h&&(f=e-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:h,k2:f}}}},Lf),Qx=BigInt(0);var Jx=ut.ProjectivePoint;function Ff(){return ut.utils.randomPrivateKey()}function Vf(r,e){let t=Re.digest(e instanceof Uint8Array?e:e.subarray());if(et(t))return t.then(({digest:n})=>ut.sign(n,r).toDERRawBytes()).catch(n=>{throw new y(String(n),"ERR_INVALID_INPUT")});try{return ut.sign(t.digest,r).toDERRawBytes()}catch(n){throw new y(String(n),"ERR_INVALID_INPUT")}}function Kf(r,e,t){let n=Re.digest(t instanceof Uint8Array?t:t.subarray());if(et(n))return n.then(({digest:o})=>ut.verify(e,o,r)).catch(o=>{throw new y(String(o),"ERR_INVALID_INPUT")});try{return ut.verify(e,n.digest,r)}catch(o){throw new y(String(o),"ERR_INVALID_INPUT")}}function Hf(r){return ut.ProjectivePoint.fromHex(r).toRawBytes(!0)}function $f(r){try{ut.getPublicKey(r,!0)}catch(e){throw new y(String(e),"ERR_INVALID_PRIVATE_KEY")}}function hc(r){try{ut.ProjectivePoint.fromHex(r)}catch(e){throw new y(String(e),"ERR_INVALID_PUBLIC_KEY")}}function qf(r){try{return ut.getPublicKey(r,!0)}catch(e){throw new y(String(e),"ERR_INVALID_PRIVATE_KEY")}}var eo=class{_key;constructor(e){hc(e),this._key=e}verify(e,t){return Kf(this._key,t,e)}marshal(){return Hf(this._key)}get bytes(){return mt.encode({Type:te.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}async hash(){let e=Re.digest(this.bytes),t;return et(e)?{bytes:t}=await e:t=e.bytes,t}},to=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??qf(e),$f(this._key),hc(this._publicKey)}sign(e){return Vf(this._key,e)}get public(){return new eo(this._publicKey)}marshal(){return this._key}get bytes(){return gt.encode({Type:te.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ie(this.bytes,e.bytes)}hash(){let e=Re.digest(this.bytes);return et(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return K(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return en(this.bytes,e);throw new y(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function r0(r){return new to(r)}function n0(r){return new eo(r)}async function o0(){let r=Ff();return new to(r)}var ir={rsa:cc,ed25519:Qa,secp256k1:dc};function pc(r){let e=Object.keys(ir).join(" / ");return new y(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function mc(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return ir[r];throw pc(r)}async function Gf(r,e){return mc(r).generateKeyPair(e??2048)}function ro(r){let e=mt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case te.RSA:return ir.rsa.unmarshalRsaPublicKey(t);case te.Ed25519:return ir.ed25519.unmarshalEd25519PublicKey(t);case te.Secp256k1:return ir.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw pc(e.Type??"unknown")}}function zf(r,e){return e=(e??"rsa").toLowerCase(),mc(e),r.bytes}async function no(r){let e=gt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case te.RSA:return ir.rsa.unmarshalRsaPrivateKey(t);case te.Ed25519:return ir.ed25519.unmarshalEd25519PrivateKey(t);case te.Secp256k1:return ir.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw pc(e.Type??"RSA")}}function Yf(r,e){return e=(e??"rsa").toLowerCase(),mc(e),r.bytes}var je=Kt(Qf(),1);je.default.formatters.b=r=>r==null?"undefined":ne.baseEncode(r);je.default.formatters.t=r=>r==null?"undefined":Ge.baseEncode(r);je.default.formatters.m=r=>r==null?"undefined":Pn.baseEncode(r);je.default.formatters.p=r=>r==null?"undefined":r.toString();je.default.formatters.c=r=>r==null?"undefined":r.toString();je.default.formatters.k=r=>r==null?"undefined":r.toString();je.default.formatters.a=r=>r==null?"undefined":r.toString();function y0(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Ms(){return{forComponent(r){return w0(r)}}}function w0(r){let e=y0(`${r}:trace`);return je.default.enabled(`${r}:trace`)&&je.default.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=(0,je.default)(`${r}:trace`)),Object.assign((0,je.default)(r),{error:(0,je.default)(`${r}:error`),trace:e})}var b0=Symbol.for("nodejs.util.inspect.custom"),Jf=Object.values(zt).map(r=>r.decoder).reduce((r,e)=>r.or(e),zt.identity.decoder),eh=114,gc=36,yc=37,oo=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[zi]=!0;toString(){return this.string==null&&(this.string=ne.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return nt.createV1(eh,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return ie(this.multihash.bytes,e);if(typeof e=="string")return we(e).equals(this);if(e?.multihash?.bytes!=null)return ie(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[b0](){return`PeerId(${this.toString()})`}},Ir=class extends oo{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Br=class extends oo{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},Tr=class extends oo{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function th(r){if(r.type==="RSA")return new Ir(r);if(r.type==="Ed25519")return new Br(r);if(r.type==="secp256k1")return new Tr(r);throw new y("Not a PeerId","ERR_INVALID_PARAMETERS")}function we(r,e){if(e=e??Jf,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=mr(ne.decode(`z${r}`));return r.startsWith("12D")?new Br({multihash:t}):r.startsWith("16U")?new Tr({multihash:t}):new Ir({multihash:t})}return hn(Jf.decode(r))}function hn(r){try{let e=mr(r);if(e.code===Gt.code){if(e.digest.length===gc)return new Br({multihash:e});if(e.digest.length===yc)return new Tr({multihash:e})}if(e.code===Re.code)return new Ir({multihash:e})}catch{return E0(nt.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function E0(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==eh)throw new Error("Supplied PeerID CID is invalid");let e=r.multihash;if(e.code===Re.code)return new Ir({multihash:r.multihash});if(e.code===Gt.code){if(e.digest.length===gc)return new Br({multihash:r.multihash});if(e.digest.length===yc)return new Tr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function dn(r,e){return r.length===gc?new Br({multihash:dt(Gt.code,r),privateKey:e}):r.length===yc?new Tr({multihash:dt(Gt.code,r),privateKey:e}):new Ir({multihash:await Re.digest(r),publicKey:r,privateKey:e})}function pn(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}var Xe=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return pn(this.map.entries(),e=>[we(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,we(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return pn(this.map.keys(),e=>we(e))}values(){return this.map.values()}get size(){return this.map.size}};var ft=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return pn(this.set.entries(),e=>{let t=we(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=we(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return pn(this.set.values(),e=>we(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var nh=Symbol.for("@achingbrain/uint8arraylist");function rh(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function Fs(r){return!!r?.[nh]}var be=class r{bufs;length;[nh]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(Fs(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Fs(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=rh(this.bufs,e);return t.buf[t.index]}set(e,t){let n=rh(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(Fs(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return _e(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:_e(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,e>=c)continue;let u=e>=a&&e<c,f=t>a&&t<=c;if(u&&f){if(e===a&&t===c){n.push(i);break}let l=e-a;n.push(i.subarray(l,l+(t-e)));break}if(u){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(f){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Fs(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let l=0;l<s;l++)i[l]=-1;for(let l=0;l<o;l++)i[n[l]]=l;let a=i,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=t;l<=c;l+=f){f=0;for(let h=u;h>=0;h--){let g=this.get(l+h);if(n[h]!==g){f=Math.max(1,h-a[g]);break}}if(f===0)return l}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Le(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=_t(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=_t(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=_t(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Le(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=_t(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=_t(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=_t(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=_t(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=_t(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!ie(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var oh=async()=>{let r=await Gf("Ed25519"),e=await x0(r);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function x0(r){return dn(zf(r.public),Yf(r))}var sh={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var so;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.publicKey=t.bytes();break;case 2:o.payloadType=t.bytes();break;case 3:o.payload=t.bytes();break;case 5:o.signature=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Fe(t,r.codec())})(so||(so={}));var mn=class r{static createFromProtobuf=async e=>{let t=so.decode(e),n=await dn(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,o=e.codec,s=e.marshal(),i=ih(n,o,s),c=await(await no(t.privateKey)).sign(i.subarray());return new r({peerId:t,payloadType:o,payload:s,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new y("envelope signature is not valid for the given domain",sh.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:o,signature:s}=e;this.peerId=t,this.payloadType=n,this.payload=o,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=so.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return ie(this.marshal(),e.marshal())}async validate(e){let t=ih(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ro(this.peerId.publicKey).verify(t.subarray(),this.signature)}},ih=(r,e,t)=>{let n=D(r),o=De(n.byteLength),s=De(e.length),i=De(t.length);return new be(o,n,s,e,i,t)};function ah(r,e){let t=(n,o)=>n.toString().localeCompare(o.toString());return r.length!==e.length?!1:(e.sort(t),r.sort(t).every((n,o)=>e[o].equals(n)))}var Vs=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*o)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let h=Number.parseInt(l,e);if(!Number.isNaN(h))return h});if(f===void 0)break;if(s*=e,s+=f,s>u||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let o=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[o]=i[0],t[o+1]=i[1],t[o+2]=i[2],t[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];t[o]=s>>8,t[o+1]=s&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,o]=e(t);if(n===16)return t;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return t.set(s.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var ch=45,v0=15,gn=new Vs;function wc(r){if(!(r.length>v0))return gn.new(r).parseWith(()=>gn.readIPv4Addr())}function bc(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>ch))return gn.new(r).parseWith(()=>gn.readIPv6Addr())}function Ks(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>ch))return gn.new(r).parseWith(()=>gn.readIPAddr())}var w1=parseInt("0xFFFF",16),b1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function yn(r){return!!wc(r)}function wn(r){return!!bc(r)}function Hs(r){return!!Ks(r)}var fh=yn,I0=wn,Ec=function(r){let e=0;if(r=r.toString().trim(),fh(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(I0(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=fh(t[n]),i;s&&(i=Ec(t[n]),t[n]=K(i.slice(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,K(i.slice(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){let s=parseInt(t[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},hh=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let o=[];for(let s=0;s<t;s++)o.push(r[e+s]);return o.join(".")}if(t===16){let o=[];for(let s=0;s<t;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var bn={},xc={},T0=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];T0.forEach(r=>{let e=C0(...r);xc[e.code]=e,bn[e.name]=e});function C0(r,e,t,n,o){return{code:r,size:e,name:t,resolvable:!!n,path:!!o}}function X(r){if(typeof r=="number"){if(xc[r]!=null)return xc[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(bn[r]!=null)return bn[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var rA=X("ip4"),nA=X("ip6"),oA=X("ipcidr");function Ac(r,e){switch(X(r).code){case 4:case 41:return L0(e);case 42:return mh(e);case 6:case 273:case 33:case 132:return yh(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return mh(e);case 421:return O0(e);case 444:return gh(e);case 445:return gh(e);case 466:return P0(e);default:return K(e,"base16")}}function Rc(r,e){switch(X(r).code){case 4:return dh(e);case 41:return dh(e);case 42:return ph(e);case 6:case 273:case 33:case 132:return _c(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ph(e);case 421:return k0(e);case 444:return U0(e);case 445:return M0(e);case 466:return D0(e);default:return D(e,"base16")}}var vc=Object.values(zt).map(r=>r.decoder),N0=function(){let r=vc[0].or(vc[1]);return vc.slice(2).forEach(e=>r=r.or(e)),r}();function dh(r){if(!Hs(r))throw new Error("invalid ip address");return Ec(r)}function L0(r){let e=hh(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!Hs(e))throw new Error("invalid ip address");return e}function _c(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function yh(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function ph(r){let e=D(r),t=Uint8Array.from(De(e.length));return _e([t,e],t.length+e.length)}function mh(r){let e=it(r);if(r=r.slice(pe(e)),r.length!==e)throw new Error("inconsistent lengths");return K(r)}function k0(r){let e;r[0]==="Q"||r[0]==="1"?e=mr(ne.decode(`z${r}`)).bytes:e=nt.parse(r).multihash.bytes;let t=Uint8Array.from(De(e.length));return _e([t,e],t.length+e.length)}function D0(r){let e=N0.decode(r),t=Uint8Array.from(De(e.length));return _e([t,e],t.length+e.length)}function P0(r){let e=it(r),t=r.slice(pe(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+K(t,"base64url")}function O0(r){let e=it(r),t=r.slice(pe(e));if(t.length!==e)throw new Error("inconsistent lengths");return K(t,"base58btc")}function U0(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=Ge.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=_c(n);return _e([t,o],t.length+o.length)}function M0(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=Ge.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=_c(n);return _e([t,o],t.length+o.length)}function gh(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=K(e,"base32"),o=yh(t);return`${n}:${o}`}function wh(r){r=Sc(r);let e=[],t=[],n=null,o=r.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<o.length;s++){let i=o[s],a=X(i);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(s++,s>=o.length)throw Eh("invalid address: "+r);if(a.path===!0){n=Sc(o.slice(s).join("/")),e.push([a.code,Rc(a.code,n)]),t.push([a.code,n]);break}let c=Rc(a.code,o[s]);e.push([a.code,c]),t.push([a.code,Ac(a.code,c)])}return{string:bh(t),bytes:Bc(e),tuples:e,stringTuples:t,path:n}}function Ic(r){let e=[],t=[],n=null,o=0;for(;o<r.length;){let s=it(r,o),i=pe(s),a=X(s),c=F0(a,r.slice(o+i));if(c===0){e.push([s]),t.push([s]),o+=i;continue}let u=r.slice(o+i,o+i+c);if(o+=c+i,o>r.length)throw Eh("Invalid address Uint8Array: "+K(r,"base16"));e.push([s,u]);let f=Ac(s,u);if(t.push([s,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:bh(t),tuples:e,stringTuples:t,path:n}}function bh(r){let e=[];return r.map(t=>{let n=X(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),Sc(e.join("/"))}function Bc(r){return _e(r.map(e=>{let t=X(e[0]),n=Uint8Array.from(De(t.code));return e.length>1&&e[1]!=null&&(n=_e([n,e[1]])),n}))}function F0(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=it(e instanceof Uint8Array?e:Uint8Array.from(e));return t+pe(t)}}function Sc(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function Eh(r){return new Error("Error parsing address: "+r)}var V0=Symbol.for("nodejs.util.inspect.custom"),Tc=Symbol.for("@multiformats/js-multiaddr/multiaddr"),K0=[X("dns").code,X("dns4").code,X("dns6").code,X("dnsaddr").code],$s=class r{bytes;#e;#t;#s;#a;[Tc]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=Ic(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=wh(e)}else if(ar(e))t=Ic(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#s=t.stringTuples,this.#a=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,o,s="",i=X("tcp"),a=X("udp"),c=X("ip4"),u=X("ip6"),f=X("dns6"),l=X("ip6zone");for(let[g,d]of this.stringTuples())g===l.code&&(s=`%${d??""}`),K0.includes(g)&&(t=i.name,o=443,n=`${d??""}${s}`,e=g===f.code?6:4),(g===i.code||g===a.code)&&(t=X(g).name,o=parseInt(d??"")),(g===c.code||g===u.code)&&(t=X(g).name,n=`${d??""}${s}`,e=g===u.code?6:4);if(e==null||t==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:o}}protos(){return this.#t.map(([e])=>Object.assign({},X(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>X(e).name)}tuples(){return this.#t}stringTuples(){return this.#s}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,o))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(Bc(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===bn.p2p.code&&e.push([n,o]),n===bn["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?K(ne.decode(`z${n}`),"base58btc"):K(nt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return ie(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(s=>s.resolvable);if(t==null)return[this];let n=En.get(t.name);if(n==null)throw new y(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>re(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[V0](){return`Multiaddr(${this.#e})`}};var En=new Map;function ar(r){return!!r?.[Tc]}function re(r){return new $s(r)}var xh="libp2p-peer-record",vh=Uint8Array.from([3,1]);var io;(function(r){let e;(function(n){let o;n.codec=()=>(o==null&&(o=Ke((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(i.uint32(10),i.bytes(s.multiaddr)),a.lengthDelimited!==!1&&i.ldelim()},(s,i)=>{let a={multiaddr:new Uint8Array(0)},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),o),n.encode=s=>Ve(s,n.codec()),n.decode=s=>Fe(s,n.codec())})(e=r.AddressInfo||(r.AddressInfo={}));let t;r.codec=()=>(t==null&&(t=Ke((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(o.uint32(10),o.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(o.uint32(16),o.uint64(n.seq)),n.addresses!=null)for(let i of n.addresses)o.uint32(26),r.AddressInfo.codec().encode(i,o);s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},i=o==null?n.len:n.pos+o;for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),t),r.encode=n=>Ve(n,r.codec()),r.decode=n=>Fe(n,r.codec())})(io||(io={}));var Cr=class r{static createFromProtobuf=e=>{let t=io.decode(e),n=hn(t.peerId),o=(t.addresses??[]).map(i=>re(i.multiaddr)),s=t.seq;return new r({peerId:n,multiaddrs:o,seqNumber:s})};static DOMAIN=xh;static CODEC=vh;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(e){let{peerId:t,multiaddrs:n,seqNumber:o}=e;this.peerId=t,this.multiaddrs=n??[],this.seqNumber=o??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=io.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof r)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!ah(this.multiaddrs,e.multiaddrs))}};function H0(r){return r[Symbol.asyncIterator]!=null}function $0(r){if(H0(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var ao=$0;var Nc=Kt(Rh(),1);var lo=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Lc=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},_h=r=>globalThis.DOMException===void 0?new Lc(r):new DOMException(r),Sh=r=>{let e=r.reason===void 0?_h("This operation was aborted."):r.reason;return e instanceof Error?e:_h(e)};function uo(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,c=new Promise((u,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:h}=e;h.aborted&&f(Sh(h)),h.addEventListener("abort",()=>{f(Sh(h))})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let l=new lo;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(l.message=o??`Promise timed out after ${t} milliseconds`,f(l))},t),(async()=>{try{u(await r)}catch(h){f(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},c}function kc(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var fo=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=kc(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var cr=class extends Nc.default{#e;#t;#s=0;#a;#c;#p=0;#n;#l;#r;#m;#o=0;#u;#i;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:fo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#r=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#t||this.#s<this.#a}get#E(){return this.#o<this.#u}#x(){this.#o--,this.#f(),this.emit("next")}#v(){this.#w(),this.#y(),this.#l=void 0}get#A(){let e=Date.now();if(this.#n===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#o:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#o===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#A;if(this.#b&&this.#E){let t=this.#r.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#t||this.#n!==void 0||(this.#n=setInterval(()=>{this.#w()},this.#c),this.#p=Date.now()+this.#c)}#w(){this.#s===0&&this.#o===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#s=this.#e?this.#o:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#h()}async#R(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#r.enqueue(async()=>{this.#o++,this.#s++;try{t.signal?.throwIfAborted();let s=e({signal:t.signal});t.timeout&&(s=uo(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#R(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof lo&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#x()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#h(),this):this}pause(){this.#i=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#d("next",()=>this.#r.size<e)}async onIdle(){this.#o===0&&this.#r.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#o}get isPaused(){return this.#i}};var lr={},xn=r=>{r.addEventListener("message",e=>{xn.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{xn.dispatchEvent("message",r,e)})};xn.addEventListener=(r,e)=>{lr[r]==null&&(lr[r]=[]),lr[r].push(e)};xn.removeEventListener=(r,e)=>{lr[r]!=null&&(lr[r]=lr[r].filter(t=>t===e))};xn.dispatchEvent=function(r,e,t){lr[r]!=null&&lr[r].forEach(n=>n(e,t))};var Dc=xn;var Pc="lock:worker:request-read",Oc="lock:worker:release-read",Uc="lock:master:grant-read",Mc="lock:worker:request-write",Fc="lock:worker:release-write",Vc="lock:master:grant-write";var Ih=(r=21)=>Math.random().toString().substring(2);var Bh=(r,e,t,n,o)=>(s,i)=>{if(i.data.type!==t)return;let a={type:i.data.type,name:i.data.name,identifier:i.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:o,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=f=>{if(f==null||f.data==null)return;let l={type:f.data.type,name:f.data.name,identifier:f.data.identifier};l.type===n&&l.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},Th=(r,e,t,n)=>async()=>{let o=Ih();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(s=>{let i=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===o&&(globalThis.removeEventListener("message",i),s(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",i)})},z0={singleProcess:!1},Ch=r=>{if(r=Object.assign({},z0,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return Dc.addEventListener("message",Bh(t,"requestReadLock",Pc,Oc,Uc)),Dc.addEventListener("message",Bh(t,"requestWriteLock",Mc,Fc,Vc)),t}return{isWorker:!0,readLock:t=>Th(t,Pc,Uc,Oc),writeLock:t=>Th(t,Mc,Vc,Fc)}};var Nr={},ur;async function Kc(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>uo((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Y0=(r,e)=>{if(ur.isWorker===!0)return{readLock:ur.readLock(r,e),writeLock:ur.writeLock(r,e)};let t=new cr({concurrency:1}),n;return{async readLock(){if(n!=null)return Kc(n,e);n=new cr({concurrency:e.concurrency,autoStart:!1});let o=n,s=Kc(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),s},async writeLock(){return n=null,Kc(t,e)}}},W0={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Hc(r){let e=Object.assign({},W0,r);return ur==null&&(ur=Ch(e),ur.isWorker!==!0&&(ur.addEventListener("requestReadLock",t=>{Nr[t.data.name]!=null&&Nr[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),ur.addEventListener("requestWriteLock",async t=>{Nr[t.data.name]!=null&&Nr[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Nr[e.name]==null&&(Nr[e.name]=Y0(e.name,e)),Nr[e.name]}var Ie={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var vn;(function(r){let e;(function(o){let s;o.codec=()=>(s==null&&(s=Ke((i,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),i.key!=null&&i.key!==""&&(a.uint32(10),a.string(i.key)),i.value!=null&&i.value.byteLength>0&&(a.uint32(18),a.bytes(i.value)),c.lengthDelimited!==!1&&a.ldelim()},(i,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:c.key=i.string();break;case 2:c.value=i.bytes();break;default:i.skipType(f&7);break}}return c})),s),o.encode=i=>Ve(i,o.codec()),o.decode=i=>Fe(i,o.codec())})(e=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let t;(function(o){let s;o.codec=()=>(s==null&&(s=Ke((i,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),i.key!=null&&i.key!==""&&(a.uint32(10),a.string(i.key)),i.value!=null&&(a.uint32(18),zs.codec().encode(i.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(i,a)=>{let c={key:""},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:c.key=i.string();break;case 2:c.value=zs.codec().decode(i,i.uint32());break;default:i.skipType(f&7);break}}return c})),s),o.encode=i=>Ve(i,o.codec()),o.decode=i=>Fe(i,o.codec())})(t=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Ke((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.addresses!=null)for(let a of o.addresses)s.uint32(10),Gs.codec().encode(a,s);if(o.protocols!=null)for(let a of o.protocols)s.uint32(18),s.string(a);if(o.publicKey!=null&&(s.uint32(34),s.bytes(o.publicKey)),o.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(o.peerRecordEnvelope)),o.metadata!=null&&o.metadata.size!==0)for(let[a,c]of o.metadata.entries())s.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(o.tags!=null&&o.tags.size!==0)for(let[a,c]of o.tags.entries())s.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},s);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.addresses.push(Gs.codec().decode(o,o.uint32()));break;case 2:i.protocols.push(o.string());break;case 4:i.publicKey=o.bytes();break;case 5:i.peerRecordEnvelope=o.bytes();break;case 6:{let u=r.Peer$metadataEntry.codec().decode(o,o.uint32());i.metadata.set(u.key,u.value);break}case 7:{let u=r.Peer$tagsEntry.codec().decode(o,o.uint32());i.tags.set(u.key,u.value);break}default:o.skipType(c&7);break}}return i})),n),r.encode=o=>Ve(o,r.codec()),r.decode=o=>Fe(o,r.codec())})(vn||(vn={}));var Gs;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.multiaddr!=null&&t.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(t.multiaddr)),t.isCertified!=null&&(n.uint32(16),n.bool(t.isCertified)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={multiaddr:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.multiaddr=t.bytes();break;case 2:o.isCertified=t.bool();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Fe(t,r.codec())})(Gs||(Gs={}));var zs;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.value!=null&&t.value!==0&&(n.uint32(8),n.uint32(t.value)),t.expiry!=null&&(n.uint32(16),n.uint64(t.expiry)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={value:0},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.value=t.uint32();break;case 2:o.expiry=t.uint64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Fe(t,r.codec())})(zs||(zs={}));function An(r,e){let t=vn.decode(e);t.publicKey!=null&&r.publicKey==null&&(r=th({...r,publicKey:r.publicKey}));let n=new Map,o=BigInt(Date.now());for(let[s,i]of t.tags.entries())i.expiry!=null&&i.expiry<o||n.set(s,i);return{...t,id:r,addresses:t.addresses.map(({multiaddr:s,isCertified:i})=>({multiaddr:re(s),isCertified:i??!1})),metadata:t.metadata,peerRecordEnvelope:t.peerRecordEnvelope??void 0,tags:n}}var Ft="/",Nh=new TextEncoder().encode(Ft),Ys=Nh[0],Lr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=D(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Ys)throw new Error("Invalid key")}toString(e="utf8"){return K(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Ft))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Nh),this._buf[0]!==Ys){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Ys,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ys;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ft).slice(1)}type(){return j0(this.baseNamespace())}name(){return X0(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ft)||(e+=Ft),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Ft):new r(e.slice(0,-1).join(Ft))}child(e){return this.toString()===Ft?e:e.toString()===Ft?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Z0(e.map(t=>t.namespaces()))])}};function j0(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function X0(r){let e=r.split(":");return e[e.length-1]}function Z0(r){return[].concat(...r)}var $c="/peers/";function Rn(r){if(!Ro(r)||r.type==null)throw new y("Invalid PeerId",Ie.ERR_INVALID_PARAMETERS);let e=r.toCID().toString();return new Lr(`${$c}${e}`)}async function Lh(r,e,t){let n=new Map;for(let o of t){if(o==null)continue;if(o.multiaddr instanceof Uint8Array&&(o.multiaddr=re(o.multiaddr)),!ar(o.multiaddr))throw new y("Multiaddr was invalid",Ie.ERR_INVALID_PARAMETERS);if(!await e(r,o.multiaddr))continue;let s=o.isCertified??!1,i=o.multiaddr.toString(),a=n.get(i);a!=null?o.isCertified=a.isCertified||s:n.set(i,{multiaddr:o.multiaddr,isCertified:s})}return[...n.values()].sort((o,s)=>o.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:o,multiaddr:s})=>({isCertified:o,multiaddr:s.bytes}))}async function js(r,e,t,n){if(e==null)throw new y("Invalid PeerData",Ie.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&r.publicKey!=null&&!ie(e.publicKey,r.publicKey))throw new y("publicKey bytes do not match peer id publicKey bytes",Ie.ERR_INVALID_PARAMETERS);let o=n.existingPeer;if(o!=null&&!r.equals(o.id))throw new y("peer id did not match existing peer id",Ie.ERR_INVALID_PARAMETERS);let s=o?.addresses??[],i=new Set(o?.protocols??[]),a=o?.metadata??new Map,c=o?.tags??new Map,u=o?.peerRecordEnvelope;if(t==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(l=>({isCertified:!1,multiaddr:l}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(i=new Set(e.protocols)),e.metadata!=null){let l=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Ws(l,{validate:kh})}if(e.tags!=null){let l=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Ws(l,{validate:Dh,map:Ph})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(t==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(l=>({isCertified:!1,multiaddr:l}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(i=new Set([...i,...e.protocols])),e.metadata!=null){let l=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,g]of l)g==null?a.delete(h):a.set(h,g);a=Ws([...a.entries()],{validate:kh})}if(e.tags!=null){let l=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[g,d]of l)d==null?h.delete(g):h.set(g,d);c=Ws([...h.entries()],{validate:Dh,map:Ph})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let f={addresses:await Lh(r,n.addressFilter??(async()=>!0),s),protocols:[...i.values()].sort((l,h)=>l.localeCompare(h)),metadata:a,tags:c,publicKey:o?.id.publicKey??e.publicKey??r.publicKey,peerRecordEnvelope:u};return r.type!=="RSA"&&delete f.publicKey,f}function Ws(r,e){let t=new Map;for(let[n,o]of r)o!=null&&e.validate(n,o);for(let[n,o]of r.sort(([s],[i])=>s.localeCompare(i)))o!=null&&t.set(n,e.map?.(n,o)??o);return t}function kh(r,e){if(typeof r!="string")throw new y("Metadata key must be a string",Ie.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new y("Metadata value must be a Uint8Array",Ie.ERR_INVALID_PARAMETERS)}function Dh(r,e){if(typeof r!="string")throw new y("Tag name must be a string",Ie.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new y("Tag value must be an integer",Ie.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new y("Tag value must be between 0-100",Ie.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new y("Tag ttl must be an integer",Ie.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new y("Tag ttl must be between greater than 0",Ie.ERR_INVALID_PARAMETERS)}}function Ph(r,e){let t;return e.expiry!=null&&(t=e.expiry),e.ttl!=null&&(t=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:t}}function Xs(r,e,t){let n=r.toString().split("/")[2],o=Ge.decode(n),s=hn(o),i=t.get(s);if(i!=null)return i;let a=An(s,e);return t.set(s,a),a}function Q0(r,e){return r==null?{}:{prefix:$c,filters:(r.filters??[]).map(t=>({key:n,value:o})=>t(Xs(n,o,e))),orders:(r.orders??[]).map(t=>(n,o)=>t(Xs(n.key,n.value,e),Xs(o.key,o.value,e)))}}var Zs=class{peerId;datastore;lock;addressFilter;constructor(e,t={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.lock=Hc({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(Rn(e))}async delete(e){if(this.peerId.equals(e))throw new y("Cannot delete self peer",Ie.ERR_INVALID_PARAMETERS);await this.datastore.delete(Rn(e))}async load(e){let t=await this.datastore.get(Rn(e));return An(e,t)}async save(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await js(e,t,"patch",{addressFilter:this.addressFilter});return this.#t(e,s,n,o)}async patch(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await js(e,t,"patch",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,n,o)}async merge(e,t){let{existingBuf:n,existingPeer:o}=await this.#e(e),s=await js(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,n,o)}async*all(e){let t=new Xe;for await(let{key:n,value:o}of this.datastore.query(Q0(e??{},t))){let s=Xs(n,o,t);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let t=await this.datastore.get(Rn(e)),n=An(e,t);return{existingBuf:t,existingPeer:n}}catch(t){if(t.code!=="ERR_NOT_FOUND")throw t}return{}}async#t(e,t,n,o){let s=vn.encode(t);return n!=null&&ie(s,n)?{peer:An(e,s),previous:o,updated:!1}:(await this.datastore.put(Rn(e),s),{peer:An(e,s),previous:o,updated:!0})}};var Qs=class{store;events;peerId;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new Zs(e,t)}async forEach(e,t){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 o of this.store.all(t))e(o)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let t=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await ao(this.store.all(e))}finally{this.log.trace("all release read lock"),t()}}async delete(e){this.log.trace("delete await write lock");let t=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(e)}finally{this.log.trace("delete release write lock"),t()}}async has(e){this.log.trace("has await read lock");let t=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(e)}finally{this.log.trace("has release read lock"),t()}}async get(e){this.log.trace("get await read lock");let t=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(e)}finally{this.log.trace("get release read lock"),t()}}async save(e,t){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let o=await this.store.save(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,t){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let o=await this.store.patch(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,t){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let o=await this.store.merge(e,t);return this.#e(e,o),o.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,t){let n=await mn.openAndCertify(e,Cr.DOMAIN);if(t?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",t,n.peerId),!1;let o=Cr.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(s?.peerRecordEnvelope!=null){let i=await mn.createFromProtobuf(s.peerRecordEnvelope),a=Cr.createFromProtobuf(i.payload);if(a.seqNumber>=o.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,o.seqNumber),!1}return await this.patch(o.peerId,{peerRecordEnvelope:e,addresses:o.multiaddrs.map(i=>({isCertified:!0,multiaddr:i}))}),!0}#e(e,t){t.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:t}):this.events.safeDispatchEvent("peer:update",{detail:t}))}};function J0(r){return r[Symbol.asyncIterator]!=null}function ey(r){if(J0(r))return(async()=>{for await(let e of r);})();for(let e of r);}var qc=ey;function ty(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Oh=ty;function ry(r){return r[Symbol.asyncIterator]!=null}function ny(r,e){let t=0;if(ry(r))return async function*(){for await(let c of r)await e(c,t++)&&(yield c)}();let n=Oh(r),{value:o,done:s}=n.next();if(s===!0)return function*(){}();let i=e(o,t++);if(typeof i.then=="function")return async function*(){await i&&(yield o);for await(let c of n)await e(c,t++)&&(yield c)}();let a=e;return function*(){i===!0&&(yield o);for(let c of n)a(c,t++)&&(yield c)}()}var kr=ny;function oy(r){return r[Symbol.asyncIterator]!=null}function sy(r,e){return oy(r)?async function*(){yield*(await ao(r)).sort(e)}():function*(){yield*ao(r).sort(e)}()}var Gc=sy;function iy(r){return r[Symbol.asyncIterator]!=null}function ay(r,e){return iy(r)?async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}():function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}}()}var zc=ay;var Js=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await qc(this.putMany(e,n)),e=[],await qc(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=kr(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>kr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gc(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=kr(n,()=>o++>=s)}return e.limit!=null&&(n=zc(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=kr(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>kr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gc(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=kr(n,()=>s++>=o)}return e.limit!=null&&(n=zc(n,e.limit)),n}};var Fh=Kt(Yc(),1);function Vh(r){return r=r??new Error("Not Found"),(0,Fh.default)(r,"ERR_NOT_FOUND")}var ei=class extends Js{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(e.toString(),t),e}get(e){let t=this.data.get(e.toString());if(t==null)throw Vh();return t}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,t]of this.data.entries())yield{key:new Lr(e),value:t}}*_allKeys(){for(let e of this.data.keys())yield new Lr(e)}};function Kh(r,e){let t;return function(){let n=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(n,e)}}var uy=r=>r;function Wc(r,e){let t=r.getPeerId();return t!=null&&we(t).equals(e)&&(r=r.decapsulate(re(`/p2p/${e.toString()}`))),r}var ti=class{log;components;listen;announce;observed;announceFilter;constructor(e,t={}){let{listen:n=[],announce:o=[]}=t;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(o.map(s=>s.toString())),this.observed=new Map,this.announceFilter=t.announceFilter??uy,this._updatePeerStoreAddresses=Kh(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([t,n])=>n.confident).map(([t])=>re(t))).map(t=>t.getPeerId()===this.components.peerId.toString()?t.decapsulate(`/p2p/${this.components.peerId.toString()}`):t);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(t=>{this.log.error("error updating addresses",t)})}getListenAddrs(){return Array.from(this.listen).map(e=>re(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>re(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>re(e))}addObservedAddr(e){e=Wc(e,this.components.peerId);let t=e.toString();this.observed.has(t)||this.observed.set(t,{confident:!1})}confirmObservedAddr(e){e=Wc(e,this.components.peerId);let t=e.toString(),o=(this.observed.get(t)??{confident:!1}).confident;this.observed.set(t,{confident:!0}),o||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=Wc(e,this.components.peerId);let t=e.toString();this.observed.delete(t)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,o])=>o.confident).map(([n])=>n));let t=new Set(e);return this.announceFilter(Array.from(t).map(n=>re(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var jc=class{components={};_started=!1;constructor(e={}){this.components={};for(let[t,n]of Object.entries(e))this.components[t]=n;this.components.logger==null&&(this.components.logger=Ms())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(t=>Ul(t)).map(async t=>{await t[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},fy=["metrics","connectionProtector","dns"],hy=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Hh(r={}){let e=new jc(r);return new Proxy(e,{get(n,o,s){if(typeof o=="string"&&!hy.includes(o)){let i=e.components[o];if(i==null&&!fy.includes(o))throw new y(`${o} not set`,"ERR_SERVICE_MISSING");return i}return Reflect.get(n,o,s)},set(n,o,s){return typeof o=="string"?e.components[o]=s:Reflect.set(n,o,s),!0}})}var qh=Kt($h(),1),dy=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],py=dy.map(r=>new qh.Netmask(r));function my(r){for(let e of py)if(e.contains(r))return!0;return!1}function gy(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}function ri(r){return yn(r)?my(r):wn(r)?gy(r):void 0}function Gh(r={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let t=e.stringTuples();return t[0][0]===4||t[0][0]===41?!!ri(`${t[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...r}}var yy=r=>r.toString().split("/").slice(1),po=r=>({match:e=>e.length<1?!1:r(e[0])?e.slice(1):!1,pattern:"fn"}),W=r=>({match:e=>po(t=>t===r).match(e),pattern:r}),si=()=>({match:r=>po(e=>typeof e=="string").match(r),pattern:"{string}"}),ii=()=>({match:r=>po(e=>!isNaN(parseInt(e))).match(r),pattern:"{number}"}),Be=()=>({match:r=>{if(r.length<2||r[0]!=="p2p"&&r[0]!=="ipfs")return!1;if(r[1].startsWith("Q")||r[1].startsWith("1"))try{ne.decode(`z${r[1]}`)}catch{return!1}else return!1;return r.slice(2)},pattern:"/p2p/{peerid}"}),ni=()=>({match:r=>{if(r.length<2||r[0]!=="certhash")return!1;try{ha.decode(r[1])}catch{return!1}return r.slice(2)},pattern:"/certhash/{certhash}"}),Te=r=>({match:e=>{let t=r.match(e);return t===!1?e:t},pattern:`optional(${r.pattern})`}),Ze=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1},pattern:`or(${r.map(e=>e.pattern).join(", ")})`}),Q=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${r.map(e=>e.pattern).join(", ")})`});function fe(...r){function e(o){let s=yy(o);for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matches:t,exactMatch:n}}var Zc=Q(W("dns4"),si()),Qc=Q(W("dns6"),si()),Jc=Q(W("dnsaddr"),si()),zh=Q(W("dns"),si()),TR=fe(Zc),CR=fe(Qc),NR=fe(Jc),LR=fe(Ze(zh,Jc,Zc,Qc)),Yh=Q(W("ip4"),po(yn)),Wh=Q(W("ip6"),po(wn)),jh=Ze(Yh,Wh),xt=Ze(jh,zh,Zc,Qc,Jc),kR=fe(xt),DR=fe(Yh),PR=fe(Wh),OR=fe(jh),ai=Q(xt,W("tcp"),ii()),mo=Q(xt,W("udp"),ii()),wy=Ze(ai,mo),UR=fe(ai),MR=fe(mo),el=Q(mo,W("quic")),ci=Q(mo,W("quic-v1")),by=Ze(el,ci),FR=fe(el),VR=fe(ci),Xc=Ze(xt,ai,mo,el,ci),Xh=Ze(Q(Xc,W("ws"),Te(Be()))),KR=fe(Xh),Zh=Ze(Q(Xc,W("wss"),Te(Be())),Q(Xc,W("tls"),W("ws"),Te(Be()))),HR=fe(Zh),Qh=Q(wy,W("webrtc-direct"),ni(),Te(ni()),Te(Be())),$R=fe(Qh),Jh=Q(ci,W("webtransport"),Te(ni()),Te(ni()),Te(Be())),qR=fe(Jh),oi=Ze(Xh,Zh,Q(ai,Te(Be())),Q(by,Te(Be())),Q(xt,Te(Be())),Qh,Jh,Be()),GR=fe(oi),Ey=Q(oi,W("p2p-circuit"),Be()),go=fe(Ey),xy=Ze(Q(oi,W("p2p-circuit"),W("webrtc"),Be()),Q(oi,W("webrtc"),Te(Be())),W("webrtc")),zR=fe(xy),vy=Ze(Q(xt,W("tcp"),ii(),W("http"),Te(Be())),Q(xt,W("http"),Te(Be()))),YR=fe(vy),Ay=Ze(Q(xt,W("tcp"),Ze(Q(W("443"),W("http")),Q(ii(),W("https"))),Te(Be())),Q(xt,W("tls"),W("http"),Te(Be())),Q(xt,W("https"),Te(Be()))),WR=fe(Ay);function tl(r){try{let{address:e}=r.nodeAddress();return!!ri(e)}catch{return!0}}function Ry(r,e){let t=tl(r.multiaddr),n=tl(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function _y(r,e){return r.isCertified&&!e.isCertified?-1:!r.isCertified&&e.isCertified?1:0}function Sy(r,e){let t=go.exactMatch(r.multiaddr),n=go.exactMatch(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function _n(r,e){let t=Ry(r,e);if(t!==0)return t;let n=Sy(r,e);return n!==0?n:_y(r,e)}var fr=class extends Event{constructor(e,t){super(e),this.detail=t}};function li(r){let e=[Qe.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var rl=60;function ui(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:Qe[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Qe[e.type],TTL:e.TTL??e.ttl??rl,data:e.data instanceof Uint8Array?K(e.data):e.data}))}}var Iy=4;function nl(r,e={}){let t=new cr({concurrency:e.queryConcurrency??Iy});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),li(o.types).forEach(a=>{s.append("type",Qe[a])}),o.onProgress?.(new fr("dns:query",{detail:n}));let i=await t.add(async()=>{let a=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=ui(await a.json());return o.onProgress?.(new fr("dns:response",{detail:c})),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function ed(){return[nl("https://cloudflare-dns.com/dns-query"),nl("https://dns.google/resolve")]}var nd=Kt(rd(),1);var ol=class{lru;constructor(e){this.lru=(0,nd.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return ui({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:Qe[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??rl)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function od(r){return new ol(r)}var By=1e3,fi=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=od(e.cacheSize??By),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=ed())}async query(e,t={}){let n=li(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new fr("dns:cache",{detail:o})),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let u=await c(e,{...t,types:n});for(let f of u.Answer)this.cache.add(e,f);return u}catch(u){a.push(u),t.onProgress?.(new fr("dns:error",{detail:u}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Qe;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Qe||(Qe={}));function sd(r={}){return new fi(r)}var Ty=32,{code:Cy}=X("dnsaddr"),Dr=async function(e,t={}){let n=t.maxRecursiveDepth??Ty;if(n===0)throw new y("Max recursive depth reached","ERR_MAX_RECURSIVE_DEPTH_REACHED");let[,o]=e.stringTuples().find(([u])=>u===Cy)??[],i=await(t?.dns??sd()).query(`_dnsaddr.${o}`,{signal:t?.signal,types:[Qe.TXT]}),a=e.getPeerId(),c=[];for(let u of i.Answer){let f=u.data.split("=")[1];if(f==null||a!=null&&!f.includes(a))continue;let l=re(f);if(f.startsWith("/dnsaddr")){let h=await l.resolve({...t,maxRecursiveDepth:n-1});c.push(...h.map(g=>g.toString()))}else c.push(l.toString())}return c};var pd=Kt(dd(),1),pi=pd.default;var Vt;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(Vt||(Vt={}));var B;(function(r){r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",r.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(B||(B={}));var Oy={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{resolvers:{dnsaddr:Dr},addressSorter:_n},transportManager:{faultTolerance:Ht.FATAL_ALL}};async function md(r){let e=pi(Oy,r);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new y(Vt.ERR_PROTECTOR_REQUIRED,B.ERR_PROTECTOR_REQUIRED);if(!(await dn(e.privateKey.public.bytes,e.privateKey.bytes)).equals(e.peerId))throw new y("Private key doesn't match peer id",B.ERR_INVALID_KEY);return e}var gd=()=>{let r=new Error("Delay aborted");return r.name="AbortError",r},Uy=new WeakMap;function My({clearTimeout:r,setTimeout:e}={}){return(t,{value:n,signal:o}={})=>{if(o?.aborted)return Promise.reject(gd());let s,i,a,c=r??clearTimeout,u=()=>{c(s),a(gd())},f=()=>{o&&o.removeEventListener("abort",u)},l=new Promise((h,g)=>{i=()=>{f(),h(n)},a=g,s=(e??setTimeout)(i,t)});return o&&o.addEventListener("abort",u,{once:!0}),Uy.set(l,()=>{c(s),s=null,i()}),l}}var Fy=My(),yd=Fy;var mi=class{memoryStorage;points;duration;blockDuration;execEvenly;execEvenlyMinDelayMs;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.execEvenly=e.execEvenly??!1,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs??this.duration*1e3/this.points,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new il}async consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new y("Rate limit exceeded","ERR_RATE_LIMIT_EXCEEDED",i);if(this.execEvenly&&i.msBeforeNext>0&&!i.isFirstInDuration){let a=Math.ceil(i.msBeforeNext/(i.remainingPoints+2));a<this.execEvenlyMinDelayMs&&(a=i.consumedPoints*this.execEvenlyMinDelayMs),await yd(a)}return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},il=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};function gi(r){if(Ro(r))return{peerId:r,multiaddrs:[]};Array.isArray(r)||(r=[r]);let e;if(r.length>0){let t=r[0].getPeerId();e=t==null?void 0:we(t),r.forEach(n=>{if(!ar(n))throw new y("Invalid Multiaddr",B.ERR_INVALID_MULTIADDR);let o=n.getPeerId();if(o==null){if(e!=null)throw new y("Multiaddrs must all have the same peer id or have no peer id",B.ERR_INVALID_PARAMETERS)}else{let s=we(o);if(e==null||!e.equals(s))throw new y("Multiaddrs must all have the same peer id or have no peer id",B.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:r}}function ce(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var yi=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Bn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new yi(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new yi(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var al=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function wi(r={}){return Vy(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Vy(r,e){e=e??{};let t=e.onEnd,n=new Bn,o,s,i,a=ce(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((m,w)=>{s=x=>{s=null,n.push(x);try{m(r(n))}catch(b){w(b)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ce()})}},u=m=>s!=null?s(m):(n.push(m),o),f=m=>(n=new Bn,s!=null?s({error:m}):(n.push({error:m}),o)),l=m=>{if(i)return o;if(e?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:m})},h=m=>i?o:(i=!0,m!=null?f(m):u({done:!0})),g=()=>(n=new Bn,h(),{done:!0}),d=m=>(h(m),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:g,throw:d,push:l,end:h,get readableLength(){return n.size},onEmpty:async m=>{let w=m?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let x,b;w!=null&&(x=new Promise((A,v)=>{b=()=>{v(new al)},w.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&w!=null&&w?.removeEventListener("abort",b)}}},t==null)return o;let p=o;return o={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),t!=null&&(t(m),t=void 0),{done:!0}},return(){return p.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(m){return p.end(m),t!=null&&(t(m),t=void 0),o},get readableLength(){return p.readableLength},onEmpty:m=>p.onEmpty(m)},o}var cl=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function Tn(r,e,t,n){let o=new cl(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((s,i)=>{function a(){t?.removeEventListener("abort",f),r.removeEventListener(e,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,u)}let c=l=>{try{if(n?.filter?.(l)===!1)return}catch(h){a(),i(h);return}a(),s(l)},u=l=>{a(),i(l.detail)},f=()=>{a(),i(o)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,u)})}var bi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function hr(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new bi(t?.errorMessage,t?.errorCode));let n,o=new bi(t?.errorMessage,t?.errorCode);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Ei=class{deferred;signal;where;constructor(e,t){this.signal=t,this.deferred=ce(),this.where=e,this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new $t)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Ky(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var xi=class{id;fn;options;priority;recipients;status;timeline;controller;constructor(e,t,n=0){this.id=Ky(),this.status="queued",this.fn=e,this.priority=n,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,ue(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new $t),this.cleanup())}async join(e={}){let t=new Ei(new Error("where").stack,e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await hr(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Hy(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Cn=class extends At{concurrency;queue;pending;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){if(this.queue[this.size-1]?.priority>=e.priority){this.queue.push(e);return}let t=Hy(this.queue,e,(n,o)=>o.priority-n.priority);this.queue.splice(t,0,e)}async add(e,t){t?.signal?.throwIfAborted();let n=new xi(e,t,t?.priority),o=n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s});return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new $t)}),this.clear()}async onEmpty(e){this.size!==0&&await Tn(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Tn(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Tn(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=wi({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail)},s=c=>{n(c.detail)},i=()=>{n()},a=()=>{n(new y("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",o),this.addEventListener("error",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var vi=class extends Cn{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var Ai="last-dial-failure";var Ri=5,_i=100,Si=50,wd=1e3*60*7;var Pr={minConnections:Ri,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:wd,autoDialDiscoveredPeersDebounce:10},Ii=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,t){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=t.minConnections??Pr.minConnections,this.autoDialPriority=t.autoDialPriority??Pr.autoDialPriority,this.autoDialIntervalMs=t.autoDialInterval??Pr.autoDialInterval,this.autoDialMaxQueueLength=t.maxQueueLength??Pr.maxQueueLength,this.autoDialPeerRetryThresholdMs=t.autoDialPeerRetryThreshold??Pr.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=t.autoDialDiscoveredPeersDebounce??Pr.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new vi({concurrency:t.autoDialConcurrency??Pr.autoDialConcurrency,metricName:"libp2p_autodial_queue",metrics:e.metrics}),this.queue.addEventListener("error",o=>{this.log.error("error during auto-dial",o.detail)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(o=>{this.log.error(o)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(o=>{this.log.error(o)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),t=e.size;if(t>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",t,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",t,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",t,this.minConnections);let n=new ft(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),o=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.has(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=o.sort(()=>Math.random()>.5?1:-1),i=new Xe;for(let u of s)i.has(u.id)||i.set(u.id,[...u.tags.values()].reduce((f,l)=>f+l.value,0));let c=s.sort((u,f)=>{let l=i.get(u.id)??0,h=i.get(f.id)??0;return l>h?-1:l<h?1:0}).filter(u=>{let f=u.metadata.get(Ai);if(f==null)return!0;let l=parseInt(K(f));return isNaN(l)?!0:Date.now()-l>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,o.length);for(let u of c)this.queue.add(async()=>{let f=this.connectionManager.getConnectionsMap().size;if(f>=this.minConnections){this.log("got enough connections now %d/%d",f,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(f=>{this.log.error("could not connect to peerStore stored peer",f)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var bd={maxConnections:_i,allow:[]},Bi=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,t={}){this.maxConnections=t.maxConnections??bd.maxConnections,this.allow=t.allow??bd.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),t=e.length,n=Math.max(t-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",t,this.maxConnections),t<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",t,this.maxConnections,n);let o=new Xe;for(let a of e){let c=a.remotePeer;if(!o.has(c)){o.set(c,0);try{let u=await this.peerStore.get(c);o.set(c,[...u.tags.values()].reduce((f,l)=>f+l.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=o.get(a.remotePeer)??0,f=o.get(c.remotePeer)??0;if(u>f)return 1;if(u<f)return-1;let l=a.timeline.open,h=c.timeline.open;return l<h?1:l>h?-1:0}),i=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||i.push(a),i.length===n)break;await Promise.all(i.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:i})}};function yo(r){let e=new globalThis.AbortController;function t(){e.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}async function Ed(r,e){let t=!1;for(let o of En.keys())if(t=r.protoNames().includes(o),t)break;if(!t)return[r];let n=await r.resolve(e);return e.log("resolved %s to",r,n.map(o=>o.toString())),n}var wo={addressSorter:_n,maxParallelDials:Si,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:5e3,resolvers:{dnsaddr:Dr}},Ti=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;shutDownController;connections;log;constructor(e,t={}){this.addressSorter=t.addressSorter??wo.addressSorter,this.maxPeerAddrsToDial=t.maxPeerAddrsToDial??wo.maxPeerAddrsToDial,this.maxDialQueueLength=t.maxDialQueueLength??wo.maxDialQueueLength,this.dialTimeout=t.dialTimeout??wo.dialTimeout,this.connections=t.connections??new Xe,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.shutDownController=new AbortController,ue(1/0,this.shutDownController.signal);for(let[n,o]of Object.entries(t.resolvers??{}))En.set(n,o);this.queue=new Cn({concurrency:t.maxParallelDials??wo.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("error",n=>{this.log.error("error in dial queue",n.detail)})}start(){this.shutDownController=new AbortController,ue(1/0,this.shutDownController.signal)}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,t={}){let{peerId:n,multiaddrs:o}=gi(e),s=Array.from(this.connections.values()).flat().find(a=>t.force===!0?!1:a.remotePeer.equals(n)?!0:o.find(c=>c.equals(a.remoteAddr)));if(s!=null)return this.log("already connected to %a",s.remoteAddr),s;let i=this.queue.queue.find(a=>{if(n?.equals(a.options.peerId)===!0)return!0;let c=a.options.multiaddrs;if(c==null)return!1;for(let u of o)if(c.has(u.toString()))return!0;return!1});if(i!=null){this.log("joining existing dial target for %p",n);for(let a of o)i.options.multiaddrs.add(a.toString());return i.join(t)}if(this.queue.size>=this.maxDialQueueLength)throw new y("Dial queue is full","ERR_DIAL_QUEUE_FULL");return this.log("creating dial target for %p",n,o.map(a=>a.toString())),this.queue.add(async a=>{let c=this.createDialAbortController(a?.signal),u;try{u=await this.calculateMultiaddrs(n,a?.multiaddrs,{...a,signal:c}),u.map(({multiaddr:f})=>f.toString()).forEach(f=>{a?.multiaddrs.add(f)})}catch(f){throw c.clear(),f}try{let f=0,l=[];for(let h of u){if(f===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",f,n),new y("Peer had more than maxPeerAddrsToDial",B.ERR_TOO_MANY_ADDRESSES);f++;try{let g=await this.components.transportManager.dial(h.multiaddr,{...a,signal:c});return this.log("dial to %a succeeded",h.multiaddr),g}catch(g){if(this.log.error("dial failed to %a",h.multiaddr,g),n!=null)try{await this.components.peerStore.patch(n,{metadata:{[Ai]:D(Date.now().toString())}})}catch(d){this.log.error("could not update last dial failure key for %p",n,d)}if(c.aborted)throw new y(g.message,So);l.push(g)}}throw l.length===1?l[0]:new _o(l,"All multiaddr dials failed",B.ERR_TRANSPORT_DIAL_FAILED)}finally{c.clear()}},{peerId:n,priority:t.priority,multiaddrs:new Set(o.map(a=>a.toString())),signal:t.signal})}createDialAbortController(e){let t=yo([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);return ue(1/0,t),t}async calculateMultiaddrs(e,t=new Set,n={}){let o=[...t].map(l=>({multiaddr:re(l),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new y("Tried to dial self",B.ERR_DIALED_SELF);if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new y("The dial request is blocked by gater.allowDialPeer",B.ERR_PEER_DIAL_INTERCEPTED);if(o.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.components.peerStore.get(e);o.push(...l.addresses),this.log("loaded multiaddrs for %p",e,o.map(({multiaddr:h})=>h.toString()))}catch(l){if(l.code!==B.ERR_NOT_FOUND)throw l}}if(o.length===0){this.log("looking up multiaddrs for %p in the peer routing",e);try{let l=await this.components.peerRouting.findPeer(e);this.log("found multiaddrs for %p in the peer routing",e,o.map(({multiaddr:h})=>h.toString())),o.push(...l.multiaddrs.map(h=>({multiaddr:h,isCertified:!1})))}catch(l){l.code!==B.ERR_NO_ROUTERS_AVAILABLE&&this.log.error("looking up multiaddrs for %p in the peer routing failed",e,l)}}}let s=(await Promise.all(o.map(async l=>{let h=await Ed(l.multiaddr,{dns:this.components.dns,...n,log:this.log});return h.length===1&&h[0].equals(l.multiaddr)?l:h.map(g=>({multiaddr:g,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;s=s.map(h=>h.multiaddr.protos().pop()?.path===!0?h:h.multiaddr.getPeerId()==null?{multiaddr:h.multiaddr.encapsulate(l),isCertified:h.isCertified}:h)}let i=s.filter(l=>{if(this.components.transportManager.dialTransportForMultiaddr(l.multiaddr)==null)return!1;let h=l.multiaddr.getPeerId();return e!=null&&h!=null?e.equals(h):!0}),a=new Map;for(let l of i){let h=l.multiaddr.toString(),g=a.get(h);if(g!=null){g.isCertified=g.isCertified||l.isCertified||!1;continue}a.set(h,l)}let c=[...a.values()];if(c.length===0)throw new y("The dial request has no valid addresses",B.ERR_NO_VALID_ADDRESSES);let u=[];for(let l of c)this.components.connectionGater.denyDialMultiaddr!=null&&await this.components.connectionGater.denyDialMultiaddr(l.multiaddr)||u.push(l);let f=u.sort(this.addressSorter);if(f.length===0)throw new y("The connection gater denied all addresses in the dial request",B.ERR_NO_VALID_ADDRESSES);return this.log.trace("addresses for %p before filtering",e??"unknown peer",s.map(({multiaddr:l})=>l.toString())),this.log.trace("addresses for %p after filtering",e??"unknown peer",f.map(({multiaddr:l})=>l.toString())),f}async isDialable(e,t={}){Array.isArray(e)||(e=[e]);try{let n=await this.calculateMultiaddrs(void 0,new Set(e.map(o=>o.toString())),t);return t.runOnTransientConnection===!1?n.find(o=>!go.matches(o.multiaddr))!=null:!0}catch(n){this.log.trace("error calculating if multiaddr(s) were dialable",n)}return!1}};var Yy=50,Or={minConnections:Ri,maxConnections:_i,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Ci=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,t={}){this.maxConnections=t.maxConnections??Or.maxConnections;let n=t.minConnections??Or.minConnections;if(this.maxConnections<n)throw new y("Connection Manager maxConnections must be greater than minConnections",B.ERR_INVALID_PARAMETERS);this.connections=new Xe,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(t.allow??[]).map(o=>re(o)),this.deny=(t.deny??[]).map(o=>re(o)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=t.maxIncomingPendingConnections??Or.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new mi({points:t.inboundConnectionThreshold??Or.inboundConnectionThreshold,duration:1}),this.autoDial=new Ii({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:t.autoDialConcurrency??Or.autoDialConcurrency,autoDialPriority:t.autoDialPriority??Or.autoDialPriority,maxQueueLength:t.autoDialMaxQueueLength??Or.autoDialMaxQueueLength}),this.connectionPruner=new Bi({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Ti(e,{addressSorter:t.addressSorter??_n,maxParallelDials:t.maxParallelDials??Si,maxDialQueueLength:t.maxDialQueueLength??500,maxPeerAddrsToDial:t.maxPeerAddrsToDial??25,dialTimeout:t.dialTimeout??5e3,resolvers:t.resolvers??{dnsaddr:Dr},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let t of this.connections.values())for(let n of t)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let t of this.connections.values())for(let n of t)for(let o of n.streams){let s=`${o.direction} ${o.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let o of n){let s={};for(let i of o.streams){let a=`${i.direction} ${i.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[i,a]of Object.entries(s))e[i]=e[i]??[],e[i].push(a)}let t={};for(let[n,o]of Object.entries(e)){o=o.sort((i,a)=>i-a);let s=Math.floor(o.length*.9);t[n]=o[s]}return t}}),this.dialQueue.start(),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[t=>t.tags.has(Ol)]});await Promise.all(e.map(async t=>{await this.openConnection(t.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let t of this.connections.values())for(let n of t)e.push((async()=>{try{await n.close()}catch(o){this.log.error(o)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(t=>{this.log.error(t)})}async _onConnect(e){let{detail:t}=e;if(!this.started){await t.close();return}let n=t.remotePeer,o=this.connections.get(n),s=!1;o!=null?o.push(t):(s=!0,this.connections.set(n,[t])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:t.remotePeer})}onDisconnect(e){let{detail:t}=e;if(!this.started)return;let n=t.remotePeer,o=this.connections.get(n);o!=null&&o.length>1?(o=o.filter(s=>s.id!==t.id),this.connections.set(n,o)):o!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:t.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let t=[];for(let n of this.connections.values())t=t.concat(n);return t}getConnectionsMap(){return this.connections}async openConnection(e,t={}){if(!this.isStarted())throw new y("Not started",B.ERR_NODE_NOT_STARTED);t.signal?.throwIfAborted();let{peerId:n}=gi(e);if(n!=null&&t.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let o=await this.dialQueue.dial(e,{...t,priority:t.priority??Yy}),s=this.connections.get(o.remotePeer);s==null&&(s=[],this.connections.set(o.remotePeer,s));let i=!1;for(let a of s)a.id===o.id&&(i=!0);return i||s.push(o),o}async closeConnections(e,t={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async o=>{try{await o.close(t)}catch(s){o.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(o=>e.remoteAddr.toString().startsWith(o.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(o=>e.remoteAddr.toString().startsWith(o.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let o=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(o,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,o),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){let e={queued:"queued",running:"active",errored:"error",complete:"success"};return this.dialQueue.queue.queue.map(t=>({id:t.id,status:e[t.status],peerId:t.options.peerId,multiaddrs:[...t.options.multiaddrs].map(n=>re(n))}))}async isDialable(e,t={}){return this.dialQueue.isDialable(e,t)}};function Wy(r){return r[Symbol.asyncIterator]!=null}function jy(...r){let e=[];for(let t of r)Wy(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=wi({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var bo=jy;var Ni=class{routers;started;components;constructor(e,t){this.routers=t.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,t={}){if(this.routers.length===0)throw new y("No content routers available",B.ERR_NO_ROUTERS_AVAILABLE);let n=this,o=new ft;for await(let s of bo(...n.routers.map(i=>i.findProviders(e,t))))s!=null&&(s.multiaddrs.length>0&&await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!o.has(s.id)&&(o.add(s.id),yield s))}async provide(e,t={}){if(this.routers.length===0)throw new y("No content routers available",B.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,t)}))}async put(e,t,n){if(!this.isStarted())throw new y(Vt.NOT_STARTED_YET,B.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async o=>{await o.put(e,t,n)}))}async get(e,t){if(!this.isStarted())throw new y(Vt.NOT_STARTED_YET,B.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,t)))}};var Li=globalThis.CustomEvent??Event;async function*ml(r,e={}){let t=e.concurrency??1/0;t<1&&(t=1/0);let n=e.ordered==null?!1:e.ordered,o=new EventTarget,s=[],i=ce(),a=ce(),c=!1,u,f=!1;o.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let d of r){if(s.length===t&&(i=ce(),await i.promise),f)break;let p={done:!1};s.push(p),d().then(m=>{p.done=!0,p.ok=!0,p.value=m,o.dispatchEvent(new Li("task-complete"))},m=>{p.done=!0,p.err=m,o.dispatchEvent(new Li("task-complete"))})}c=!0,o.dispatchEvent(new Li("task-complete"))}catch(d){u=d,o.dispatchEvent(new Li("task-complete"))}});function l(){return n?s[0]?.done:!!s.find(d=>d.done)}function*h(){for(;s.length>0&&s[0].done;){let d=s[0];if(s.shift(),d.ok)yield d.value;else throw f=!0,i.resolve(),d.err;i.resolve()}}function*g(){for(;l();)for(let d=0;d<s.length;d++)if(s[d].done){let p=s[d];if(s.splice(d,1),d--,p.ok)yield p.value;else throw f=!0,i.resolve(),p.err;i.resolve()}}for(;;){if(l()||(a=ce(),await a.promise),u!=null)throw u;if(n?yield*h():yield*g(),c&&s.length===0)break}}var ki=class{log;peerId;peerStore;routers;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=t.routers??[]}async findPeer(e,t){if(this.routers.length===0)throw new y("No peer routers available",B.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new y("Should not try to find self",B.ERR_FIND_SELF);let n=this,o=bo(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error(i)}}()));for await(let s of o)if(s!=null)return s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),s;throw new y(Vt.NOT_FOUND,B.ERR_NOT_FOUND)}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new y("No peer routers available",B.ERR_NO_ROUTERS_AVAILABLE);let n=this,o=new ft;for await(let s of ml(async function*(){let i=bo(...n.routers.map(a=>a.getClosestPeers(e,t)));for await(let a of i)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...t,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs",c);return}return a}}()))s!=null&&(s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!o.has(s.id)&&(o.add(s.id),yield s))}};var Di=class extends At{peerRouting;log;walking;walkers;shutdownController;walkController;needNext;constructor(e){super(),this.log=e.logger.forComponent("libp2p:random-walk"),this.peerRouting=e.peerRouting,this.walkers=0,this.walking=!1,this.shutdownController=new AbortController,ue(1/0,this.shutdownController.signal)}start(){this.shutdownController=new AbortController,ue(1/0,this.shutdownController.signal)}stop(){this.shutdownController.abort()}async*walk(e){this.walking||this.startWalk(),this.walkers++;let t=yo([this.shutdownController.signal,e?.signal]);ue(1/0,t);try{for(;;)this.needNext?.resolve(),this.needNext=ce(),yield(await Tn(this,"walk:peer",t,{errorEvent:"walk:error"})).detail}finally{t.clear(),this.walkers--,this.walkers===0&&(this.walkController?.abort(),this.walkController=void 0)}}startWalk(){this.walking=!0,this.walkController=new AbortController,ue(1/0,this.walkController.signal);let e=yo([this.walkController.signal,this.shutdownController.signal]);ue(1/0,e);let t=Date.now(),n=0;Promise.resolve().then(async()=>{for(this.log("start walk");this.walkers>0;)try{for await(let o of this.peerRouting.getClosestPeers(yt(32),{signal:e}))e.throwIfAborted(),this.log("found peer %p",o.id),n++,this.safeDispatchEvent("walk:peer",{detail:o}),this.walkers===1&&this.needNext!=null&&await hr(this.needNext.promise,e)}catch(o){this.log.error("randomwalk errored",o),this.safeDispatchEvent("walk:error",{detail:o})}}).catch(o=>{this.log.error("randomwalk errored",o)}).finally(()=>{this.log("finished walk, found %d peers after %dms",n,Date.now()-t),this.walking=!1})}};var gl=32,yl=64,Pi=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let t=this.handlers.get(e);if(t==null)throw new y(`No handler registered for protocol ${e}`,B.ERR_NO_HANDLER_FOR_PROTOCOL);return t}getTopologies(e){let t=this.topologies.get(e);return t==null?[]:[...t.values()]}async handle(e,t,n){if(this.handlers.has(e))throw new y(`Handler already registered for protocol ${e}`,B.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let o=pi.bind({ignoreUndefined:!0})({maxInboundStreams:gl,maxOutboundStreams:yl},n);this.handlers.set(e,{handler:t,options:o}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,t){if(t==null)throw new y("invalid topology",B.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,o=this.topologies.get(e);return o==null&&(o=new Map,this.topologies.set(e,o)),o.set(n,t),n}unregister(e){for(let[t,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(t))}_onDisconnect(e){let t=e.detail;this.components.peerStore.get(t).then(n=>{for(let o of n.protocols){let s=this.topologies.get(o);if(s!=null)for(let i of s.values())i.onDisconnect?.(t)}}).catch(n=>{n.code!==B.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",t,n)})}_onPeerUpdate(e){let{peer:t,previous:n}=e.detail,o=(n?.protocols??[]).filter(s=>!t.protocols.includes(s));for(let s of o){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())a.onDisconnect?.(t.id)}}_onPeerIdentify(e){let t=e.detail.protocols,n=e.detail.connection,o=e.detail.peerId;for(let s of t){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(o,n)}}};var wl=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function xd(r){let{name:e,metrics:t}=r,n;return t!=null?n=new wl({name:e,metrics:t}):n=new Map,n}var Oi=class{log;components;transports;listeners;faultTolerance;started;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=xd({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=t.faultTolerance??Ht.FATAL_ALL}add(e){let t=e[Symbol.toStringTag];if(t==null)throw new y("Transport must have a valid tag",B.ERR_INVALID_KEY);if(this.transports.has(t))throw new y(`There is already a transport with the tag ${t}`,B.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",t),this.transports.set(t,e),this.listeners.has(t)||this.listeners.set(t,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[t,n]of this.listeners)for(this.log("closing listeners for %s",t);n.length>0;){let o=n.pop();o!=null&&e.push(o.close())}await Promise.all(e),this.log("all listeners closed");for(let t of this.listeners.keys())this.listeners.set(t,[]);this.started=!1}async dial(e,t){let n=this.dialTransportForMultiaddr(e);if(n==null)throw new y(`No transport available for address ${String(e)}`,B.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...t,upgrader:this.components.upgrader})}catch(o){throw o.code==null&&(o.code=B.ERR_TRANSPORT_DIAL_FAILED),o}}getAddrs(){let e=[];for(let t of this.listeners.values())for(let n of t)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}dialTransportForMultiaddr(e){for(let t of this.transports.values())if(t.dialFilter([e]).length>0)return t}listenTransportForMultiaddr(e){for(let t of this.transports.values())if(t.listenFilter([e]).length>0)return t}async listen(e){if(!this.isStarted())throw new y("Not started",B.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let t=[];for(let[n,o]of this.transports.entries()){let s=o.listenFilter(e),i=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let f=o.createListener({upgrader:this.components.upgrader}),l=this.listeners.get(n)??[];l==null&&(l=[],this.listeners.set(n,l)),l.push(f),f.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:f})}),f.addEventListener("close",()=>{let h=l.findIndex(g=>g===f);l.splice(h,1),this.components.events.safeDispatchEvent("transport:close",{detail:f})}),i.push(f.listen(u))}if(i.length===0){t.push(n);continue}if((await Promise.allSettled(i)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==Ht.NO_FATAL)throw new y(`Transport (${n}) could not listen on any available address`,B.ERR_NO_VALID_ADDRESSES)}if(t.length===this.transports.size){let n=`no valid addresses were provided for transports [${t.join(", ")}]`;if(this.faultTolerance===Ht.FATAL_ALL)throw new y(n,B.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let t=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);t.length>0;){let o=t.pop();o!=null&&n.push(o.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let t of this.transports.keys())e.push(this.remove(t));await Promise.all(e)}};var Ce="/multistream/1.0.0";var bl=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=ce(),this.haveNext=ce()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=ce(),e}async throw(e){return this.ended=!0,e!=null&&this.haveNext.reject(e),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return await this._push(void 0),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");if(this.nextResult!=null&&(await this.readNext.promise,this.nextResult!=null))throw new Error("NeedNext promise resolved but nextResult was not consumed");e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=ce(),await hr(this.readNext.promise,t?.signal,t)}};function vd(){return new bl}var Ui=class extends Error{code;constructor(e,t){super(e),this.code=t}},El=class extends Ui{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function Ad(r,e){let t=vd();r.sink(t).catch(async i=>{await t.end(i)}),r.sink=async i=>{for await(let a of i)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let o=new be;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new El("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:h}=await Promise.race([n.next(),u]);return l===!0?new be:h}for(;o.byteLength<i;){let{value:l,done:h}=await Promise.race([n.next(),u]);if(h===!0)throw new Ui("unexpected end of input","ERR_UNEXPECTED_EOF");o.append(l)}let f=o.sublist(0,i);return o.consume(i),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(i,a)=>{a?.signal?.throwIfAborted(),i instanceof Uint8Array?await t.push(i,a):await t.push(i.subarray(),a)},unwrap:()=>{if(o.byteLength>0){let i=r.source;r.source=async function*(){e?.yieldBytes===!1?yield o:yield*o,yield*i}()}return r}}}var Mi=class extends Error{code;constructor(e,t){super(e),this.code=t}};function Eo(r,e={}){let t=Ad(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=pe(e.maxDataLength));let n=e?.lengthDecoder??it,o=e?.lengthEncoder??De;return{read:async i=>{let a=-1,c=new be;for(;;){c.append(await t.read(1,i));try{a=n(c)}catch(u){if(u instanceof RangeError)continue;throw u}if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Mi("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Mi("message length too long","ERR_MSG_DATA_TOO_LONG");return t.read(a,i)},write:async(i,a)=>{await t.write(new be(o(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new be(...i.flatMap(u=>[o(u.byteLength),u]));await t.write(c,a)},unwrap:()=>t.unwrap()}}var Xy=D(`
8
+ `);async function Ur(r,e,t){await r.write(e,t)}async function Rd(r,e,t){await r.writeV(e,t)}async function Zy(r,e){let t=await r.read(e);if(t.byteLength===0||t.get(t.byteLength-1)!==Xy[0])throw e.log.error("Invalid mss message - missing newline",t),new y("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return t.sublist(0,-1)}async function dr(r,e){let t=await Zy(r,e);return K(t.subarray())}async function xo(r,e,t){if(e=Array.isArray(e)?[...e]:[e],e.length===1&&t.negotiateFully===!1)return Qy(r,e[0],t);let n=Eo(r,{...t,maxDataLength:1024}),o=e.shift();if(o==null)throw new Error("At least one protocol must be specified");t.log.trace('select: write ["%s", "%s"]',Ce,o);let s=D(`${Ce}
9
9
  `),i=D(`${o}
10
- `);await Ad(n,[s,i],t),t.log.trace("select: reading multistream-select header");let a=await ur(n,t);if(t.log.trace('select: read "%s"',a),a===Be&&(t.log.trace("select: reading protocol response"),a=await ur(n,t),t.log.trace('select: read "%s"',a)),a===o)return{stream:n.unwrap(),protocol:o};for(let c of e){t.log.trace('select: write "%s"',c),await Or(n,D(`${c}
11
- `),t),t.log.trace("select: reading protocol response");let u=await ur(n,t);if(t.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new y("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}function Zy(r,e,t){let n=r.sink.bind(r),o=r.source,s=!1,i=!1,a=pe(),c=!1,u=!1,f=pe(),l=!1,h=!1,g=pe(),d=wo({sink:n,source:o},{...t,maxDataLength:1024});r.sink=async x=>{let{sink:b}=d.unwrap();await b(async function*(){let A=!1;for await(let v of x){if(u&&await f.promise,c)yield v;else{u=!0,t.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',Be,e,v.byteLength);let S=`${e}
12
- `;yield new we(Uint8Array.from([19]),D(`${Be}
13
- `),Le(S.length),D(S),v).subarray(),t.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',Be,e,v.byteLength),c=!0,u=!1,f.resolve(),p().catch(N=>{t.log.error("could not finish optimistic protocol negotiation of %s",e,N)})}A=!0}A||await p()}())};async function p(){if(i){t.log.trace("optimistic: already negotiating %s stream",e),await a.promise;return}i=!0;try{c||(t.log.trace("optimistic: doing send protocol for %s stream",e),await m()),l||(t.log.trace("optimistic: doing read protocol for %s stream",e),await w())}finally{i=!1,s=!0,a.resolve()}}async function m(){if(u){await f.promise;return}u=!0;try{t.log.trace('optimistic: write ["%s", "%s", data] in source',Be,e),await d.writeV([D(`${Be}
10
+ `);await Rd(n,[s,i],t),t.log.trace("select: reading multistream-select header");let a=await dr(n,t);if(t.log.trace('select: read "%s"',a),a===Ce&&(t.log.trace("select: reading protocol response"),a=await dr(n,t),t.log.trace('select: read "%s"',a)),a===o)return{stream:n.unwrap(),protocol:o};for(let c of e){t.log.trace('select: write "%s"',c),await Ur(n,D(`${c}
11
+ `),t),t.log.trace("select: reading protocol response");let u=await dr(n,t);if(t.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new y("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}function Qy(r,e,t){let n=r.sink.bind(r),o=r.source,s=!1,i=!1,a=ce(),c=!1,u=!1,f=ce(),l=!1,h=!1,g=ce(),d=Eo({sink:n,source:o},{...t,maxDataLength:1024});r.sink=async x=>{let{sink:b}=d.unwrap();await b(async function*(){let A=!1;for await(let v of x){if(u&&await f.promise,c)yield v;else{u=!0,t.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',Ce,e,v.byteLength);let S=`${e}
12
+ `;yield new be(Uint8Array.from([19]),D(`${Ce}
13
+ `),De(S.length),D(S),v).subarray(),t.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',Ce,e,v.byteLength),c=!0,u=!1,f.resolve(),p().catch(C=>{t.log.error("could not finish optimistic protocol negotiation of %s",e,C)})}A=!0}A||await p()}())};async function p(){if(i){t.log.trace("optimistic: already negotiating %s stream",e),await a.promise;return}i=!0;try{c||(t.log.trace("optimistic: doing send protocol for %s stream",e),await m()),l||(t.log.trace("optimistic: doing read protocol for %s stream",e),await w())}finally{i=!1,s=!0,a.resolve()}}async function m(){if(u){await f.promise;return}u=!0;try{t.log.trace('optimistic: write ["%s", "%s", data] in source',Ce,e),await d.writeV([D(`${Ce}
14
14
  `),D(`${e}
15
- `)]),t.log.trace('optimistic: wrote ["%s", "%s", data] in source',Be,e)}finally{c=!0,u=!1,f.resolve()}}async function w(){if(h){await g.promise;return}h=!0;try{t.log.trace("optimistic: reading multistream select header");let x=await ur(d,t);if(t.log.trace('optimistic: read multistream select header "%s"',x),x===Be&&(x=await ur(d,t)),t.log.trace('optimistic: read protocol "%s", expecting "%s"',x,e),x!==e)throw new y("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}finally{l=!0,h=!1,g.resolve()}}if(r.source=async function*(){await p(),t.log.trace('optimistic: reading data from "%s" stream',e),yield*d.unwrap().source}(),r.closeRead!=null){let x=r.closeRead.bind(r);r.closeRead=async b=>{s||await p().catch(A=>{t.log.error("could not negotiate protocol before close read",A)}),await x(b)}}if(r.closeWrite!=null){let x=r.closeWrite.bind(r);r.closeWrite=async b=>{s||await p().catch(A=>{t.log.error("could not negotiate protocol before close write",A)}),await x(b)}}if(r.close!=null){let x=r.close.bind(r);r.close=async b=>{let A=[];u&&A.push(f.promise),h&&A.push(g.promise),A.length>0?await Bn(Promise.all(A),b?.signal):(s=!0,i=!1,a.resolve()),await x(b)}}return{stream:r,protocol:e}}function Ui(r){return r[Symbol.asyncIterator]!=null}var Mi=r=>{let e=he(r),t=Ne(e);return Le(r,t),Mi.bytes=e,t};Mi.bytes=0;function Fi(r,e){e=e??{};let t=e.lengthEncoder??Mi;function*n(o){let s=t(o.byteLength);s instanceof Uint8Array?yield s:yield*s,o instanceof Uint8Array?yield o:yield*o}return Ui(r)?async function*(){for await(let o of r)yield*n(o)}():function*(){for(let o of r)yield*n(o)}()}Fi.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Mi;return new we(t(r.byteLength),r)};var Nn=Ft(Gc(),1);var Qy=8,Jy=1024*1024*4,Ur;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Ur||(Ur={}));var xl=r=>{let e=it(r);return xl.bytes=he(e),e};xl.bytes=0;function El(r,e){let t=new we,n=Ur.LENGTH,o=-1,s=e?.lengthDecoder??xl,i=e?.maxLengthLength??Qy,a=e?.maxDataLength??Jy;function*c(){for(;t.byteLength>0;){if(n===Ur.LENGTH)try{if(o=s(t),o<0)throw(0,Nn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>a)throw(0,Nn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;t.consume(u),e?.onLength!=null&&e.onLength(o),n=Ur.DATA}catch(u){if(u instanceof RangeError){if(t.byteLength>i)throw(0,Nn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Ur.DATA){if(t.byteLength<o)break;let u=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(u),yield u,n=Ur.LENGTH}}}return Ui(r)?async function*(){for await(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw(0,Nn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw(0,Nn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}El.fromReader=(r,e)=>{let t=1,n=async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}}();return El(n,{...e??{},onLength:s=>{t=s}})};async function Eo(r,e,t){e=Array.isArray(e)?e:[e],t.log.trace("handle: available protocols %s",e);let n=wo(r,{...t,maxDataLength:1024,maxLengthLength:2});for(;;){t.log.trace("handle: reading incoming string");let o=await ur(n,t);if(t.log.trace('handle: read "%s"',o),o===Be){t.log.trace('handle: respond with "%s" for "%s"',Be,o),await Or(n,D(`${Be}
16
- `),t),t.log.trace('handle: responded with "%s" for "%s"',Be,o);continue}if(e.includes(o))return t.log.trace('handle: respond with "%s" for "%s"',o,o),await Or(n,D(`${o}
17
- `),t),t.log.trace('handle: responded with "%s" for "%s"',o,o),{stream:n.unwrap(),protocol:o};if(o==="ls"){let s=new we(...e.map(i=>Fi.single(D(`${i}
15
+ `)]),t.log.trace('optimistic: wrote ["%s", "%s", data] in source',Ce,e)}finally{c=!0,u=!1,f.resolve()}}async function w(){if(h){await g.promise;return}h=!0;try{t.log.trace("optimistic: reading multistream select header");let x=await dr(d,t);if(t.log.trace('optimistic: read multistream select header "%s"',x),x===Ce&&(x=await dr(d,t)),t.log.trace('optimistic: read protocol "%s", expecting "%s"',x,e),x!==e)throw new y("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}finally{l=!0,h=!1,g.resolve()}}if(r.source=async function*(){await p(),t.log.trace('optimistic: reading data from "%s" stream',e),yield*d.unwrap().source}(),r.closeRead!=null){let x=r.closeRead.bind(r);r.closeRead=async b=>{s||await p().catch(A=>{t.log.error("could not negotiate protocol before close read",A)}),await x(b)}}if(r.closeWrite!=null){let x=r.closeWrite.bind(r);r.closeWrite=async b=>{s||await p().catch(A=>{t.log.error("could not negotiate protocol before close write",A)}),await x(b)}}if(r.close!=null){let x=r.close.bind(r);r.close=async b=>{let A=[];u&&A.push(f.promise),h&&A.push(g.promise),A.length>0?await hr(Promise.all(A),b?.signal):(s=!0,i=!1,a.resolve()),await x(b)}}return{stream:r,protocol:e}}function Fi(r){return r[Symbol.asyncIterator]!=null}var Vi=r=>{let e=pe(r),t=Le(e);return De(r,t),Vi.bytes=e,t};Vi.bytes=0;function Ki(r,e){e=e??{};let t=e.lengthEncoder??Vi;function*n(o){let s=t(o.byteLength);s instanceof Uint8Array?yield s:yield*s,o instanceof Uint8Array?yield o:yield*o}return Fi(r)?async function*(){for await(let o of r)yield*n(o)}():function*(){for(let o of r)yield*n(o)}()}Ki.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Vi;return new be(t(r.byteLength),r)};var Nn=Kt(Yc(),1);var Jy=8,ew=1024*1024*4,Mr;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Mr||(Mr={}));var Al=r=>{let e=it(r);return Al.bytes=pe(e),e};Al.bytes=0;function vl(r,e){let t=new be,n=Mr.LENGTH,o=-1,s=e?.lengthDecoder??Al,i=e?.maxLengthLength??Jy,a=e?.maxDataLength??ew;function*c(){for(;t.byteLength>0;){if(n===Mr.LENGTH)try{if(o=s(t),o<0)throw(0,Nn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>a)throw(0,Nn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;t.consume(u),e?.onLength!=null&&e.onLength(o),n=Mr.DATA}catch(u){if(u instanceof RangeError){if(t.byteLength>i)throw(0,Nn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Mr.DATA){if(t.byteLength<o)break;let u=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(u),yield u,n=Mr.LENGTH}}}return Fi(r)?async function*(){for await(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw(0,Nn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw(0,Nn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}vl.fromReader=(r,e)=>{let t=1,n=async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}}();return vl(n,{...e??{},onLength:s=>{t=s}})};async function vo(r,e,t){e=Array.isArray(e)?e:[e],t.log.trace("handle: available protocols %s",e);let n=Eo(r,{...t,maxDataLength:1024,maxLengthLength:2});for(;;){t.log.trace("handle: reading incoming string");let o=await dr(n,t);if(t.log.trace('handle: read "%s"',o),o===Ce){t.log.trace('handle: respond with "%s" for "%s"',Ce,o),await Ur(n,D(`${Ce}
16
+ `),t),t.log.trace('handle: responded with "%s" for "%s"',Ce,o);continue}if(e.includes(o))return t.log.trace('handle: respond with "%s" for "%s"',o,o),await Ur(n,D(`${o}
17
+ `),t),t.log.trace('handle: responded with "%s" for "%s"',o,o),{stream:n.unwrap(),protocol:o};if(o==="ls"){let s=new be(...e.map(i=>Ki.single(D(`${i}
18
18
  `))),D(`
19
- `));t.log.trace('handle: respond with "%s" for %s',e,o),await Or(n,s,t),t.log.trace('handle: responded with "%s" for %s',e,o);continue}t.log('handle: respond with "na" for "%s"',o),await Or(n,D(`na
20
- `),t),t.log('handle: responded with "na" for "%s"',o)}}var tw=500,vl=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:t,remotePeer:n,newStream:o,close:s,abort:i,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=t,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=o,this._close=s,this._abort=i,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[kl]=!0;get streams(){return this._getStreams()}async newStream(e,t){if(this.status==="closing")throw new y("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new y("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&t?.runOnTransientConnection!==!0)throw new y("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,t);return n.direction="outbound",n}async close(e={}){if(!(this.status==="closed"||this.status==="closing")){if(this.log("closing connection to %a",this.remoteAddr),this.status="closing",e.signal==null){let t=AbortSignal.timeout(tw);Oe(1/0,t),e={...e,signal:t}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async t=>t.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(t){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,t),this.abort(t)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(t=>{t.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function _d(r){return new vl(r)}var rw=3e4;function nw(r,e){try{let{options:t}=e.getHandler(r);return t.maxInboundStreams}catch(t){if(t.code!==B.ERR_NO_HANDLER_FOR_PROTOCOL)throw t}return pl}function ow(r,e,t={}){try{let{options:n}=e.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==B.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return t.maxOutboundStreams??ml}function Sd(r,e,t){let n=0;return t.streams.forEach(o=>{o.direction===e&&o.protocol===r&&n++}),n}var Vi=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,t){this.components=e,this.connectionEncryption=new Map,t.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,t.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=t.inboundUpgradeTimeout??2e3,this.events=e.events}async shouldBlockConnection(e,t,n){let o=this.components.connectionGater[n];if(o!==void 0&&await o(e,t))throw new y(`The multiaddr connection is blocked by gater.${n}`,B.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,t){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new y("connection denied",B.ERR_CONNECTION_DENIED);let o,s,i,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),f=()=>{e.abort(new y("inbound upgrade timeout",Ro))};u.addEventListener("abort",f,{once:!0}),Oe(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new y("The multiaddr connection is blocked by gater.acceptConnection",B.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let l=e;if(t?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(e.log("protecting the inbound connection"),l=await h.protect(e))}try{if(o=l,t?.skipEncryption!==!0){({conn:o,remotePeer:s,protocol:c}=await this._encryptInbound(l));let h={...l,...o};await this.shouldBlockConnection(s,h,"denyInboundEncryptedConnection")}else{let h=e.remoteAddr.getPeerId();if(h==null)throw new y("inbound connection that skipped encryption must have a peer id",B.ERR_INVALID_MULTIADDR);let g=ye(h);c="native",s=g}if(i=o,t?.muxerFactory!=null)a=t.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...l,...o},this.muxers);a=h.muxerFactory,i=h.stream}}catch(h){throw e.log.error("failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:i,muxerFactory:a,remotePeer:s,transient:t?.transient})}finally{u.removeEventListener("abort",f),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t){let n=e.remoteAddr.getPeerId(),o;n!=null&&(o=ye(n),await this.shouldBlockConnection(o,e,"denyOutboundConnection"));let s,i,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let f=e;if(t?.skipProtection!==!0){let l=this.components.connectionProtector;l!=null&&(f=await l.protect(e))}try{if(s=f,t?.skipEncryption!==!0){({conn:s,remotePeer:i,protocol:c}=await this._encryptOutbound(f,o));let l={...f,...s};await this.shouldBlockConnection(i,l,"denyOutboundEncryptedConnection")}else{if(o==null)throw new y("Encryption was skipped but no peer id was passed",B.ERR_INVALID_PEER);c="native",i=o}if(a=s,t?.muxerFactory!=null)u=t.muxerFactory;else if(this.muxers.size>0){let l=await this._multiplexOutbound({...f,...s},this.muxers);u=l.muxerFactory,a=l.stream}}catch(l){throw e.log.error("failed to upgrade outbound connection",l),await e.close(l),l}return await this.shouldBlockConnection(i,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:i,transient:t?.transient})}_createConnection(e){let{cryptoProtocol:t,direction:n,maConn:o,upgradedConn:s,remotePeer:i,muxerFactory:a,transient:c}=e,u,f,l;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:d=>{l!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:w}=await Eo(d,p,{log:d.log,yieldBytes:!1});if(l==null)return;l.log("incoming stream opened on %s",w);let x=nw(w,this.components.registrar);if(Sd(w,"inbound",l)===x){let A=new y(`Too many inbound protocol streams for protocol "${w}" - limit ${x}`,B.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(A),A}d.source=m.source,d.sink=m.sink,d.protocol=w,m.closeWrite!=null&&(d.closeWrite=m.closeWrite),m.closeRead!=null&&(d.closeRead=m.closeRead),m.close!=null&&(d.close=m.close),await this.components.peerStore.merge(i,{protocols:[w]}),this.components.metrics?.trackProtocolStream(d,l),this._onStream({connection:l,stream:d,protocol:w})}).catch(async p=>{l.log.error("error handling incoming stream id %s",d.id,p.message,p.code,p.stack),d.timeline.close==null&&await d.close()})}}),f=async(d,p={})=>{if(u==null)throw new y("Stream is not multiplexed",B.ERR_MUXER_UNAVAILABLE);l.log("starting new stream for protocols %s",d);let m=await u.newStream();l.log.trace("started new stream %s for protocols %s",m.id,d);try{if(p.signal==null){m.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d);let v=AbortSignal.timeout(rw);Oe(1/0,v),p={...p,signal:v}}m.log.trace("selecting protocol from protocols %s",d);let{stream:w,protocol:x}=await bo(m,d,{...p,log:m.log,yieldBytes:!0});m.log("selected protocol %s",x);let b=ow(x,this.components.registrar,p),A=Sd(x,"outbound",l);if(A>=b){let v=new y(`Too many outbound protocol streams for protocol "${x}" - ${A}/${b}`,B.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(v),v}return await this.components.peerStore.merge(i,{protocols:[x]}),m.source=w.source,m.sink=w.sink,m.protocol=x,w.closeWrite!=null&&(m.closeWrite=w.closeWrite),w.closeRead!=null&&(m.closeRead=w.closeRead),w.close!=null&&(m.close=w.close),this.components.metrics?.trackProtocolStream(m,l),m}catch(w){throw l.log.error("could not create new stream for protocols %s",d,w),m.timeline.close==null&&m.abort(w),w.code!=null?w:new y(String(w),B.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{l.log.error("error piping data through muxer",d)}));let h=o.timeline;o.timeline=new Proxy(h,{set:(...d)=>(l!=null&&d[1]==="close"&&d[2]!=null&&h.close==null&&(async()=>{try{l.status==="open"&&await l.close()}catch(p){l.log.error("error closing connection after timeline close",p)}finally{this.events.safeDispatchEvent("connection:close",{detail:l})}})().catch(p=>{l.log.error("error thrown while dispatching connection:close event",p)}),Reflect.set(...d))}),o.timeline.upgraded=Date.now();let g=()=>{throw new y("connection is not multiplexed",B.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=_d({remoteAddr:o.remoteAddr,remotePeer:i,status:"open",direction:n,timeline:o.timeline,multiplexer:u?.protocol,encryption:t,transient:c,logger:this.components.logger,newStream:f??g,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(l.log.trace("close muxer"),await u.close(d)),l.log.trace("close maconn"),await o.close(d),l.log.trace("closed maconn")},abort:d=>{o.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:l}),l}_onStream(e){let{connection:t,stream:n,protocol:o}=e,{handler:s,options:i}=this.components.registrar.getHandler(o);if(t.transient&&i.runOnTransientConnection!==!0)throw new y("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:t,stream:n})}async _encryptInbound(e){let t=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",t);try{let{stream:n,protocol:o}=await Eo(e,t,{log:e.log}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return e.log("encrypting inbound connection using",o),{...await s.secureInbound(this.components.peerId,n),protocol:o}}catch(n){throw e.log.error("encrypting inbound connection to %p failed",n),new y(n.message,B.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,t){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:o,protocol:s}=await bo(e,n,{log:e.log,yieldBytes:!0}),i=this.connectionEncryption.get(s);if(i==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %s",t,i),{...await i.secureOutbound(this.components.peerId,o,t),protocol:s}}catch(o){throw e.log.error("encrypting outbound connection to %p failed",o),new y(o.message,B.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,t){let n=Array.from(t.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:o,protocol:s}=await bo(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let i=t.get(s);return{stream:o,muxerFactory:i}}catch(o){throw e.log.error("error multiplexing outbound connection",o),new y(String(o),B.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,t){let n=Array.from(t.keys());e.log("inbound handling muxers %s",n);try{let{stream:o,protocol:s}=await Eo(e,n,{log:e.log}),i=t.get(s);return{stream:o,muxerFactory:i}}catch(o){throw e.log.error("error multiplexing inbound connection",o),new y(String(o),B.ERR_MUXER_UNAVAILABLE)}}};var Id="1.4.3",Bd="libp2p";var Al=class extends hr{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let t=new hr,n=t.dispatchEvent.bind(t);t.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new Yi(a.type,{detail:a.detail}));return c||u},Oe(1/0,t),this.peerId=e.peerId,this.logger=e.logger??Os(),this.log=this.logger.forComponent("libp2p"),this.services={};let o=this.components=Vh({peerId:e.peerId,privateKey:e.privateKey,nodeInfo:e.nodeInfo??{name:Bd,version:Id},logger:this.logger,events:t,datastore:e.datastore??new Qs,connectionGater:$h(e.connectionGater),dns:e.dns});this.peerStore=this.configureComponent("peerStore",new Xs(o,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),o.events.addEventListener("peer:update",a=>{if(a.detail.previous==null){let c={id:a.detail.peer.id,multiaddrs:a.detail.peer.addresses.map(u=>u.multiaddr)};o.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(o)),this.components.upgrader=new Vi(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Di(this.components,e.transportManager)),this.configureComponent("connectionManager",new Ti(this.components,e.connectionManager)),this.configureComponent("registrar",new ki(this.components)),this.configureComponent("addressManager",new Js(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Li(this.components,{routers:s}));let i=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ni(this.components,{routers:i})),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",f=>{this.#e(f)})}),e.transports?.forEach((a,c)=>{this.components.transportManager.add(this.configureComponent(`transport-${c}`,a(this.components)))}),e.services!=null)for(let a of Object.keys(e.services)){let c=e.services[a],u=c(this.components);if(u==null){this.log.error("service factory %s returned null or undefined instance",a);continue}this.services[a]=u,this.configureComponent(a,u),u[Hi]!=null&&(this.log("registering service %s for content routing",a),i.push(u[Hi])),u[Gi]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Gi])),u[$i]!=null&&(this.log("registering service %s for peer discovery",a),u[$i].addEventListener?.("peer",f=>{this.#e(f)}))}}configureComponent(e,t){return t==null&&this.log.error("component %s was null or undefined",e),this.components[e]=t,t}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started")}catch(e){throw this.log.error("An error occurred starting libp2p",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new ft;for(let t of this.components.connectionManager.getConnections())e.add(t.remotePeer);return Array.from(e)}async dial(e,t={}){return this.components.connectionManager.openConnection(e,{priority:75,...t})}async dialProtocol(e,t,n={}){if(t==null)throw new y("no protocols were provided to open a stream",B.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(t=Array.isArray(t)?t:[t],t.length===0)throw new y("no protocols were provided to open a stream",B.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(t,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,t={}){sr(e)&&(e=ye(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,t)}async getPublicKey(e,t={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;try{let s=await this.peerStore.get(e);if(s.id.publicKey!=null)return s.id.publicKey}catch(s){if(s.code!==B.ERR_NOT_FOUND)throw s}let n=Re([D("/pk/"),e.multihash.digest]),o=await this.contentRouting.get(n,t);return to(o),await this.peerStore.patch(e,{publicKey:o}),o}async handle(e,t,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async o=>{await this.components.registrar.handle(o,t,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async t=>{await this.components.registrar.unhandle(t)}))}async register(e,t){return this.components.registrar.register(e,t)}unregister(e){this.components.registrar.unregister(e)}async isDialable(e,t={}){return this.components.connectionManager.isDialable(e,t)}#e(e){let{detail:t}=e;if(t.id.toString()===this.peerId.toString()){this.log.error(new Error(B.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs}).catch(n=>{this.log.error(n)})}};async function Td(r={}){let e=r.peerId??=await eh();if(e.privateKey==null)throw new y("peer id was missing private key","ERR_MISSING_PRIVATE_KEY");return r.privateKey??=await ro(e.privateKey),new Al(await dd(r))}async function iw(r={}){let e=await Td(r);return r.start!==!1&&await e.start(),e}return $d(aw);})();
19
+ `));t.log.trace('handle: respond with "%s" for %s',e,o),await Ur(n,s,t),t.log.trace('handle: responded with "%s" for %s',e,o);continue}t.log('handle: respond with "na" for "%s"',o),await Ur(n,D(`na
20
+ `),t),t.log('handle: responded with "na" for "%s"',o)}}var rw=500,Rl=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:t,remotePeer:n,newStream:o,close:s,abort:i,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=t,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=o,this._close=s,this._abort=i,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[Pl]=!0;get streams(){return this._getStreams()}async newStream(e,t){if(this.status==="closing")throw new y("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new y("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&t?.runOnTransientConnection!==!0)throw new y("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,t);return n.direction="outbound",n}async close(e={}){if(!(this.status==="closed"||this.status==="closing")){if(this.log("closing connection to %a",this.remoteAddr),this.status="closing",e.signal==null){let t=AbortSignal.timeout(rw);ue(1/0,t),e={...e,signal:t}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async t=>t.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(t){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,t),this.abort(t)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(t=>{t.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function Sd(r){return new Rl(r)}var nw=3e4;function ow(r,e){try{let{options:t}=e.getHandler(r);return t.maxInboundStreams}catch(t){if(t.code!==B.ERR_NO_HANDLER_FOR_PROTOCOL)throw t}return gl}function sw(r,e,t={}){try{let{options:n}=e.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==B.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return t.maxOutboundStreams??yl}function Id(r,e,t){let n=0;return t.streams.forEach(o=>{o.direction===e&&o.protocol===r&&n++}),n}var Hi=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,t){this.components=e,this.connectionEncryption=new Map,t.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,t.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=t.inboundUpgradeTimeout??2e3,this.events=e.events}async shouldBlockConnection(e,t,n){let o=this.components.connectionGater[n];if(o!==void 0&&await o(e,t))throw new y(`The multiaddr connection is blocked by gater.${n}`,B.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,t){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new y("connection denied",B.ERR_CONNECTION_DENIED);let o,s,i,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),f=()=>{e.abort(new y("inbound upgrade timeout",So))};u.addEventListener("abort",f,{once:!0}),ue(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new y("The multiaddr connection is blocked by gater.acceptConnection",B.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let l=e;if(t?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(e.log("protecting the inbound connection"),l=await h.protect(e))}try{if(o=l,t?.skipEncryption!==!0){({conn:o,remotePeer:s,protocol:c}=await this._encryptInbound(l));let h={...l,...o};await this.shouldBlockConnection(s,h,"denyInboundEncryptedConnection")}else{let h=e.remoteAddr.getPeerId();if(h==null)throw new y("inbound connection that skipped encryption must have a peer id",B.ERR_INVALID_MULTIADDR);let g=we(h);c="native",s=g}if(i=o,t?.muxerFactory!=null)a=t.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...l,...o},this.muxers);a=h.muxerFactory,i=h.stream}}catch(h){throw e.log.error("failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:i,muxerFactory:a,remotePeer:s,transient:t?.transient})}finally{u.removeEventListener("abort",f),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t){let n=e.remoteAddr.getPeerId(),o;n!=null&&(o=we(n),await this.shouldBlockConnection(o,e,"denyOutboundConnection"));let s,i,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let f=e;if(t?.skipProtection!==!0){let l=this.components.connectionProtector;l!=null&&(f=await l.protect(e))}try{if(s=f,t?.skipEncryption!==!0){({conn:s,remotePeer:i,protocol:c}=await this._encryptOutbound(f,o));let l={...f,...s};await this.shouldBlockConnection(i,l,"denyOutboundEncryptedConnection")}else{if(o==null)throw new y("Encryption was skipped but no peer id was passed",B.ERR_INVALID_PEER);c="native",i=o}if(a=s,t?.muxerFactory!=null)u=t.muxerFactory;else if(this.muxers.size>0){let l=await this._multiplexOutbound({...f,...s},this.muxers);u=l.muxerFactory,a=l.stream}}catch(l){throw e.log.error("failed to upgrade outbound connection",l),await e.close(l),l}return await this.shouldBlockConnection(i,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:i,transient:t?.transient})}_createConnection(e){let{cryptoProtocol:t,direction:n,maConn:o,upgradedConn:s,remotePeer:i,muxerFactory:a,transient:c}=e,u,f,l;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:d=>{l!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:w}=await vo(d,p,{log:d.log,yieldBytes:!1});if(l==null)return;l.log("incoming stream opened on %s",w);let x=ow(w,this.components.registrar);if(Id(w,"inbound",l)===x){let A=new y(`Too many inbound protocol streams for protocol "${w}" - limit ${x}`,B.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(A),A}d.source=m.source,d.sink=m.sink,d.protocol=w,m.closeWrite!=null&&(d.closeWrite=m.closeWrite),m.closeRead!=null&&(d.closeRead=m.closeRead),m.close!=null&&(d.close=m.close),await this.components.peerStore.merge(i,{protocols:[w]}),this.components.metrics?.trackProtocolStream(d,l),this._onStream({connection:l,stream:d,protocol:w})}).catch(async p=>{l.log.error("error handling incoming stream id %s",d.id,p.message,p.code,p.stack),d.timeline.close==null&&await d.close()})}}),f=async(d,p={})=>{if(u==null)throw new y("Stream is not multiplexed",B.ERR_MUXER_UNAVAILABLE);l.log("starting new stream for protocols %s",d);let m=await u.newStream();l.log.trace("started new stream %s for protocols %s",m.id,d);try{if(p.signal==null){m.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d);let v=AbortSignal.timeout(nw);ue(1/0,v),p={...p,signal:v}}m.log.trace("selecting protocol from protocols %s",d);let{stream:w,protocol:x}=await xo(m,d,{...p,log:m.log,yieldBytes:!0});m.log("selected protocol %s",x);let b=sw(x,this.components.registrar,p),A=Id(x,"outbound",l);if(A>=b){let v=new y(`Too many outbound protocol streams for protocol "${x}" - ${A}/${b}`,B.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(v),v}return await this.components.peerStore.merge(i,{protocols:[x]}),m.source=w.source,m.sink=w.sink,m.protocol=x,w.closeWrite!=null&&(m.closeWrite=w.closeWrite),w.closeRead!=null&&(m.closeRead=w.closeRead),w.close!=null&&(m.close=w.close),this.components.metrics?.trackProtocolStream(m,l),m}catch(w){throw l.log.error("could not create new stream for protocols %s",d,w),m.timeline.close==null&&m.abort(w),w.code!=null?w:new y(String(w),B.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{l.log.error("error piping data through muxer",d)}));let h=o.timeline;o.timeline=new Proxy(h,{set:(...d)=>(l!=null&&d[1]==="close"&&d[2]!=null&&h.close==null&&(async()=>{try{l.status==="open"&&await l.close()}catch(p){l.log.error("error closing connection after timeline close",p)}finally{this.events.safeDispatchEvent("connection:close",{detail:l})}})().catch(p=>{l.log.error("error thrown while dispatching connection:close event",p)}),Reflect.set(...d))}),o.timeline.upgraded=Date.now();let g=()=>{throw new y("connection is not multiplexed",B.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=Sd({remoteAddr:o.remoteAddr,remotePeer:i,status:"open",direction:n,timeline:o.timeline,multiplexer:u?.protocol,encryption:t,transient:c,logger:this.components.logger,newStream:f??g,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(l.log.trace("close muxer"),await u.close(d)),l.log.trace("close maconn"),await o.close(d),l.log.trace("closed maconn")},abort:d=>{o.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:l}),l}_onStream(e){let{connection:t,stream:n,protocol:o}=e,{handler:s,options:i}=this.components.registrar.getHandler(o);if(t.transient&&i.runOnTransientConnection!==!0)throw new y("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:t,stream:n})}async _encryptInbound(e){let t=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",t);try{let{stream:n,protocol:o}=await vo(e,t,{log:e.log}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return e.log("encrypting inbound connection using",o),{...await s.secureInbound(this.components.peerId,n),protocol:o}}catch(n){throw e.log.error("encrypting inbound connection to %p failed",n),new y(n.message,B.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,t){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:o,protocol:s}=await xo(e,n,{log:e.log,yieldBytes:!0}),i=this.connectionEncryption.get(s);if(i==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %s",t,i),{...await i.secureOutbound(this.components.peerId,o,t),protocol:s}}catch(o){throw e.log.error("encrypting outbound connection to %p failed",o),new y(o.message,B.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,t){let n=Array.from(t.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:o,protocol:s}=await xo(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let i=t.get(s);return{stream:o,muxerFactory:i}}catch(o){throw e.log.error("error multiplexing outbound connection",o),new y(String(o),B.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,t){let n=Array.from(t.keys());e.log("inbound handling muxers %s",n);try{let{stream:o,protocol:s}=await vo(e,n,{log:e.log}),i=t.get(s);return{stream:o,muxerFactory:i}}catch(o){throw e.log.error("error multiplexing inbound connection",o),new y(String(o),B.ERR_MUXER_UNAVAILABLE)}}};var Bd="1.5.0-9d13a2f6a",Td="libp2p";var _l=class extends At{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let t=new At,n=t.dispatchEvent.bind(t);t.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new ji(a.type,{detail:a.detail}));return c||u},ue(1/0,t),this.peerId=e.peerId,this.logger=e.logger??Ms(),this.log=this.logger.forComponent("libp2p"),this.services={};let o=this.components=Hh({peerId:e.peerId,privateKey:e.privateKey,nodeInfo:e.nodeInfo??{name:Td,version:Bd},logger:this.logger,events:t,datastore:e.datastore??new ei,connectionGater:Gh(e.connectionGater),dns:e.dns});this.peerStore=this.configureComponent("peerStore",new Qs(o,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),o.events.addEventListener("peer:update",a=>{if(a.detail.previous==null){let c={id:a.detail.peer.id,multiaddrs:a.detail.peer.addresses.map(u=>u.multiaddr)};o.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(o)),this.components.upgrader=new Hi(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Oi(this.components,e.transportManager)),this.configureComponent("connectionManager",new Ci(this.components,e.connectionManager)),this.configureComponent("registrar",new Pi(this.components)),this.configureComponent("addressManager",new ti(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new ki(this.components,{routers:s}));let i=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ni(this.components,{routers:i})),this.configureComponent("randomWalk",new Di(this.components)),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",f=>{this.#e(f)})}),e.transports?.forEach((a,c)=>{this.components.transportManager.add(this.configureComponent(`transport-${c}`,a(this.components)))}),e.services!=null)for(let a of Object.keys(e.services)){let c=e.services[a],u=c(this.components);if(u==null){this.log.error("service factory %s returned null or undefined instance",a);continue}this.services[a]=u,this.configureComponent(a,u),u[qi]!=null&&(this.log("registering service %s for content routing",a),i.push(u[qi])),u[Yi]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Yi])),u[Gi]!=null&&(this.log("registering service %s for peer discovery",a),u[Gi].addEventListener?.("peer",f=>{this.#e(f)}))}}configureComponent(e,t){return t==null&&this.log.error("component %s was null or undefined",e),this.components[e]=t,t}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started")}catch(e){throw this.log.error("An error occurred starting libp2p",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new ft;for(let t of this.components.connectionManager.getConnections())e.add(t.remotePeer);return Array.from(e)}async dial(e,t={}){return this.components.connectionManager.openConnection(e,{priority:75,...t})}async dialProtocol(e,t,n={}){if(t==null)throw new y("no protocols were provided to open a stream",B.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(t=Array.isArray(t)?t:[t],t.length===0)throw new y("no protocols were provided to open a stream",B.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(t,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,t={}){ar(e)&&(e=we(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,t)}async getPublicKey(e,t={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;try{let s=await this.peerStore.get(e);if(s.id.publicKey!=null)return s.id.publicKey}catch(s){if(s.code!==B.ERR_NOT_FOUND)throw s}let n=_e([D("/pk/"),e.multihash.digest]),o=await this.contentRouting.get(n,t);return ro(o),await this.peerStore.patch(e,{publicKey:o}),o}async handle(e,t,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async o=>{await this.components.registrar.handle(o,t,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async t=>{await this.components.registrar.unhandle(t)}))}async register(e,t){return this.components.registrar.register(e,t)}unregister(e){this.components.registrar.unregister(e)}async isDialable(e,t={}){return this.components.connectionManager.isDialable(e,t)}#e(e){let{detail:t}=e;if(t.id.toString()===this.peerId.toString()){this.log.error(new Error(B.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs}).catch(n=>{this.log.error(n)})}};async function Cd(r={}){let e=r.peerId??=await oh();if(e.privateKey==null)throw new y("peer id was missing private key","ERR_MISSING_PRIVATE_KEY");return r.privateKey??=await no(e.privateKey),new _l(await md(r))}async function aw(r={}){let e=await Cd(r);return r.start!==!1&&await e.start(),e}return qd(cw);})();
21
21
  /*! Bundled license information:
22
22
 
23
23
  pvtsutils/build/index.js: