libp2p 2.3.1-406b3916c → 2.3.1-48e9cfa56

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.
Files changed (54) hide show
  1. package/dist/index.min.js +17 -17
  2. package/dist/src/address-manager/dns-mappings.d.ts +20 -0
  3. package/dist/src/address-manager/dns-mappings.d.ts.map +1 -0
  4. package/dist/src/address-manager/dns-mappings.js +139 -0
  5. package/dist/src/address-manager/dns-mappings.js.map +1 -0
  6. package/dist/src/{address-manager.d.ts → address-manager/index.d.ts} +40 -7
  7. package/dist/src/address-manager/index.d.ts.map +1 -0
  8. package/dist/src/address-manager/index.js +264 -0
  9. package/dist/src/address-manager/index.js.map +1 -0
  10. package/dist/src/address-manager/ip-mappings.d.ts +18 -0
  11. package/dist/src/address-manager/ip-mappings.d.ts.map +1 -0
  12. package/dist/src/address-manager/ip-mappings.js +143 -0
  13. package/dist/src/address-manager/ip-mappings.js.map +1 -0
  14. package/dist/src/address-manager/observed-addresses.d.ts +19 -0
  15. package/dist/src/address-manager/observed-addresses.d.ts.map +1 -0
  16. package/dist/src/address-manager/observed-addresses.js +70 -0
  17. package/dist/src/address-manager/observed-addresses.js.map +1 -0
  18. package/dist/src/address-manager/transport-addresses.d.ts +19 -0
  19. package/dist/src/address-manager/transport-addresses.d.ts.map +1 -0
  20. package/dist/src/address-manager/transport-addresses.js +83 -0
  21. package/dist/src/address-manager/transport-addresses.js.map +1 -0
  22. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
  23. package/dist/src/connection-manager/connection-pruner.js +4 -3
  24. package/dist/src/connection-manager/connection-pruner.js.map +1 -1
  25. package/dist/src/connection-manager/index.d.ts +1 -0
  26. package/dist/src/connection-manager/index.d.ts.map +1 -1
  27. package/dist/src/connection-manager/index.js +10 -6
  28. package/dist/src/connection-manager/index.js.map +1 -1
  29. package/dist/src/connection-manager/utils.d.ts +13 -1
  30. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  31. package/dist/src/connection-manager/utils.js +33 -1
  32. package/dist/src/connection-manager/utils.js.map +1 -1
  33. package/dist/src/index.d.ts +1 -1
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/libp2p.js +1 -1
  36. package/dist/src/libp2p.js.map +1 -1
  37. package/dist/src/version.d.ts +1 -1
  38. package/dist/src/version.js +1 -1
  39. package/package.json +11 -10
  40. package/src/address-manager/dns-mappings.ts +182 -0
  41. package/src/address-manager/index.ts +413 -0
  42. package/src/address-manager/ip-mappings.ts +191 -0
  43. package/src/address-manager/observed-addresses.ts +94 -0
  44. package/src/address-manager/transport-addresses.ts +116 -0
  45. package/src/connection-manager/connection-pruner.ts +6 -4
  46. package/src/connection-manager/index.ts +14 -8
  47. package/src/connection-manager/utils.ts +35 -2
  48. package/src/index.ts +1 -1
  49. package/src/libp2p.ts +1 -1
  50. package/src/version.ts +1 -1
  51. package/dist/src/address-manager.d.ts.map +0 -1
  52. package/dist/src/address-manager.js +0 -304
  53. package/dist/src/address-manager.js.map +0 -1
  54. package/src/address-manager.ts +0 -439
package/dist/index.min.js CHANGED
@@ -1,22 +1,22 @@
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 _m=Object.create;var Mo=Object.defineProperty;var Bm=Object.getOwnPropertyDescriptor;var Cm=Object.getOwnPropertyNames;var Im=Object.getPrototypeOf,km=Object.prototype.hasOwnProperty;var Qt=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Rt=(r,t)=>{for(var e in t)Mo(r,e,{get:t[e],enumerable:!0})},of=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cm(t))!km.call(r,o)&&o!==e&&Mo(r,o,{get:()=>t[o],enumerable:!(n=Bm(t,o))||n.enumerable});return r};var hr=(r,t,e)=>(e=r!=null?_m(Im(r)):{},of(t||!r||!r.__esModule?Mo(e,"default",{value:r,enumerable:!0}):e,r)),Tm=r=>of(Mo({},"__esModule",{value:!0}),r);var mh=Qt(nn=>{"use strict";var ry="[object ArrayBuffer]",ke=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===ry}static toArrayBuffer(t){return this.isArrayBuffer(t)?t:t.byteLength===t.buffer.byteLength||t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:this.toUint8Array(t.buffer).slice(t.byteOffset,t.byteOffset+t.byteLength).buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,e){if(t.constructor===e)return t;if(this.isArrayBuffer(t))return new e(t);if(this.isArrayBufferView(t))return new e(t.buffer,t.byteOffset,t.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,e){let n=r.toUint8Array(t),o=r.toUint8Array(e);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(...t){let e;Array.isArray(t[0])&&!(t[1]instanceof Function)||Array.isArray(t[0])&&t[1]instanceof Function?e=t[0]:t[t.length-1]instanceof Function?e=t.slice(0,t.length-1):e=t;let n=0;for(let i of e)n+=i.byteLength;let o=new Uint8Array(n),s=0;for(let i of e){let a=this.toUint8Array(i);o.set(a,s),s+=a.length}return t[t.length-1]instanceof Function?this.toView(o,t[t.length-1]):o.buffer}},ll="string",ny=/^[0-9a-f\s]+$/i,oy=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,sy=/^[a-zA-Z0-9-_]+$/,bs=class{static fromString(t){let e=unescape(encodeURIComponent(t)),n=new Uint8Array(e.length);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return n.buffer}static toString(t){let e=ke.toUint8Array(t),n="";for(let s=0;s<e.length;s++)n+=String.fromCharCode(e[s]);return decodeURIComponent(escape(n))}},Xt=class{static toString(t,e=!1){let n=ke.toArrayBuffer(t),o=new DataView(n),s="";for(let i=0;i<n.byteLength;i+=2){let a=o.getUint16(i,e);s+=String.fromCharCode(a)}return s}static fromString(t,e=!1){let n=new ArrayBuffer(t.length*2),o=new DataView(n);for(let s=0;s<t.length;s++)o.setUint16(s*2,t.charCodeAt(s),e);return n}},xs=class r{static isHex(t){return typeof t===ll&&ny.test(t)}static isBase64(t){return typeof t===ll&&oy.test(t)}static isBase64Url(t){return typeof t===ll&&sy.test(t)}static ToString(t,e="utf8"){let n=ke.toUint8Array(t);switch(e.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 Xt.toString(n,!0);case"utf16":case"utf16be":return Xt.toString(n);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromString(t,e="utf8"){if(!t)return new ArrayBuffer(0);switch(e.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return Xt.fromString(t,!0);case"utf16":case"utf16be":return Xt.fromString(t);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToBase64(t){let e=ke.toUint8Array(t);if(typeof btoa<"u"){let n=this.ToString(e,"binary");return btoa(n)}else return Buffer.from(e).toString("base64")}static FromBase64(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64(e))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(e)):new Uint8Array(Buffer.from(e,"base64")).buffer}static FromBase64Url(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64Url(e))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.FromBinary(t);case"utf8":return bs.fromString(t);case"utf16":case"utf16be":return Xt.fromString(t);case"utf16le":case"usc2":return Xt.fromString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.ToBinary(t);case"utf8":return bs.toString(t);case"utf16":case"utf16be":return Xt.toString(t);case"utf16le":case"usc2":return Xt.toString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromBinary(t){let e=t.length,n=new Uint8Array(e);for(let o=0;o<e;o++)n[o]=t.charCodeAt(o);return n.buffer}static ToBinary(t){let e=ke.toUint8Array(t),n="";for(let o=0;o<e.length;o++)n+=String.fromCharCode(e[o]);return n}static ToHex(t){let e=ke.toUint8Array(t),n="",o=e.length;for(let s=0;s<o;s++){let i=e[s];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isHex(e))throw new TypeError("Argument 'hexString' is not HEX encoded");e.length%2&&(e=`0${e}`);let n=new Uint8Array(e.length/2);for(let o=0;o<e.length;o=o+2){let s=e.slice(o,o+2);n[o/2]=parseInt(s,16)}return n.buffer}static ToUtf16String(t,e=!1){return Xt.toString(t,e)}static FromUtf16String(t,e=!1){return Xt.fromString(t,e)}static Base64Padding(t){let e=4-t.length%4;if(e<4)for(let n=0;n<e;n++)t+="=";return t}static formatString(t){return t?.replace(/[\n\r\t ]/g,"")||""}};xs.DEFAULT_UTF8_ENCODING="utf8";function iy(r,...t){let e=arguments[0];for(let n=1;n<arguments.length;n++){let o=arguments[n];for(let s in o)e[s]=o[s]}return e}function ay(...r){let t=r.map(o=>o.byteLength).reduce((o,s)=>o+s),e=new Uint8Array(t),n=0;return r.map(o=>new Uint8Array(o)).forEach(o=>{for(let s of o)e[n++]=s}),e.buffer}function cy(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let o=0;o<r.byteLength;o++)if(e[o]!==n[o])return!1;return!0}nn.BufferSourceConverter=ke;nn.Convert=xs;nn.assign=iy;nn.combine=ay;nn.isEqual=cy});var Nd=Qt((bA,Bl)=>{"use strict";var Ny=Object.prototype.hasOwnProperty,Ht="~";function ho(){}Object.create&&(ho.prototype=Object.create(null),new ho().__proto__||(Ht=!1));function Py(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function Ld(r,t,e,n,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new Py(e,n||r,o),i=Ht?Ht+t:t;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 di(r,t){--r._eventsCount===0?r._events=new ho:delete r._events[t]}function Nt(){this._events=new ho,this._eventsCount=0}Nt.prototype.eventNames=function(){var t=[],e,n;if(this._eventsCount===0)return t;for(n in e=this._events)Ny.call(e,n)&&t.push(Ht?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Nt.prototype.listeners=function(t){var e=Ht?Ht+t:t,n=this._events[e];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};Nt.prototype.listenerCount=function(t){var e=Ht?Ht+t:t,n=this._events[e];return n?n.fn?1:n.length:0};Nt.prototype.emit=function(t,e,n,o,s,i){var a=Ht?Ht+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,o),!0;case 5:return c.fn.call(c.context,e,n,o,s),!0;case 6:return c.fn.call(c.context,e,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 d=c.length,h;for(l=0;l<d;l++)switch(c[l].once&&this.removeListener(t,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,e);break;case 3:c[l].fn.call(c[l].context,e,n);break;case 4:c[l].fn.call(c[l].context,e,n,o);break;default:if(!f)for(h=1,f=new Array(u-1);h<u;h++)f[h-1]=arguments[h];c[l].fn.apply(c[l].context,f)}}return!0};Nt.prototype.on=function(t,e,n){return Ld(this,t,e,n,!1)};Nt.prototype.once=function(t,e,n){return Ld(this,t,e,n,!0)};Nt.prototype.removeListener=function(t,e,n,o){var s=Ht?Ht+t:t;if(!this._events[s])return this;if(!e)return di(this,s),this;var i=this._events[s];if(i.fn)i.fn===e&&(!o||i.once)&&(!n||i.context===n)&&di(this,s);else{for(var a=0,c=[],u=i.length;a<u;a++)(i[a].fn!==e||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:di(this,s)}return this};Nt.prototype.removeAllListeners=function(t){var e;return t?(e=Ht?Ht+t:t,this._events[e]&&di(this,e)):(this._events=new ho,this._eventsCount=0),this};Nt.prototype.off=Nt.prototype.removeListener;Nt.prototype.addListener=Nt.prototype.on;Nt.prefixed=Ht;Nt.EventEmitter=Nt;typeof Bl<"u"&&(Bl.exports=Nt)});var Ud=Qt((KA,Md)=>{Md.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,e=Object.create(null),n=Object.create(null);function o(s,i){e[s]=i,t++,t>=r&&(t=0,n=e,e=Object.create(null))}return{has:function(s){return e[s]!==void 0||n[s]!==void 0},remove:function(s){e[s]!==void 0&&(e[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=e[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){e[s]!==void 0?e[s]=i:o(s,i)},clear:function(){e=Object.create(null),n=Object.create(null)}}}});var Qd=Qt((S8,Jd)=>{"use strict";Jd.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var sp=Qt((np,op)=>{"use strict";var vi=Qd(),{hasOwnProperty:ep}=Object.prototype,{propertyIsEnumerable:ow}=Object,yn=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),sw=np,tp={concatArrays:!1,ignoreUndefined:!1},Ei=r=>{let t=[];for(let e in r)ep.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)ow.call(r,n)&&t.push(n)}return t};function wn(r){return Array.isArray(r)?iw(r):vi(r)?aw(r):r}function iw(r){let t=r.slice(0,0);return Ei(r).forEach(e=>{yn(t,e,wn(r[e]))}),t}function aw(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return Ei(r).forEach(e=>{yn(t,e,wn(r[e]))}),t}var rp=(r,t,e,n)=>(e.forEach(o=>{typeof t[o]>"u"&&n.ignoreUndefined||(o in r&&r[o]!==Object.getPrototypeOf(r)?yn(r,o,Zl(r[o],t[o],n)):yn(r,o,wn(t[o])))}),r),cw=(r,t,e)=>{let n=r.slice(0,0),o=0;return[r,t].forEach(s=>{let i=[];for(let a=0;a<s.length;a++)ep.call(s,a)&&(i.push(String(a)),s===r?yn(n,o++,s[a]):yn(n,o++,wn(s[a])));n=rp(n,s,Ei(s).filter(a=>!i.includes(a)),e)}),n};function Zl(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?cw(r,t,e):!vi(t)||!vi(r)?wn(t):rp(r,t,Ei(t),e)}op.exports=function(...r){let t=Zl(wn(tp),this!==sw&&this||{},tp),e={_:{}};for(let n of r)if(n!==void 0){if(!vi(n))throw new TypeError("`"+n+"` is not an Option Object");e=Zl(e,{_:n},t)}return e._}});var up=Qt((yo,ki)=>{(function(r,t){"use strict";var e={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(h){if(!Array.isArray(h)&&!ArrayBuffer.isView(h))return!1;for(var p=0;p<h.length;p++)if(!Number.isInteger(h[p])||h[p]<0||h[p]>255)return!1;return!0}function o(h,p){return(h&65535)*p+(((h>>>16)*p&65535)<<16)}function s(h,p){return h<<p|h>>>32-p}function i(h){return h^=h>>>16,h=o(h,2246822507),h^=h>>>13,h=o(h,3266489909),h^=h>>>16,h}function a(h,p){h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=h[3]+p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=h[2]+p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=h[1]+p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=h[0]+p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function c(h,p){h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=h[3]*p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=h[2]*p[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=h[3]*p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=h[1]*p[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=h[2]*p[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=h[3]*p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=h[0]*p[3]+h[1]*p[2]+h[2]*p[1]+h[3]*p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function u(h,p){return p%=64,p===32?[h[1],h[0]]:p<32?[h[0]<<p|h[1]>>>32-p,h[1]<<p|h[0]>>>32-p]:(p-=32,[h[1]<<p|h[0]>>>32-p,h[0]<<p|h[1]>>>32-p])}function f(h,p){return p%=64,p===0?h:p<32?[h[0]<<p|h[1]>>>32-p,h[1]<<p]:[h[1]<<p-32,0]}function l(h,p){return[h[0]^p[0],h[1]^p[1]]}function d(h){return h=l(h,[0,h[0]>>>1]),h=c(h,[4283543511,3981806797]),h=l(h,[0,h[0]>>>1]),h=c(h,[3301882366,444984403]),h=l(h,[0,h[0]>>>1]),h}e.x86.hash32=function(h,p){if(e.inputValidation&&!n(h))return t;p=p||0;for(var m=h.length%4,g=h.length-m,w=p,b=0,y=3432918353,x=461845907,A=0;A<g;A=A+4)b=h[A]|h[A+1]<<8|h[A+2]<<16|h[A+3]<<24,b=o(b,y),b=s(b,15),b=o(b,x),w^=b,w=s(w,13),w=o(w,5)+3864292196;switch(b=0,m){case 3:b^=h[A+2]<<16;case 2:b^=h[A+1]<<8;case 1:b^=h[A],b=o(b,y),b=s(b,15),b=o(b,x),w^=b}return w^=h.length,w=i(w),w>>>0},e.x86.hash128=function(h,p){if(e.inputValidation&&!n(h))return t;p=p||0;for(var m=h.length%16,g=h.length-m,w=p,b=p,y=p,x=p,A=0,_=0,v=0,B=0,k=597399067,Y=2869860233,H=951274213,V=2716044179,D=0;D<g;D=D+16)A=h[D]|h[D+1]<<8|h[D+2]<<16|h[D+3]<<24,_=h[D+4]|h[D+5]<<8|h[D+6]<<16|h[D+7]<<24,v=h[D+8]|h[D+9]<<8|h[D+10]<<16|h[D+11]<<24,B=h[D+12]|h[D+13]<<8|h[D+14]<<16|h[D+15]<<24,A=o(A,k),A=s(A,15),A=o(A,Y),w^=A,w=s(w,19),w+=b,w=o(w,5)+1444728091,_=o(_,Y),_=s(_,16),_=o(_,H),b^=_,b=s(b,17),b+=y,b=o(b,5)+197830471,v=o(v,H),v=s(v,17),v=o(v,V),y^=v,y=s(y,15),y+=x,y=o(y,5)+2530024501,B=o(B,V),B=s(B,18),B=o(B,k),x^=B,x=s(x,13),x+=w,x=o(x,5)+850148119;switch(A=0,_=0,v=0,B=0,m){case 15:B^=h[D+14]<<16;case 14:B^=h[D+13]<<8;case 13:B^=h[D+12],B=o(B,V),B=s(B,18),B=o(B,k),x^=B;case 12:v^=h[D+11]<<24;case 11:v^=h[D+10]<<16;case 10:v^=h[D+9]<<8;case 9:v^=h[D+8],v=o(v,H),v=s(v,17),v=o(v,V),y^=v;case 8:_^=h[D+7]<<24;case 7:_^=h[D+6]<<16;case 6:_^=h[D+5]<<8;case 5:_^=h[D+4],_=o(_,Y),_=s(_,16),_=o(_,H),b^=_;case 4:A^=h[D+3]<<24;case 3:A^=h[D+2]<<16;case 2:A^=h[D+1]<<8;case 1:A^=h[D],A=o(A,k),A=s(A,15),A=o(A,Y),w^=A}return w^=h.length,b^=h.length,y^=h.length,x^=h.length,w+=b,w+=y,w+=x,b+=w,y+=w,x+=w,w=i(w),b=i(b),y=i(y),x=i(x),w+=b,w+=y,w+=x,b+=w,y+=w,x+=w,("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(x>>>0).toString(16)).slice(-8)},e.x64.hash128=function(h,p){if(e.inputValidation&&!n(h))return t;p=p||0;for(var m=h.length%16,g=h.length-m,w=[0,p],b=[0,p],y=[0,0],x=[0,0],A=[2277735313,289559509],_=[1291169091,658871167],v=0;v<g;v=v+16)y=[h[v+4]|h[v+5]<<8|h[v+6]<<16|h[v+7]<<24,h[v]|h[v+1]<<8|h[v+2]<<16|h[v+3]<<24],x=[h[v+12]|h[v+13]<<8|h[v+14]<<16|h[v+15]<<24,h[v+8]|h[v+9]<<8|h[v+10]<<16|h[v+11]<<24],y=c(y,A),y=u(y,31),y=c(y,_),w=l(w,y),w=u(w,27),w=a(w,b),w=a(c(w,[0,5]),[0,1390208809]),x=c(x,_),x=u(x,33),x=c(x,A),b=l(b,x),b=u(b,31),b=a(b,w),b=a(c(b,[0,5]),[0,944331445]);switch(y=[0,0],x=[0,0],m){case 15:x=l(x,f([0,h[v+14]],48));case 14:x=l(x,f([0,h[v+13]],40));case 13:x=l(x,f([0,h[v+12]],32));case 12:x=l(x,f([0,h[v+11]],24));case 11:x=l(x,f([0,h[v+10]],16));case 10:x=l(x,f([0,h[v+9]],8));case 9:x=l(x,[0,h[v+8]]),x=c(x,_),x=u(x,33),x=c(x,A),b=l(b,x);case 8:y=l(y,f([0,h[v+7]],56));case 7:y=l(y,f([0,h[v+6]],48));case 6:y=l(y,f([0,h[v+5]],40));case 5:y=l(y,f([0,h[v+4]],32));case 4:y=l(y,f([0,h[v+3]],24));case 3:y=l(y,f([0,h[v+2]],16));case 2:y=l(y,f([0,h[v+1]],8));case 1:y=l(y,[0,h[v]]),y=c(y,A),y=u(y,31),y=c(y,_),w=l(w,y)}return w=l(w,[0,h.length]),b=l(b,[0,h.length]),w=a(w,b),b=a(b,w),w=d(w),b=d(b),w=a(w,b),b=a(b,w),("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)+("00000000"+(b[0]>>>0).toString(16)).slice(-8)+("00000000"+(b[1]>>>0).toString(16)).slice(-8)},typeof yo<"u"?(typeof ki<"u"&&ki.exports&&(yo=ki.exports=e),yo.murmurHash3=e):typeof define=="function"&&define.amd?define([],function(){return e}):(e._murmurHash3=r.murmurHash3,e.noConflict=function(){return r.murmurHash3=e._murmurHash3,e._murmurHash3=t,e.noConflict=t,e},r.murmurHash3=e)})(yo)});var hp=Qt((J8,fp)=>{fp.exports=up()});var Up=Qt(_o=>{(function(){var r,t,e,n,o,s,i,a;a=function(c){var u,f,l,d;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,d=c&255,[u,f,l,d].join(".")},i=function(c){var u,f,l,d,h,p;for(u=[],l=d=0;d<=3&&c.length!==0;l=++d){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=t(c),h=p[0],f=p[1],c=c.substring(f),u.push(h)}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")}},e=function(c){return c.charCodeAt(0)},n=e("0"),s=e("a"),o=e("A"),t=function(c){var u,f,l,d,h;for(d=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")),h=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)d=d*u+(e(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")d=d*u+(10+e(c[l])-s)>>>0;else if("A"<=c[l]&&c[l]<="F")d=d*u+(10+e(c[l])-o)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");l++}if(l===h)throw new Error("empty octet");return[d,l]},r=function(){function c(u,f){var l,d,h,p;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(p=u.split("/",2),u=p[0],f=p[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=i(f)}catch(m){throw l=m,new Error("Invalid mask: "+f)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;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(m){throw l=m,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,d;for(d=i(this.first),l=i(this.last),f=0;d<=l;)u(a(d),d,f),f++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),_o.ip2long=i,_o.long2ip=a,_o.Netmask=r}).call(_o)});var em=Qt((d4,tm)=>{function Jt(r,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(r)),this._timeouts=r,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}tm.exports=Jt;Jt.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};Jt.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};Jt.prototype.retry=function(r){if(this._timeout&&clearTimeout(this._timeout),!r)return!1;var t=new Date().getTime();if(r&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(r),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(r);var e=this._timeouts.shift();if(e===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),e=this._cachedTimeouts.slice(-1);else return!1;var n=this;return this._timer=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},e),this._options.unref&&this._timer.unref(),!0};Jt.prototype.attempt=function(r,t){this._fn=r,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var e=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){e._operationTimeoutCb()},e._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};Jt.prototype.try=function(r){console.log("Using RetryOperation.try() is deprecated"),this.attempt(r)};Jt.prototype.start=function(r){console.log("Using RetryOperation.start() is deprecated"),this.attempt(r)};Jt.prototype.start=Jt.prototype.try;Jt.prototype.errors=function(){return this._errors};Jt.prototype.attempts=function(){return this._attempts};Jt.prototype.mainError=function(){if(this._errors.length===0)return null;for(var r={},t=null,e=0,n=0;n<this._errors.length;n++){var o=this._errors[n],s=o.message,i=(r[s]||0)+1;r[s]=i,i>=e&&(t=o,e=i)}return t}});var rm=Qt(Or=>{var Fb=em();Or.operation=function(r){var t=Or.timeouts(r);return new Fb(t,{forever:r&&(r.forever||r.retries===1/0),unref:r&&r.unref,maxRetryTime:r&&r.maxRetryTime})};Or.timeouts=function(r){if(r instanceof Array)return[].concat(r);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var e in r)t[e]=r[e];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],o=0;o<t.retries;o++)n.push(this.createTimeout(o,t));return r&&r.forever&&!n.length&&n.push(this.createTimeout(o,t)),n.sort(function(s,i){return s-i}),n};Or.createTimeout=function(r,t){var e=t.randomize?Math.random()+1:1,n=Math.round(e*Math.max(t.minTimeout,1)*Math.pow(t.factor,r));return n=Math.min(n,t.maxTimeout),n};Or.wrap=function(r,t,e){if(t instanceof Array&&(e=t,t=null),!e){e=[];for(var n in r)typeof r[n]=="function"&&e.push(n)}for(var o=0;o<e.length;o++){var s=e[o],i=r[s];r[s]=function(c){var u=Or.operation(t),f=Array.prototype.slice.call(arguments,1),l=f.pop();f.push(function(d){u.retry(d)||(d&&(arguments[0]=u.mainError()),l.apply(this,arguments))}),u.attempt(function(){c.apply(r,f)})}.bind(r,i),r[s].options=t}}});var om=Qt((m4,nm)=>{nm.exports=rm()});var px={};Rt(px,{createLibp2p:()=>dx});var sf=Symbol.for("@libp2p/connection");var Ga=Symbol.for("@libp2p/content-routing");var Wa=Symbol.for("@libp2p/peer-discovery");var Uo=Symbol.for("@libp2p/peer-id");function Oo(r){return!!r?.[Uo]}var ja=Symbol.for("@libp2p/peer-routing");var Za="keep-alive";var Ex=Symbol.for("@libp2p/transport");var He;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(He||(He={}));var te=class extends Error{static name="AbortError";constructor(t="The operation was aborted"){super(t),this.name="AbortError"}};var R=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},Hr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}},Ln=class extends Error{static name="InvalidPrivateKeyError";constructor(t="Invalid private key"){super(t),this.name="InvalidPrivateKeyError"}};var Fo=class extends Error{static name="ConnectionClosingError";constructor(t="The connection is closing"){super(t),this.name="ConnectionClosingError"}},Kr=class extends Error{static name="ConnectionClosedError";constructor(t="The connection is closed"){super(t),this.name="ConnectionClosedError"}};var Vo=class extends Error{static name="NotFoundError";constructor(t="Not found"){super(t),this.name="NotFoundError"}},qr=class extends Error{static name="InvalidPeerIdError";constructor(t="Invalid PeerID"){super(t),this.name="InvalidPeerIdError"}},Ke=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},Ho=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},Ko=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}},Nn=class extends Error{static name="UnsupportedProtocolError";constructor(t="Unsupported protocol error"){super(t),this.name="UnsupportedProtocolError"}},qo=class extends Error{static name="InvalidMessageError";constructor(t="Invalid message"){super(t),this.name="InvalidMessageError"}};var $o=class extends Error{static name="TimeoutError";constructor(t="Timed out"){super(t),this.name="TimeoutError"}},xe=class extends Error{static name="NotStartedError";constructor(t="Not started"){super(t),this.name="NotStartedError"}};var $r=class extends Error{static name="DialError";constructor(t="Dial error"){super(t),this.name="DialError"}};var zr=class extends Error{static name="LimitedConnectionError";constructor(t="Limited connection"){super(t),this.name="LimitedConnectionError"}},zo=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(t="Too many inbound protocol streams"){super(t),this.name="TooManyInboundProtocolStreamsError"}},Go=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(t="Too many outbound protocol streams"){super(t),this.name="TooManyOutboundProtocolStreamsError"}},qe=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var ot=(r,...t)=>{try{[...t]}catch{}};var ve=class extends EventTarget{#t=new Map;constructor(){super(),ot(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let o=this.#t.get(t);o==null&&(o=[],this.#t.set(t,o)),o.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:s})=>s!==e),this.#t.set(t,o))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:o})=>!o),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};function Wo(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function af(...r){let t=[];for(let e of r)Wo(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(t.map(async e=>{await e.start()})),await Promise.all(t.map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async function cf(...r){let t=[];for(let e of r)Wo(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(t.map(async e=>{await e.stop()})),await Promise.all(t.map(async e=>{e.afterStop!=null&&await e.afterStop()}))}var Pn=Symbol.for("@libp2p/service-capabilities"),Xa=Symbol.for("@libp2p/service-dependencies");var ec={};Rt(ec,{base58btc:()=>Z,base58flickr:()=>Mm});var Jx=new Uint8Array(0);function lf(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Ee(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 uf(r){return new TextEncoder().encode(r)}function ff(r){return new TextDecoder().decode(r)}function Lm(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[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(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,g=0,w=0,b=p.length;w!==b&&p[w]===0;)w++,m++;for(var y=(b-w)*f+1>>>0,x=new Uint8Array(y);w!==b;){for(var A=p[w],_=0,v=y-1;(A!==0||_<g)&&v!==-1;v--,_++)A+=256*x[v]>>>0,x[v]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");g=_,w++}for(var B=y-g;B!==y&&x[B]===0;)B++;for(var k=c.repeat(m);B<y;++B)k+=r.charAt(x[B]);return k}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var g=0,w=0;p[m]===c;)g++,m++;for(var b=(p.length-m)*u+1>>>0,y=new Uint8Array(b);p[m];){var x=e[p.charCodeAt(m)];if(x===255)return;for(var A=0,_=b-1;(x!==0||A<w)&&_!==-1;_--,A++)x+=a*y[_]>>>0,y[_]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");w=A,m++}if(p[m]!==" "){for(var v=b-w;v!==b&&y[v]===0;)v++;for(var B=new Uint8Array(g+(b-v)),k=g;v!==b;)B[k++]=y[v++];return B}}}function h(p){var m=d(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:d,decode:h}}var Nm=Lm,Pm=Nm,df=Pm;var Ya=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ja=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return pf(this,t)}},Qa=class{decoders;constructor(t){this.decoders=t}or(t){return pf(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function pf(r,t){return new Qa({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var tc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ya(t,e,n),this.decoder=new Ja(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Gr({name:r,prefix:t,encode:e,decode:n}){return new tc(r,t,e,n)}function $e({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=df(e,r);return Gr({prefix:t,name:r,encode:n,decode:s=>Ee(o(s))})}function Dm(r,t,e,n){let o={};for(let f=0;f<t.length;++f)o[t[f]]=f;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*e/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<<e|l,a+=e,a>=8&&(a-=8,i[u++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function Rm(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;s.length*e&7;)s+="=";return s}function lt({name:r,prefix:t,bitsPerChar:e,alphabet:n}){return Gr({prefix:t,name:r,encode(o){return Rm(o,n,e)},decode(o){return Dm(o,n,e,r)}})}var Z=$e({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Mm=$e({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var rc={};Rt(rc,{base32:()=>Wt,base32hex:()=>Vm,base32hexpad:()=>Km,base32hexpadupper:()=>qm,base32hexupper:()=>Hm,base32pad:()=>Om,base32padupper:()=>Fm,base32upper:()=>Um,base32z:()=>$m});var Wt=lt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Um=lt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Om=lt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Fm=lt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Vm=lt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Hm=lt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Km=lt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),qm=lt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),$m=lt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var nc={};Rt(nc,{base36:()=>Dn,base36upper:()=>zm});var Dn=$e({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),zm=$e({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Gm=yf,mf=128,Wm=127,jm=~Wm,Zm=Math.pow(2,31);function yf(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Zm;)t[e++]=r&255|mf,r/=128;for(;r&jm;)t[e++]=r&255|mf,r>>>=7;return t[e]=r|0,yf.bytes=e-n+1,t}var Xm=oc,Ym=128,gf=127;function oc(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw oc.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&gf)<<o:(i&gf)*Math.pow(2,o),o+=7}while(i>=Ym);return oc.bytes=s-n,e}var Jm=Math.pow(2,7),Qm=Math.pow(2,14),tg=Math.pow(2,21),eg=Math.pow(2,28),rg=Math.pow(2,35),ng=Math.pow(2,42),og=Math.pow(2,49),sg=Math.pow(2,56),ig=Math.pow(2,63),ag=function(r){return r<Jm?1:r<Qm?2:r<tg?3:r<eg?4:r<rg?5:r<ng?6:r<og?7:r<sg?8:r<ig?9:10},cg={encode:Gm,decode:Xm,encodingLength:ag},lg=cg,Rn=lg;function Mn(r,t=0){return[Rn.decode(r,t),Rn.decode.bytes]}function Wr(r,t,e=0){return Rn.encode(r,t,e),t}function jr(r){return Rn.encodingLength(r)}function ee(r,t){let e=t.byteLength,n=jr(r),o=n+jr(e),s=new Uint8Array(o+e);return Wr(r,s,0),Wr(e,s,n),s.set(t,o),new Zr(r,e,t,s)}function re(r){let t=Ee(r),[e,n]=Mn(t),[o,s]=Mn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Zr(e,o,i,t)}function wf(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&lf(r.bytes,e.bytes)}}var Zr=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};function bf(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return fg(e,sc(r),t??Z.encoder);default:return hg(e,sc(r),t??Wt.encoder)}}var xf=new WeakMap;function sc(r){let t=xf.get(r);if(t==null){let e=new Map;return xf.set(r,e),e}return t}var mt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==Un)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==dg)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=ee(t,e);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(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&wf(t.multihash,n.multihash)}toString(t){return bf(this,t)}toJSON(){return{"/":bf(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??vf(n,o,s.bytes))}else if(e[pg]===!0){let{version:n,multihash:o,code:s}=e,i=re(o);return r.create(n,s,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==Un)throw new Error(`Version 0 CID must use dag-pb (code: ${Un}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=vf(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Un,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=Ee(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Zr(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[l,d]=Mn(t.subarray(e));return e+=d,l},o=n(),s=Un;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),u=e+c,f=u-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,e){let[n,o]=ug(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return sc(s).set(n,t),s}};function ug(r,t){switch(r[0]){case"Q":{let e=t??Z;return[Z.prefix,e.decode(`${Z.prefix}${r}`)]}case Z.prefix:{let e=t??Z;return[Z.prefix,e.decode(r)]}case Wt.prefix:{let e=t??Wt;return[Wt.prefix,e.decode(r)]}case Dn.prefix:{let e=t??Dn;return[Dn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function fg(r,t,e){let{prefix:n}=e;if(n!==Z.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function hg(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var Un=112,dg=18;function vf(r,t,e){let n=jr(r),o=n+jr(t),s=new Uint8Array(o+e.byteLength);return Wr(r,s,0),Wr(t,s,n),s.set(e,o),s}var pg=Symbol.for("@ipld/js-cid/CID");var ic={};Rt(ic,{identity:()=>Se});var Ef=0,mg="identity",Af=Ee;function gg(r){return ee(Ef,Af(r))}var Se={code:Ef,name:mg,encode:Af,digest:gg};function ut(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Sf(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function yg(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Xr(r,...t){if(!yg(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error("Uint8Array expected of length "+t+", got length="+r.length)}function _f(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Sf(r.outputLen),Sf(r.blockLen)}function Yr(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function Bf(r,t){Xr(r);let e=t.outputLen;if(r.length<e)throw new Error("digestInto() expects output buffer of length at least "+e)}var dr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Zo=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ne=(r,t)=>r<<32-t|r>>>t;function Cf(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function On(r){return typeof r=="string"&&(r=Cf(r)),Xr(r),r}function ac(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];Xr(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}var Jr=class{clone(){return this._cloneInto()}};function Xo(r){let t=n=>r().update(On(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function Yo(r=32){if(dr&&typeof dr.getRandomValues=="function")return dr.getRandomValues(new Uint8Array(r));if(dr&&typeof dr.randomBytes=="function")return dr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function wg(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(e>>o&s),a=Number(e&s),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}var If=(r,t,e)=>r&t^~r&e,kf=(r,t,e)=>r&t^r&e^t&e,Qr=class extends Jr{constructor(t,e,n,o){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Zo(this.buffer)}update(t){Yr(this);let{view:e,buffer:n,blockLen:o}=this;t=On(t);let s=t.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Zo(t);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Yr(this),Bf(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[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++)e[l]=0;wg(n,o-8,BigInt(this.length*8),s),this.process(n,0);let a=Zo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return t.length=o,t.pos=a,t.finished=s,t.destroyed=i,o%e&&t.buffer.set(n),t}};var Jo=BigInt(4294967295),cc=BigInt(32);function Tf(r,t=!1){return t?{h:Number(r&Jo),l:Number(r>>cc&Jo)}:{h:Number(r>>cc&Jo)|0,l:Number(r&Jo)|0}}function bg(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let o=0;o<r.length;o++){let{h:s,l:i}=Tf(r[o],t);[e[o],n[o]]=[s,i]}return[e,n]}var xg=(r,t)=>BigInt(r>>>0)<<cc|BigInt(t>>>0),vg=(r,t,e)=>r>>>e,Eg=(r,t,e)=>r<<32-e|t>>>e,Ag=(r,t,e)=>r>>>e|t<<32-e,Sg=(r,t,e)=>r<<32-e|t>>>e,_g=(r,t,e)=>r<<64-e|t>>>e-32,Bg=(r,t,e)=>r>>>e-32|t<<64-e,Cg=(r,t)=>t,Ig=(r,t)=>r,kg=(r,t,e)=>r<<e|t>>>32-e,Tg=(r,t,e)=>t<<e|r>>>32-e,Lg=(r,t,e)=>t<<e-32|r>>>64-e,Ng=(r,t,e)=>r<<e-32|t>>>64-e;function Pg(r,t,e,n){let o=(t>>>0)+(n>>>0);return{h:r+e+(o/2**32|0)|0,l:o|0}}var Dg=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Rg=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Mg=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Ug=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Og=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Fg=(r,t,e,n,o,s)=>t+e+n+o+s+(r/2**32|0)|0;var Vg={fromBig:Tf,split:bg,toBig:xg,shrSH:vg,shrSL:Eg,rotrSH:Ag,rotrSL:Sg,rotrBH:_g,rotrBL:Bg,rotr32H:Cg,rotr32L:Ig,rotlSH:kg,rotlSL:Tg,rotlBH:Lg,rotlBL:Ng,add:Pg,add3L:Dg,add3H:Rg,add4L:Mg,add4H:Ug,add5H:Fg,add5L:Og},F=Vg;var[Hg,Kg]=F.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))),ze=new Uint32Array(80),Ge=new Uint32Array(80),lc=class extends Qr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:e,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:d,Gh:h,Gl:p,Hh:m,Hl:g}=this;return[t,e,n,o,s,i,a,c,u,f,l,d,h,p,m,g]}set(t,e,n,o,s,i,a,c,u,f,l,d,h,p,m,g){this.Ah=t|0,this.Al=e|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=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=m|0,this.Hl=g|0}process(t,e){for(let y=0;y<16;y++,e+=4)ze[y]=t.getUint32(e),Ge[y]=t.getUint32(e+=4);for(let y=16;y<80;y++){let x=ze[y-15]|0,A=Ge[y-15]|0,_=F.rotrSH(x,A,1)^F.rotrSH(x,A,8)^F.shrSH(x,A,7),v=F.rotrSL(x,A,1)^F.rotrSL(x,A,8)^F.shrSL(x,A,7),B=ze[y-2]|0,k=Ge[y-2]|0,Y=F.rotrSH(B,k,19)^F.rotrBH(B,k,61)^F.shrSH(B,k,6),H=F.rotrSL(B,k,19)^F.rotrBL(B,k,61)^F.shrSL(B,k,6),V=F.add4L(v,H,Ge[y-7],Ge[y-16]),D=F.add4H(V,_,Y,ze[y-7],ze[y-16]);ze[y]=D|0,Ge[y]=V|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:d,Fh:h,Fl:p,Gh:m,Gl:g,Hh:w,Hl:b}=this;for(let y=0;y<80;y++){let x=F.rotrSH(l,d,14)^F.rotrSH(l,d,18)^F.rotrBH(l,d,41),A=F.rotrSL(l,d,14)^F.rotrSL(l,d,18)^F.rotrBL(l,d,41),_=l&h^~l&m,v=d&p^~d&g,B=F.add5L(b,A,v,Kg[y],Ge[y]),k=F.add5H(B,w,x,_,Hg[y],ze[y]),Y=B|0,H=F.rotrSH(n,o,28)^F.rotrBH(n,o,34)^F.rotrBH(n,o,39),V=F.rotrSL(n,o,28)^F.rotrBL(n,o,34)^F.rotrBL(n,o,39),D=n&s^n&a^s&a,I=o&i^o&c^i&c;w=m|0,b=g|0,m=h|0,g=p|0,h=l|0,p=d|0,{h:l,l:d}=F.add(u|0,f|0,k|0,Y|0),u=a|0,f=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let N=F.add3L(Y,V,I);n=F.add3H(N,k,H,D),o=N|0}({h:n,l:o}=F.add(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=F.add(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=F.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=F.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:d}=F.add(this.Eh|0,this.El|0,l|0,d|0),{h,l:p}=F.add(this.Fh|0,this.Fl|0,h|0,p|0),{h:m,l:g}=F.add(this.Gh|0,this.Gl|0,m|0,g|0),{h:w,l:b}=F.add(this.Hh|0,this.Hl|0,w|0,b|0),this.set(n,o,s,i,a,c,u,f,l,d,h,p,m,g,w,b)}roundClean(){ze.fill(0),Ge.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 Lf=Xo(()=>new lc);var es={};Rt(es,{aInRange:()=>qt,abool:()=>oe,abytes:()=>tn,bitGet:()=>jg,bitLen:()=>dc,bitMask:()=>Vn,bitSet:()=>Zg,bytesToHex:()=>Be,bytesToNumberBE:()=>Ce,bytesToNumberLE:()=>je,concatBytes:()=>Ie,createHmacDrbg:()=>pc,ensureBytes:()=>at,equalBytes:()=>Gg,hexToBytes:()=>mr,hexToNumber:()=>hc,inRange:()=>Fn,isBytes:()=>We,memoized:()=>yr,notImplemented:()=>Yg,numberToBytesBE:()=>Ze,numberToBytesLE:()=>gr,numberToHexUnpadded:()=>pr,numberToVarBytesBE:()=>zg,utf8ToBytes:()=>Wg,validateObject:()=>he});var Qo=BigInt(0),ts=BigInt(1),qg=BigInt(2);function We(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function tn(r){if(!We(r))throw new Error("Uint8Array expected")}function oe(r,t){if(typeof t!="boolean")throw new Error(r+" boolean expected, got "+t)}var $g=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Be(r){tn(r);let t="";for(let e=0;e<r.length;e++)t+=$g[r[e]];return t}function pr(r){let t=r.toString(16);return t.length&1?"0"+t:t}function hc(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Qo:BigInt("0x"+r)}var _e={_0:48,_9:57,A:65,F:70,a:97,f:102};function Nf(r){if(r>=_e._0&&r<=_e._9)return r-_e._0;if(r>=_e.A&&r<=_e.F)return r-(_e.A-10);if(r>=_e.a&&r<=_e.f)return r-(_e.a-10)}function mr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let t=r.length,e=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,s=0;o<e;o++,s+=2){let i=Nf(r.charCodeAt(s)),a=Nf(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 Ce(r){return hc(Be(r))}function je(r){return tn(r),hc(Be(Uint8Array.from(r).reverse()))}function Ze(r,t){return mr(r.toString(16).padStart(t*2,"0"))}function gr(r,t){return Ze(r,t).reverse()}function zg(r){return mr(pr(r))}function at(r,t,e){let n;if(typeof t=="string")try{n=mr(t)}catch(s){throw new Error(r+" must be hex string or Uint8Array, cause: "+s)}else if(We(t))n=Uint8Array.from(t);else throw new Error(r+" must be hex string or Uint8Array");let o=n.length;if(typeof e=="number"&&o!==e)throw new Error(r+" of length "+e+" expected, got "+o);return n}function Ie(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];tn(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}function Gg(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function Wg(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}var uc=r=>typeof r=="bigint"&&Qo<=r;function Fn(r,t,e){return uc(r)&&uc(t)&&uc(e)&&t<=r&&r<e}function qt(r,t,e,n){if(!Fn(t,e,n))throw new Error("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function dc(r){let t;for(t=0;r>Qo;r>>=ts,t+=1);return t}function jg(r,t){return r>>BigInt(t)&ts}function Zg(r,t,e){return r|(e?ts:Qo)<<BigInt(t)}var Vn=r=>(qg<<BigInt(r-1))-ts,fc=r=>new Uint8Array(r),Pf=r=>Uint8Array.from(r);function pc(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=fc(r),o=fc(r),s=0,i=()=>{n.fill(1),o.fill(0),s=0},a=(...l)=>e(o,n,...l),c=(l=fc())=>{o=a(Pf([0]),l),n=a(),l.length!==0&&(o=a(Pf([1]),l),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,d=[];for(;l<t;){n=a();let h=n.slice();d.push(h),l+=n.length}return Ie(...d)};return(l,d)=>{i(),c(l);let h;for(;!(h=d(u()));)c();return i(),h}}var Xg={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"||We(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function he(r,t,e={}){let n=(o,s,i)=>{let a=Xg[s];if(typeof a!="function")throw new Error("invalid validator function");let c=r[o];if(!(i&&c===void 0)&&!a(c,r))throw new Error("param "+String(o)+" is invalid. Expected "+s+", got "+c)};for(let[o,s]of Object.entries(t))n(o,s,!1);for(let[o,s]of Object.entries(e))n(o,s,!0);return r}var Yg=()=>{throw new Error("not implemented")};function yr(r){let t=new WeakMap;return(e,...n)=>{let o=t.get(e);if(o!==void 0)return o;let s=r(e,...n);return t.set(e,s),s}}var gt=BigInt(0),st=BigInt(1),wr=BigInt(2),Jg=BigInt(3),mc=BigInt(4),Df=BigInt(5),Rf=BigInt(8),Qg=BigInt(9),t0=BigInt(16);function Q(r,t){let e=r%t;return e>=gt?e:t+e}function e0(r,t,e){if(t<gt)throw new Error("invalid exponent, negatives unsupported");if(e<=gt)throw new Error("invalid modulus");if(e===st)return gt;let n=st;for(;t>gt;)t&st&&(n=n*r%e),r=r*r%e,t>>=st;return n}function it(r,t,e){let n=r;for(;t-- >gt;)n*=n,n%=e;return n}function rs(r,t){if(r===gt)throw new Error("invert: expected non-zero number");if(t<=gt)throw new Error("invert: expected positive modulus, got "+t);let e=Q(r,t),n=t,o=gt,s=st,i=st,a=gt;for(;e!==gt;){let u=n/e,f=n%e,l=o-i*u,d=s-a*u;n=e,e=f,o=i,s=a,i=l,a=d}if(n!==st)throw new Error("invert: does not exist");return Q(o,t)}function r0(r){let t=(r-st)/wr,e,n,o;for(e=r-st,n=0;e%wr===gt;e/=wr,n++);for(o=wr;o<r&&e0(o,t,r)!==r-st;o++)if(o>1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){let i=(r+st)/mc;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=(e+st)/wr;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,o),e),l=a.pow(c,s),d=a.pow(c,e);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let h=1;for(let m=a.sqr(d);h<u&&!a.eql(m,a.ONE);h++)m=a.sqr(m);let p=a.pow(f,st<<BigInt(u-h-1));f=a.sqr(p),l=a.mul(l,p),d=a.mul(d,f),u=h}return l}}function n0(r){if(r%mc===Jg){let t=(r+st)/mc;return function(n,o){let s=n.pow(o,t);if(!n.eql(n.sqr(s),o))throw new Error("Cannot find square root");return s}}if(r%Rf===Df){let t=(r-Df)/Rf;return function(n,o){let s=n.mul(o,wr),i=n.pow(s,t),a=n.mul(o,i),c=n.mul(n.mul(a,wr),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%t0,r0(r)}var Mf=(r,t)=>(Q(r,t)&st)===st,o0=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function gc(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=o0.reduce((n,o)=>(n[o]="function",n),t);return he(r,e)}function s0(r,t,e){if(e<gt)throw new Error("invalid exponent, negatives unsupported");if(e===gt)return r.ONE;if(e===st)return t;let n=r.ONE,o=t;for(;e>gt;)e&st&&(n=r.mul(n,o)),o=r.sqr(o),e>>=st;return n}function i0(r,t){let e=new Array(t.length),n=t.reduce((s,i,a)=>r.is0(i)?s:(e[a]=s,r.mul(s,i)),r.ONE),o=r.inv(n);return t.reduceRight((s,i,a)=>r.is0(i)?s:(e[a]=r.mul(s,e[a]),r.mul(s,i)),o),e}function yc(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Xe(r,t,e=!1,n={}){if(r<=gt)throw new Error("invalid field: expected ORDER > 0, got "+r);let{nBitLength:o,nByteLength:s}=yc(r,t);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let i,a=Object.freeze({ORDER:r,BITS:o,BYTES:s,MASK:Vn(o),ZERO:gt,ONE:st,create:c=>Q(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return gt<=c&&c<r},is0:c=>c===gt,isOdd:c=>(c&st)===st,neg:c=>Q(-c,r),eql:(c,u)=>c===u,sqr:c=>Q(c*c,r),add:(c,u)=>Q(c+u,r),sub:(c,u)=>Q(c-u,r),mul:(c,u)=>Q(c*u,r),pow:(c,u)=>s0(a,c,u),div:(c,u)=>Q(c*rs(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>rs(c,r),sqrt:n.sqrt||(c=>(i||(i=n0(r)),i(a,c))),invertBatch:c=>i0(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>e?gr(c,s):Ze(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return e?je(c):Ce(c)}});return Object.freeze(a)}function Uf(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let t=r.toString(2).length;return Math.ceil(t/8)}function wc(r){let t=Uf(r);return t+Math.ceil(t/2)}function Of(r,t,e=!1){let n=r.length,o=Uf(t),s=wc(t);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=e?Ce(r):je(r),a=Q(i,t-st)+st;return e?gr(a,o):Ze(a,o)}var Ff=BigInt(0),ns=BigInt(1);function bc(r,t){let e=t.negate();return r?e:t}function Vf(r,t){if(!Number.isSafeInteger(r)||r<=0||r>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+r)}function xc(r,t){Vf(r,t);let e=Math.ceil(t/r)+1,n=2**(r-1);return{windows:e,windowSize:n}}function c0(r,t){if(!Array.isArray(r))throw new Error("array expected");r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function l0(r,t){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}var vc=new WeakMap,Hf=new WeakMap;function Ec(r){return Hf.get(r)||1}function os(r,t){return{constTimeNegate:bc,hasPrecomputes(e){return Ec(e)!==1},unsafeLadder(e,n,o=r.ZERO){let s=e;for(;n>Ff;)n&ns&&(o=o.add(s)),s=s.double(),n>>=ns;return o},precomputeWindow(e,n){let{windows:o,windowSize:s}=xc(n,t),i=[],a=e,c=a;for(let u=0;u<o;u++){c=a,i.push(c);for(let f=1;f<s;f++)c=c.add(a),i.push(c);a=c.double()}return i},wNAF(e,n,o){let{windows:s,windowSize:i}=xc(e,t),a=r.ZERO,c=r.BASE,u=BigInt(2**e-1),f=2**e,l=BigInt(e);for(let d=0;d<s;d++){let h=d*i,p=Number(o&u);o>>=l,p>i&&(p-=f,o+=ns);let m=h,g=h+Math.abs(p)-1,w=d%2!==0,b=p<0;p===0?c=c.add(bc(w,n[m])):a=a.add(bc(b,n[g]))}return{p:a,f:c}},wNAFUnsafe(e,n,o,s=r.ZERO){let{windows:i,windowSize:a}=xc(e,t),c=BigInt(2**e-1),u=2**e,f=BigInt(e);for(let l=0;l<i;l++){let d=l*a;if(o===Ff)break;let h=Number(o&c);if(o>>=f,h>a&&(h-=u,o+=ns),h===0)continue;let p=n[d+Math.abs(h)-1];h<0&&(p=p.negate()),s=s.add(p)}return s},getPrecomputes(e,n,o){let s=vc.get(n);return s||(s=this.precomputeWindow(n,e),e!==1&&vc.set(n,o(s))),s},wNAFCached(e,n,o){let s=Ec(e);return this.wNAF(s,this.getPrecomputes(s,e,o),n)},wNAFCachedUnsafe(e,n,o,s){let i=Ec(e);return i===1?this.unsafeLadder(e,n,s):this.wNAFUnsafe(i,this.getPrecomputes(i,e,o),n,s)},setWindowSize(e,n){Vf(n,t),Hf.set(e,n),vc.delete(e)}}}function ss(r,t,e,n){if(c0(e,r),l0(n,t),e.length!==n.length)throw new Error("arrays of points and scalars must have equal length");let o=r.ZERO,s=dc(BigInt(e.length)),i=s>12?s-3:s>4?s-2:s?2:1,a=(1<<i)-1,c=new Array(a+1).fill(o),u=Math.floor((t.BITS-1)/i)*i,f=o;for(let l=u;l>=0;l-=i){c.fill(o);for(let h=0;h<n.length;h++){let p=n[h],m=Number(p>>BigInt(l)&BigInt(a));c[m]=c[m].add(e[h])}let d=o;for(let h=c.length-1,p=o;h>0;h--)p=p.add(c[h]),d=d.add(p);if(f=f.add(d),l!==0)for(let h=0;h<i;h++)f=f.double()}return f}function Hn(r){return gc(r.Fp),he(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...yc(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var se=BigInt(0),$t=BigInt(1),is=BigInt(2),u0=BigInt(8),f0={zip215:!0};function h0(r){let t=Hn(r);return he(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Kf(r){let t=h0(r),{Fp:e,n,prehash:o,hash:s,randomBytes:i,nByteLength:a,h:c}=t,u=is<<BigInt(a*8)-$t,f=e.create,l=Xe(t.n,t.nBitLength),d=t.uvRatio||((S,E)=>{try{return{isValid:!0,value:e.sqrt(S*e.inv(E))}}catch{return{isValid:!1,value:se}}}),h=t.adjustScalarBytes||(S=>S),p=t.domain||((S,E,C)=>{if(oe("phflag",C),E.length||C)throw new Error("Contexts/pre-hash are not supported");return S});function m(S,E){qt("coordinate "+S,E,se,u)}function g(S){if(!(S instanceof y))throw new Error("ExtendedPoint expected")}let w=yr((S,E)=>{let{ex:C,ey:L,ez:M}=S,U=S.is0();E==null&&(E=U?u0:e.inv(M));let K=f(C*E),$=f(L*E),O=f(M*E);if(U)return{x:se,y:$t};if(O!==$t)throw new Error("invZ was invalid");return{x:K,y:$}}),b=yr(S=>{let{a:E,d:C}=t;if(S.is0())throw new Error("bad point: ZERO");let{ex:L,ey:M,ez:U,et:K}=S,$=f(L*L),O=f(M*M),J=f(U*U),nt=f(J*J),bt=f($*E),xt=f(J*f(bt+O)),Et=f(nt+f(C*f($*O)));if(xt!==Et)throw new Error("bad point: equation left != right (1)");let Bt=f(L*M),Kt=f(U*K);if(Bt!==Kt)throw new Error("bad point: equation left != right (2)");return!0});class y{constructor(E,C,L,M){this.ex=E,this.ey=C,this.ez=L,this.et=M,m("x",E),m("y",C),m("z",L),m("t",M),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof y)throw new Error("extended point not allowed");let{x:C,y:L}=E||{};return m("x",C),m("y",L),new y(C,L,$t,f(C*L))}static normalizeZ(E){let C=e.invertBatch(E.map(L=>L.ez));return E.map((L,M)=>L.toAffine(C[M])).map(y.fromAffine)}static msm(E,C){return ss(y,l,E,C)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){b(this)}equals(E){g(E);let{ex:C,ey:L,ez:M}=this,{ex:U,ey:K,ez:$}=E,O=f(C*$),J=f(U*M),nt=f(L*$),bt=f(K*M);return O===J&&nt===bt}is0(){return this.equals(y.ZERO)}negate(){return new y(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=t,{ex:C,ey:L,ez:M}=this,U=f(C*C),K=f(L*L),$=f(is*f(M*M)),O=f(E*U),J=C+L,nt=f(f(J*J)-U-K),bt=O+K,xt=bt-$,Et=O-K,Bt=f(nt*xt),Kt=f(bt*Et),Dt=f(nt*Et),fe=f(xt*bt);return new y(Bt,Kt,fe,Dt)}add(E){g(E);let{a:C,d:L}=t,{ex:M,ey:U,ez:K,et:$}=this,{ex:O,ey:J,ez:nt,et:bt}=E;if(C===BigInt(-1)){let Yu=f((U-M)*(J+O)),Ju=f((U+M)*(J-O)),za=f(Ju-Yu);if(za===se)return this.double();let Qu=f(K*is*bt),tf=f($*is*nt),ef=tf+Qu,rf=Ju+Yu,nf=tf-Qu,vm=f(ef*za),Em=f(rf*nf),Am=f(ef*nf),Sm=f(za*rf);return new y(vm,Em,Sm,Am)}let xt=f(M*O),Et=f(U*J),Bt=f($*L*bt),Kt=f(K*nt),Dt=f((M+U)*(O+J)-xt-Et),fe=Kt-Bt,be=Kt+Bt,Tn=f(Et-C*xt),ym=f(Dt*fe),wm=f(be*Tn),bm=f(Dt*Tn),xm=f(fe*be);return new y(ym,wm,xm,bm)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,y.normalizeZ)}multiply(E){let C=E;qt("scalar",C,$t,n);let{p:L,f:M}=this.wNAF(C);return y.normalizeZ([L,M])[0]}multiplyUnsafe(E,C=y.ZERO){let L=E;return qt("scalar",L,se,n),L===se?A:this.is0()||L===$t?this:_.wNAFCachedUnsafe(this,L,y.normalizeZ,C)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return w(this,E)}clearCofactor(){let{h:E}=t;return E===$t?this:this.multiplyUnsafe(E)}static fromHex(E,C=!1){let{d:L,a:M}=t,U=e.BYTES;E=at("pointHex",E,U),oe("zip215",C);let K=E.slice(),$=E[U-1];K[U-1]=$&-129;let O=je(K),J=C?u:e.ORDER;qt("pointHex.y",O,se,J);let nt=f(O*O),bt=f(nt-$t),xt=f(L*nt-M),{isValid:Et,value:Bt}=d(bt,xt);if(!Et)throw new Error("Point.fromHex: invalid y coordinate");let Kt=(Bt&$t)===$t,Dt=($&128)!==0;if(!C&&Bt===se&&Dt)throw new Error("Point.fromHex: x=0 and x_0=1");return Dt!==Kt&&(Bt=f(-Bt)),y.fromAffine({x:Bt,y:O})}static fromPrivateKey(E){return k(E).point}toRawBytes(){let{x:E,y:C}=this.toAffine(),L=gr(C,e.BYTES);return L[L.length-1]|=E&$t?128:0,L}toHex(){return Be(this.toRawBytes())}}y.BASE=new y(t.Gx,t.Gy,$t,f(t.Gx*t.Gy)),y.ZERO=new y(se,$t,$t,se);let{BASE:x,ZERO:A}=y,_=os(y,a*8);function v(S){return Q(S,n)}function B(S){return v(je(S))}function k(S){let E=e.BYTES;S=at("private key",S,E);let C=at("hashed private key",s(S),2*E),L=h(C.slice(0,E)),M=C.slice(E,2*E),U=B(L),K=x.multiply(U),$=K.toRawBytes();return{head:L,prefix:M,scalar:U,point:K,pointBytes:$}}function Y(S){return k(S).pointBytes}function H(S=new Uint8Array,...E){let C=Ie(...E);return B(s(p(C,at("context",S),!!o)))}function V(S,E,C={}){S=at("message",S),o&&(S=o(S));let{prefix:L,scalar:M,pointBytes:U}=k(E),K=H(C.context,L,S),$=x.multiply(K).toRawBytes(),O=H(C.context,$,U,S),J=v(K+O*M);qt("signature.s",J,se,n);let nt=Ie($,gr(J,e.BYTES));return at("result",nt,e.BYTES*2)}let D=f0;function I(S,E,C,L=D){let{context:M,zip215:U}=L,K=e.BYTES;S=at("signature",S,2*K),E=at("message",E),C=at("publicKey",C,K),U!==void 0&&oe("zip215",U),o&&(E=o(E));let $=je(S.slice(K,2*K)),O,J,nt;try{O=y.fromHex(C,U),J=y.fromHex(S.slice(0,K),U),nt=x.multiplyUnsafe($)}catch{return!1}if(!U&&O.isSmallOrder())return!1;let bt=H(M,J.toRawBytes(),O.toRawBytes(),E);return J.add(O.multiplyUnsafe(bt)).subtract(nt).clearCofactor().equals(y.ZERO)}return x._setWindowSize(8),{CURVE:t,getPublicKey:Y,sign:V,verify:I,ExtendedPoint:y,utils:{getExtendedPublicKey:k,randomPrivateKey:()=>i(e.BYTES),precompute(S=8,E=y.BASE){return E._setWindowSize(S),E.multiply(BigInt(3)),E}}}}var Ac=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),qf=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),q1=BigInt(0),d0=BigInt(1),$f=BigInt(2),$1=BigInt(3),p0=BigInt(5),m0=BigInt(8);function g0(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),o=BigInt(80),s=Ac,a=r*r%s*r%s,c=it(a,$f,s)*a%s,u=it(c,d0,s)*r%s,f=it(u,p0,s)*u%s,l=it(f,t,s)*f%s,d=it(l,e,s)*l%s,h=it(d,n,s)*d%s,p=it(h,o,s)*h%s,m=it(p,o,s)*h%s,g=it(m,t,s)*f%s;return{pow_p_5_8:it(g,$f,s)*r%s,b2:a}}function y0(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function w0(r,t){let e=Ac,n=Q(t*t*t,e),o=Q(n*n*t,e),s=g0(r*o).pow_p_5_8,i=Q(r*n*s,e),a=Q(t*i*i,e),c=i,u=Q(i*qf,e),f=a===r,l=a===Q(-r,e),d=a===Q(-r*qf,e);return f&&(i=c),(l||d)&&(i=u),Mf(i,e)&&(i=Q(-i,e)),{isValid:f||l,value:i}}var b0=Xe(Ac,void 0,!0),x0={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:b0,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:m0,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Lf,randomBytes:Yo,adjustScalarBytes:y0,uvRatio:w0},Kn=Kf(x0);var as=32,cs=64,Sc=32;function zf(){let r=Kn.utils.randomPrivateKey(),t=Kn.getPublicKey(r);return{privateKey:v0(r,t),publicKey:t}}function Gf(r,t){let e=r.subarray(0,Sc);return Kn.sign(t instanceof Uint8Array?t:t.subarray(),e)}function Wf(r,t,e){return Kn.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}function v0(r,t){let e=new Uint8Array(cs);for(let n=0;n<Sc;n++)e[n]=r[n],e[Sc+n]=t[n];return e}var qn=class{type="Ed25519";raw;constructor(t){this.raw=us(t,as)}toMultihash(){return Se.digest(de(this))}toCID(){return mt.createV1(114,this.toMultihash())}toString(){return Z.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Wf(this.raw,e,t)}},ls=class{type="Ed25519";raw;publicKey;constructor(t,e){this.raw=us(t,cs),this.publicKey=new qn(e)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return Gf(this.raw,t)}};function _c(r){return r=us(r,as),new qn(r)}async function Zf(){let{privateKey:r,publicKey:t}=zf();return new ls(r,t)}function us(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new R(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}function ft(r=0){return new Uint8Array(r)}function Ct(r=0){return new Uint8Array(r)}var E0=Math.pow(2,7),A0=Math.pow(2,14),S0=Math.pow(2,21),Bc=Math.pow(2,28),Cc=Math.pow(2,35),Ic=Math.pow(2,42),kc=Math.pow(2,49),X=128,It=127;function pt(r){if(r<E0)return 1;if(r<A0)return 2;if(r<S0)return 3;if(r<Bc)return 4;if(r<Cc)return 5;if(r<Ic)return 6;if(r<kc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Tc(r,t,e=0){switch(pt(r)){case 8:t[e++]=r&255|X,r/=128;case 7:t[e++]=r&255|X,r/=128;case 6:t[e++]=r&255|X,r/=128;case 5:t[e++]=r&255|X,r/=128;case 4:t[e++]=r&255|X,r>>>=7;case 3:t[e++]=r&255|X,r>>>=7;case 2:t[e++]=r&255|X,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function _0(r,t,e=0){switch(pt(r)){case 8:t.set(e++,r&255|X),r/=128;case 7:t.set(e++,r&255|X),r/=128;case 6:t.set(e++,r&255|X),r/=128;case 5:t.set(e++,r&255|X),r/=128;case 4:t.set(e++,r&255|X),r>>>=7;case 3:t.set(e++,r&255|X),r>>>=7;case 2:t.set(e++,r&255|X),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Lc(r,t){let e=r[t],n=0;if(n+=e&It,e<X||(e=r[t+1],n+=(e&It)<<7,e<X)||(e=r[t+2],n+=(e&It)<<14,e<X)||(e=r[t+3],n+=(e&It)<<21,e<X)||(e=r[t+4],n+=(e&It)*Bc,e<X)||(e=r[t+5],n+=(e&It)*Cc,e<X)||(e=r[t+6],n+=(e&It)*Ic,e<X)||(e=r[t+7],n+=(e&It)*kc,e<X))return n;throw new RangeError("Could not decode varint")}function B0(r,t){let e=r.get(t),n=0;if(n+=e&It,e<X||(e=r.get(t+1),n+=(e&It)<<7,e<X)||(e=r.get(t+2),n+=(e&It)<<14,e<X)||(e=r.get(t+3),n+=(e&It)<<21,e<X)||(e=r.get(t+4),n+=(e&It)*Bc,e<X)||(e=r.get(t+5),n+=(e&It)*Cc,e<X)||(e=r.get(t+6),n+=(e&It)*Ic,e<X)||(e=r.get(t+7),n+=(e&It)*kc,e<X))return n;throw new RangeError("Could not decode varint")}function kt(r,t,e=0){return t==null&&(t=Ct(pt(r))),t instanceof Uint8Array?Tc(r,t,e):_0(r,t,e)}function ie(r,t=0){return r instanceof Uint8Array?Lc(r,t):B0(r,t)}var Nc=new Float32Array([-0]),Ye=new Uint8Array(Nc.buffer);function Xf(r,t,e){Nc[0]=r,t[e]=Ye[0],t[e+1]=Ye[1],t[e+2]=Ye[2],t[e+3]=Ye[3]}function Yf(r,t){return Ye[0]=r[t],Ye[1]=r[t+1],Ye[2]=r[t+2],Ye[3]=r[t+3],Nc[0]}var Pc=new Float64Array([-0]),Tt=new Uint8Array(Pc.buffer);function Jf(r,t,e){Pc[0]=r,t[e]=Tt[0],t[e+1]=Tt[1],t[e+2]=Tt[2],t[e+3]=Tt[3],t[e+4]=Tt[4],t[e+5]=Tt[5],t[e+6]=Tt[6],t[e+7]=Tt[7]}function Qf(r,t){return Tt[0]=r[t],Tt[1]=r[t+1],Tt[2]=r[t+2],Tt[3]=r[t+3],Tt[4]=r[t+4],Tt[5]=r[t+5],Tt[6]=r[t+6],Tt[7]=r[t+7],Pc[0]}var C0=BigInt(Number.MAX_SAFE_INTEGER),I0=BigInt(Number.MIN_SAFE_INTEGER),jt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return xr;if(t<C0&&t>I0)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>th&&(o=0n,++n>th&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return xr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):xr}},xr=new jt(0,0);xr.toBigInt=function(){return 0n};xr.zzEncode=xr.zzDecode=function(){return this};xr.length=function(){return 1};var th=4294967296n;function eh(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function rh(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Dc(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function ae(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function fs(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Rc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,ae(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw ae(this,4);return fs(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ae(this,4);return fs(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ae(this,4);let t=Yf(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw ae(this,4);let t=Qf(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw ae(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return rh(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw ae(this,t);this.pos+=t}else do if(this.pos>=this.len)throw ae(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new jt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw ae(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw ae(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw ae(this,8);let t=fs(this.buf,this.pos+=4),e=fs(this.buf,this.pos+=4);return new jt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Lc(this.buf,this.pos);return this.pos+=pt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Mc(r){return new Rc(r instanceof Uint8Array?r:r.subarray())}function Mt(r,t,e){let n=Mc(r);return t.decode(n,void 0,e)}var Uc={};Rt(Uc,{base10:()=>k0});var k0=$e({prefix:"9",name:"base10",alphabet:"0123456789"});var Oc={};Rt(Oc,{base16:()=>T0,base16upper:()=>L0});var T0=lt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),L0=lt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Fc={};Rt(Fc,{base2:()=>N0});var N0=lt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vc={};Rt(Vc,{base256emoji:()=>U0});var oh=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}"),P0=oh.reduce((r,t,e)=>(r[e]=t,r),[]),D0=oh.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function R0(r){return r.reduce((t,e)=>(t+=P0[e],t),"")}function M0(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=D0[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var U0=Gr({prefix:"\u{1F680}",name:"base256emoji",encode:R0,decode:M0});var qc={};Rt(qc,{base64:()=>Hc,base64pad:()=>O0,base64url:()=>Kc,base64urlpad:()=>F0});var Hc=lt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),O0=lt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Kc=lt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),F0=lt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var $c={};Rt($c,{base8:()=>V0});var V0=lt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var zc={};Rt(zc,{identity:()=>H0});var H0=Gr({prefix:"\0",name:"identity",encode:r=>ff(r),decode:r=>uf(r)});var Av=new TextEncoder,Sv=new TextDecoder;var jc={};Rt(jc,{sha256:()=>en,sha512:()=>$0});function Wc({name:r,code:t,encode:e}){return new Gc(r,t,e)}var Gc=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?ee(this.code,e):e.then(n=>ee(this.code,n))}else throw Error("Unknown type, must be binary type")}};function ih(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var en=Wc({name:"sha2-256",code:18,encode:ih("SHA-256")}),$0=Wc({name:"sha2-512",code:19,encode:ih("SHA-512")});var $n={...zc,...Fc,...$c,...Uc,...Oc,...rc,...nc,...ec,...qc,...Vc},Mv={...jc,...ic};function ch(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var ah=ch("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Zc=ch("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=Ct(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),z0={utf8:ah,"utf-8":ah,hex:$n.base16,latin1:Zc,ascii:Zc,binary:Zc,...$n},hs=z0;function P(r,t="utf8"){let e=hs[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function Xc(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return Ct(i);o+i>t&&(n=Ct(t),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(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Yc(){}var Qc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},G0=Xc();function W0(r){return globalThis.Buffer!=null?Ct(r):G0(r)}var Gn=class{len;head;tail;states;constructor(){this.len=0,this.head=new vr(Yc,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new vr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new tl((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(ds,10,jt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=jt.fromBigInt(t);return this._push(ds,e.length(),e)}uint64Number(t){return this._push(Tc,pt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=jt.fromBigInt(t).zzEncode();return this._push(ds,e.length(),e)}sint64Number(t){let e=jt.fromNumber(t).zzEncode();return this._push(ds,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Jc,1,t?1:0)}fixed32(t){return this._push(zn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=jt.fromBigInt(t);return this._push(zn,4,e.lo)._push(zn,4,e.hi)}fixed64Number(t){let e=jt.fromNumber(t);return this._push(zn,4,e.lo)._push(zn,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Xf,4,t)}double(t){return this._push(Jf,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Jc,1,0):this.uint32(e)._push(Z0,e,t)}string(t){let e=eh(t);return e!==0?this.uint32(e)._push(Dc,e,t):this._push(Jc,1,0)}fork(){return this.states=new Qc(this),this.head=this.tail=new vr(Yc,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(Yc,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=W0(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Jc(r,t,e){t[e]=r&255}function j0(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var tl=class extends vr{next;constructor(t,e){super(j0,t,e),this.next=void 0}};function ds(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function zn(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Z0(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Gn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(X0,t,r),this},Gn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Y0,t,r),this});function X0(r,t,e){t.set(r,e)}function Y0(r,t,e){r.length<40?Dc(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(P(r),e)}function el(){return new Gn}function Ut(r,t){let e=el();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var rn;(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"})(rn||(rn={}));function ps(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function rl(r){function t(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let e=function(s,i){let a=t(s);i.int32(a)},n=function(s){let i=s.int32();return t(i)};return ps("enum",rn.VARINT,e,n)}function Ot(r,t){return ps("message",rn.LENGTH_DELIMITED,r,t)}var Er=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"},Wn=class extends Error{code="ERR_MAX_SIZE";name="MaxSizeError"};var yt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(yt||(yt={}));var nl;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(nl||(nl={}));(function(r){r.codec=()=>rl(nl)})(yt||(yt={}));var pe;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),yt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.Type=yt.codec().decode(e);break}case 2:{s.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Ut(e,r.codec()),r.decode=(e,n)=>Mt(e,r.codec(),n)})(pe||(pe={}));var ol;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),yt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.Type=yt.codec().decode(e);break}case 2:{s.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Ut(e,r.codec()),r.decode=(e,n)=>Mt(e,r.codec(),n)})(ol||(ol={}));var oo={};Rt(oo,{MAX_RSA_KEY_SIZE:()=>li,generateRSAKeyPair:()=>wl,jwkToJWKKeyPair:()=>ud,jwkToPkcs1:()=>gy,jwkToPkix:()=>gl,jwkToRSAPrivateKey:()=>ld,pkcs1ToJwk:()=>id,pkcs1ToRSAPrivateKey:()=>cd,pkixToJwk:()=>ad,pkixToRSAPublicKey:()=>yl});function J0(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function sl(r,...t){if(!J0(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error("Uint8Array expected of length "+t+", got length="+r.length)}function il(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function uh(r,t){sl(r);let e=t.outputLen;if(r.length<e)throw new Error("digestInto() expects output buffer of length at least "+e)}var Ar=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var gs=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ce=(r,t)=>r<<32-t|r>>>t;function Q0(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function al(r){return typeof r=="string"&&(r=Q0(r)),sl(r),r}var ms=class{clone(){return this._cloneInto()}};function fh(r){let t=n=>r().update(al(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function hh(r=32){if(Ar&&typeof Ar.getRandomValues=="function")return Ar.getRandomValues(new Uint8Array(r));if(Ar&&typeof Ar.randomBytes=="function")return Ar.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function ty(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let o=BigInt(32),s=BigInt(4294967295),i=Number(e>>o&s),a=Number(e&s),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}var dh=(r,t,e)=>r&t^~r&e,ph=(r,t,e)=>r&t^r&e^t&e,ys=class extends ms{constructor(t,e,n,o){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=gs(this.buffer)}update(t){il(this);let{view:e,buffer:n,blockLen:o}=this;t=al(t);let s=t.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=gs(t);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){il(this),uh(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[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++)e[l]=0;ty(n,o-8,BigInt(this.length*8),s),this.process(n,0);let a=gs(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return t.length=o,t.pos=a,t.finished=s,t.destroyed=i,o%e&&t.buffer.set(n),t}};var ey=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]),Je=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qe=new Uint32Array(64),cl=class extends ys{constructor(){super(64,32,8,!1),this.A=Je[0]|0,this.B=Je[1]|0,this.C=Je[2]|0,this.D=Je[3]|0,this.E=Je[4]|0,this.F=Je[5]|0,this.G=Je[6]|0,this.H=Je[7]|0}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,e){for(let l=0;l<16;l++,e+=4)Qe[l]=t.getUint32(e,!1);for(let l=16;l<64;l++){let d=Qe[l-15],h=Qe[l-2],p=ce(d,7)^ce(d,18)^d>>>3,m=ce(h,17)^ce(h,19)^h>>>10;Qe[l]=m+Qe[l-7]+p+Qe[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 d=ce(a,6)^ce(a,11)^ce(a,25),h=f+d+dh(a,c,u)+ey[l]+Qe[l]|0,m=(ce(n,2)^ce(n,13)^ce(n,22))+ph(n,o,s)|0;f=u,u=c,c=a,a=i+h|0,i=s,s=o,o=n,n=h+m|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(){Qe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ws=fh(()=>new cl);var q=hr(mh());function Sr(r,t){let e=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)e+=r[r.length-1-n]*Math.pow(2,t*n);return e}function tr(r,t,e=-1){let n=e,o=r,s=0,i=Math.pow(2,t);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*t);u[s-f-1]=Math.floor(o/l),o-=u[s-f-1]*l}return c}i*=Math.pow(2,t)}return new ArrayBuffer(0)}function vs(...r){let t=0,e=0;for(let s of r)t+=s.length;let n=new ArrayBuffer(t),o=new Uint8Array(n);for(let s of r)o.set(s,e),e+=s.length;return o}function ul(){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 t=new ArrayBuffer(this.valueHex.byteLength),e=new Uint8Array(t);for(let a=0;a<this.valueHex.byteLength;a++)e[a]=0;e[0]=r[0]&128;let n=Sr(e,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,Sr(s,8)-n}function gh(r){let t=r<0?r*-1:r,e=128;for(let n=1;n<8;n++){if(t<=e){if(r<0){let i=e-t,a=tr(i,8,n),c=new Uint8Array(a);return c[0]|=128,a}let o=tr(t,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}e*=Math.pow(2,8)}return new ArrayBuffer(0)}function yh(r,t){if(r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let o=0;o<e.length;o++)if(e[o]!==n[o])return!1;return!0}function zt(r,t){let e=r.toString(10);if(t<e.length)return"";let n=t-e.length,o=new Array(n);for(let i=0;i<n;i++)o[i]="0";return o.join("").concat(e)}var _2=Math.log(2);function Es(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function fl(r){let t=0,e=0;for(let o=0;o<r.length;o++){let s=r[o];t+=s.byteLength}let n=new Uint8Array(t);for(let o=0;o<r.length;o++){let s=r[o];n.set(new Uint8Array(s),e),e+=s.byteLength}return n.buffer}function Pe(r,t,e,n){return t instanceof Uint8Array?t.byteLength?e<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):t.byteLength-e-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 Zn=class{constructor(){this.items=[]}write(t){this.items.push(t)}final(){return fl(this.items)}},jn=[new Uint8Array([1])],wh="0123456789";var cn="",le=new ArrayBuffer(0),hl=new Uint8Array(0),Xn="EndOfContent",xh="OCTET STRING",vh="BIT STRING";function De(r){var t;return t=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?q.BufferSourceConverter.toUint8Array(s.valueHex):hl}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(!Pe(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",le)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:q.Convert.ToHex(this.valueHexView)}}},t.NAME="hexBlock",t}var Te=class{constructor({blockLength:t=0,error:e=cn,warnings:n=[],valueBeforeDecode:o=hl}={}){this.blockLength=t,this.error=e,this.warnings=n,this.valueBeforeDecodeView=q.BufferSourceConverter.toUint8Array(o)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(t){this.valueBeforeDecodeView=new Uint8Array(t)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:q.Convert.ToHex(this.valueBeforeDecodeView)}}};Te.NAME="baseBlock";var Lt=class extends Te{fromBER(t,e,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(t,e){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Lt.NAME="valueBlock";var As=class extends De(Te){constructor({idBlock:t={}}={}){var e,n,o,s;super(),t?(this.isHexOnly=(e=t.isHexOnly)!==null&&e!==void 0?e:!1,this.valueHexView=t.valueHex?q.BufferSourceConverter.toUint8Array(t.valueHex):hl,this.tagClass=(n=t.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(o=t.tagNumber)!==null&&o!==void 0?o:-1,this.isConstructed=(s=t.isConstructed)!==null&&s!==void 0?s:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(t=!1){let e=0;switch(this.tagClass){case 1:e|=0;break;case 2:e|=64;break;case 3:e|=128;break;case 4:e|=192;break;default:return this.error="Unknown tag class",le}if(this.isConstructed&&(e|=32),this.tagNumber<31&&!this.isHexOnly){let o=new Uint8Array(1);if(!t){let s=this.tagNumber;s&=31,e|=s,o[0]=e}return o.buffer}if(!this.isHexOnly){let o=tr(this.tagNumber,7),s=new Uint8Array(o),i=o.byteLength,a=new Uint8Array(i+1);if(a[0]=e|31,!t){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]=e|31,!t){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(t,e,n){let o=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,o,e,n))return-1;let s=o.subarray(e,e+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 d=new Uint8Array(f);for(let h=0;h<u.length;h++)d[h]=u[h];u=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,u[c-1]=s[c]&127;let l=new Uint8Array(c);for(let d=0;d<c;d++)l[d]=u[d];u=this.valueHexView=new Uint8Array(c),u.set(l),this.blockLength<=9?this.tagNumber=Sr(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 e+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};As.NAME="identificationBlock";var Ss=class extends Te{constructor({lenBlock:t={}}={}){var e,n,o;super(),this.isIndefiniteForm=(e=t.isIndefiniteForm)!==null&&e!==void 0?e:!1,this.longFormUsed=(n=t.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(o=t.length)!==null&&o!==void 0?o:0}fromBER(t,e,n){let o=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,o,e,n))return-1;let s=o.subarray(e,e+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,e+this.blockLength;if(this.longFormUsed=!!(s[0]&128),this.longFormUsed===!1)return this.length=s[0],this.blockLength=1,e+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=e+1,c=o.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Sr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){let o=tr(this.length,8);if(o.byteLength>127)return this.error="Too big length",le;if(e=new ArrayBuffer(o.byteLength+1),t)return e;let s=new Uint8Array(o);n=new Uint8Array(e),n[0]=o.byteLength|128;for(let i=0;i<o.byteLength;i++)n[i+1]=s[i];return e}return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=this.length),e}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};Ss.NAME="lengthBlock";var T={},At=class extends Te{constructor({name:t=cn,optional:e=!1,primitiveSchema:n,...o}={},s){super(o),this.name=t,this.optional=e,n&&(this.primitiveSchema=n),this.idBlock=new As(o),this.lenBlock=new Ss(o),this.valueBlock=s?new s(o):new Lt(o)}fromBER(t,e,n){let o=this.valueBlock.fromBER(t,e,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(t,e){let n=e||new Zn;e||Eh(this);let o=this.idBlock.toBER(t);if(n.write(o),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(t,n),n.write(new ArrayBuffer(2));else{let s=this.valueBlock.toBER(t);this.lenBlock.length=s.byteLength;let i=this.lenBlock.toBER(t);n.write(i),n.write(s)}return e?le:n.final()}toJSON(){let t={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(t.primitiveSchema=this.primitiveSchema.toJSON()),t}toString(t="ascii"){return t==="ascii"?this.onAsciiEncoding():q.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${q.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(t){if(this===t)return!0;if(!(t instanceof this.constructor))return!1;let e=this.toBER(),n=t.toBER();return yh(e,n)}};At.NAME="BaseBlock";function Eh(r){if(r instanceof T.Constructed)for(let t of r.valueBlock.value)Eh(t)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var _s=class extends At{constructor({value:t=cn,...e}={},n){super(e,n),t&&this.fromString(t)}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}fromBER(t,e,n){let o=this.valueBlock.fromBER(t,e,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}'`}};_s.NAME="BaseStringBlock";var Bs=class extends De(Lt){constructor({isHexOnly:t=!0,...e}={}){super(e),this.isHexOnly=t}};Bs.NAME="PrimitiveValueBlock";var Ah,Cs=class extends At{constructor(t={}){super(t,Bs),this.idBlock.isConstructed=!1}};Ah=Cs;T.Primitive=Ah;Cs.NAME="PRIMITIVE";function uy(r,t){if(r instanceof t)return r;let e=new t;return e.idBlock=r.idBlock,e.lenBlock=r.lenBlock,e.warnings=r.warnings,e.valueBeforeDecodeView=r.valueBeforeDecodeView,e}function ai(r,t=0,e=r.length){let n=t,o=new At({},Lt),s=new Te;if(!Pe(s,r,t,e))return o.error=s.error,{offset:-1,result:o};if(!r.subarray(t,t+e).length)return o.error="Zero buffer length",{offset:-1,result:o};let a=o.idBlock.fromBER(r,t,e);if(o.idBlock.warnings.length&&o.warnings.concat(o.idBlock.warnings),a===-1)return o.error=o.idBlock.error,{offset:-1,result:o};if(t=a,e-=o.idBlock.blockLength,a=o.lenBlock.fromBER(r,t,e),o.lenBlock.warnings.length&&o.warnings.concat(o.lenBlock.warnings),a===-1)return o.error=o.lenBlock.error,{offset:-1,result:o};if(t=a,e-=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=At;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=T.EndOfContent;break;case 1:c=T.Boolean;break;case 2:c=T.Integer;break;case 3:c=T.BitString;break;case 4:c=T.OctetString;break;case 5:c=T.Null;break;case 6:c=T.ObjectIdentifier;break;case 10:c=T.Enumerated;break;case 12:c=T.Utf8String;break;case 13:c=T.RelativeObjectIdentifier;break;case 14:c=T.TIME;break;case 15:return o.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:o};case 16:c=T.Sequence;break;case 17:c=T.Set;break;case 18:c=T.NumericString;break;case 19:c=T.PrintableString;break;case 20:c=T.TeletexString;break;case 21:c=T.VideotexString;break;case 22:c=T.IA5String;break;case 23:c=T.UTCTime;break;case 24:c=T.GeneralizedTime;break;case 25:c=T.GraphicString;break;case 26:c=T.VisibleString;break;case 27:c=T.GeneralString;break;case 28:c=T.UniversalString;break;case 29:c=T.CharacterString;break;case 30:c=T.BmpString;break;case 31:c=T.DATE;break;case 32:c=T.TimeOfDay;break;case 33:c=T.DateTime;break;case 34:c=T.Duration;break;default:{let u=o.idBlock.isConstructed?new T.Constructed:new T.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?T.Constructed:T.Primitive}return o=uy(o,c),a=o.fromBER(r,t,o.lenBlock.isIndefiniteForm?e:o.lenBlock.length),o.valueBeforeDecodeView=r.subarray(n,n+o.blockLength),{offset:a,result:o}}function dl(r){if(!r.byteLength){let t=new At({},Lt);return t.error="Input buffer has zero length",{offset:-1,result:t}}return ai(q.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function fy(r,t){return r?1:t}var me=class extends Lt{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){let o=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,o,e,n))return-1;if(this.valueBeforeDecodeView=o.subarray(e,e+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),e;let s=e;for(;fy(this.isIndefiniteForm,n)>0;){let i=ai(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===Xn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===Xn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),s}toBER(t,e){let n=e||new Zn;for(let o=0;o<this.value.length;o++)this.value[o].toBER(t,n);return e?le:n.final()}toJSON(){let t={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let e of this.value)t.value.push(e.toJSON());return t}};me.NAME="ConstructedValueBlock";var Sh,er=class extends At{constructor(t={}){super(t,me),this.idBlock.isConstructed=!0}fromBER(t,e,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let o=this.valueBlock.fromBER(t,e,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 t=[];for(let n of this.valueBlock.value)t.push(n.toString("ascii").split(`
3
- `).map(o=>` ${o}`).join(`
4
- `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
5
- ${t.join(`
6
- `)}`:`${e} :`}};Sh=er;T.Constructed=Sh;er.NAME="CONSTRUCTED";var Is=class extends Lt{fromBER(t,e,n){return e}toBER(t){return le}};Is.override="EndOfContentValueBlock";var _h,ks=class extends At{constructor(t={}){super(t,Is),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};_h=ks;T.EndOfContent=_h;ks.NAME=Xn;var Bh,on=class extends At{constructor(t={}){super(t,Lt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let o=new Uint8Array(n);o[0]=5,o[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Bh=on;T.Null=Bh;on.NAME="NULL";var Ts=class extends De(Lt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=q.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let o=q.BufferSourceConverter.toUint8Array(t);return Pe(this,o,e,n)?(this.valueHexView=o.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,ul.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Ts.NAME="BooleanValueBlock";var Ch,Ls=class extends At{constructor(t={}){super(t,Ts),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Ch=Ls;T.Boolean=Ch;Ls.NAME="BOOLEAN";var Ns=class extends De(me){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let o=0;if(this.isConstructed){if(this.isHexOnly=!1,o=me.prototype.fromBER.call(this,t,e,n),o===-1)return o;for(let s=0;s<this.value.length;s++){let i=this.value[s].constructor.NAME;if(i===Xn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==xh)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,o=super.fromBER(t,e,n),this.blockLength=n;return o}toBER(t,e){return this.isConstructed?me.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Ns.NAME="OctetStringValueBlock";var Ih,Ps=class r extends At{constructor({idBlock:t={},lenBlock:e={},...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,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Ns),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let s=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(s.byteLength){let i=ai(s,0,s.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?er.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${q.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return q.BufferSourceConverter.concat(t)}};Ih=Ps;T.OctetString=Ih;Ps.NAME=xh;var Ds=class extends De(me){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let o=-1;if(this.isConstructed){if(o=me.prototype.fromBER.call(this,t,e,n),o===-1)return o;for(let a of this.value){let c=a.constructor.NAME;if(c===Xn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==vh)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=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,s,e,n))return-1;let i=s.subarray(e,e+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=ai(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,e+n}toBER(t,e){if(this.isConstructed)return me.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return le;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}}};Ds.NAME="BitStringValueBlock";var kh,sn=class extends At{constructor({idBlock:t={},lenBlock:e={},...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,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Ds),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return er.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let o of e)t.push(o.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};kh=sn;T.BitString=kh;sn.NAME=vh;var Th;function hy(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),o=new Uint8Array(t),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 d=f;d>=0;d--,l++){switch(!0){case l<a.length:u=s[i-l]+a[c-l]+e[0];break;default:u=s[i-l]+e[0]}switch(e[0]=u/10,!0){case l>=s.length:s=vs(new Uint8Array([u%10]),s);break;default:s[i-l]=u%10}}return e[0]>0&&(s=vs(e,s)),s}function bh(r){if(r>=jn.length)for(let t=jn.length;t<=r;t++){let e=new Uint8Array([0]),n=jn[t-1].slice(0);for(let o=n.length-1;o>=0;o--){let s=new Uint8Array([(n[o]<<1)+e[0]]);e[0]=s[0]/10,n[o]=s[0]%10}e[0]>0&&(n=vs(e,n)),jn.push(n)}return jn[r]}function dy(r,t){let e=0,n=new Uint8Array(r),o=new Uint8Array(t),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]-e,!0){case u<0:e=1,s[i-f]=u+10;break;default:e=0,s[i-f]=u}if(e>0)for(let l=i-c+1;l>=0;l--,f++)if(u=s[i-f]-e,u<0)e=1,s[i-f]=u+10;else{e=0,s[i-f]=u;break}return s.slice()}var Yn=class extends De(Lt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=ul.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(gh(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,o=0){let s=this.fromBER(t,e,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(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let o=super.fromBER(t,e,n);return o===-1||this.setValueHex(),o}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,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 t:e=dy(bh(n),e),i="-";break;default:e=hy(e,bh(n))}n++,o>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(i+=wh.charAt(e[c]));return a===!1&&(i+=wh.charAt(0)),i}};Th=Yn;Yn.NAME="IntegerValueBlock";Object.defineProperty(Th.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var Lh,St=class r extends At{constructor(t={}){super(t,Yn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Es(),BigInt(this.valueBlock.toString())}static fromBigInt(t){Es();let e=BigInt(t),n=new Zn,o=e.toString(16).replace(/^-/,""),s=new Uint8Array(q.Convert.FromHex(o));if(e<0){let a=new Uint8Array(s.length+(s[0]&128?1:0));a[0]|=128;let u=BigInt(`0x${q.Convert.ToHex(a)}`)+e,f=q.BufferSourceConverter.toUint8Array(q.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 t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};Lh=St;T.Integer=Lh;St.NAME="INTEGER";var Nh,Rs=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};Nh=Rs;T.Enumerated=Nh;Rs.NAME="ENUMERATED";var Jn=class extends De(Lt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let o=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,o,e,n))return-1;let s=o.subarray(e,e+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=Sr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){Es();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let o=0;o<n.length;o++)n[o]=parseInt(e.slice(o*7,o*7+7),2)+(o+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let 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 e=tr(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",le;let n=new Uint8Array(e.byteLength);if(!t){let o=new Uint8Array(e),s=e.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n}toString(){let t="";if(this.isHexOnly)t=q.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Jn.NAME="sidBlock";var Ms=class extends Lt{constructor({value:t=cn,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let o=e;for(;n>0;){let s=new Jn;if(o=s.fromBER(t,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(t){let e=[];for(let n=0;n<this.value.length;n++){let o=this.value[n].toBER(t);if(o.byteLength===0)return this.error=this.value[n].error,le;e.push(o)}return fl(e)}fromString(t){this.value=[];let e=0,n=0,o="",s=!1;do if(n=t.indexOf(".",e),n===-1?o=t.substring(e):o=t.substring(e,n),e=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 Jn;if(o>Number.MAX_SAFE_INTEGER){Es();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 t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(t=`${t}.`),e?(o=`{${o}}`,this.value[n].isFirstSid?t=`2.{${o} - 80}`:t+=o):t+=o}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Ms.NAME="ObjectIdentifierValueBlock";var Ph,an=class extends At{constructor(t={}){super(t,Ms),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};Ph=an;T.ObjectIdentifier=Ph;an.NAME="OBJECT IDENTIFIER";var Qn=class extends De(Te){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let o=q.BufferSourceConverter.toUint8Array(t);if(!Pe(this,o,e,n))return-1;let s=o.subarray(e,e+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=Sr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let 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 e=tr(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",le;let n=new Uint8Array(e.byteLength);if(!t){let o=new Uint8Array(e),s=e.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n.buffer}toString(){let t="";return this.isHexOnly?t=q.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Qn.NAME="relativeSidBlock";var Us=class extends Lt{constructor({value:t=cn,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let o=e;for(;n>0;){let s=new Qn;if(o=s.fromBER(t,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(t,e){let n=[];for(let o=0;o<this.value.length;o++){let s=this.value[o].toBER(t);if(s.byteLength===0)return this.error=this.value[o].error,le;n.push(s)}return fl(n)}fromString(t){this.value=[];let e=0,n=0,o="";do{n=t.indexOf(".",e),n===-1?o=t.substring(e):o=t.substring(e,n),e=n+1;let s=new Qn;if(s.valueDec=parseInt(o,10),isNaN(s.valueDec))return!0;this.value.push(s)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(o=`{${o}}`),t+=o}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Us.NAME="RelativeObjectIdentifierValueBlock";var Dh,Os=class extends At{constructor(t={}){super(t,Us),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};Dh=Os;T.RelativeObjectIdentifier=Dh;Os.NAME="RelativeObjectIdentifier";var Rh,Le=class extends er{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};Rh=Le;T.Sequence=Rh;Le.NAME="SEQUENCE";var Mh,Fs=class extends er{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};Mh=Fs;T.Set=Mh;Fs.NAME="SET";var Vs=class extends De(Lt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=cn}toJSON(){return{...super.toJSON(),value:this.value}}};Vs.NAME="StringValueBlock";var Hs=class extends Vs{};Hs.NAME="SimpleStringValueBlock";var Ft=class extends _s{constructor({...t}={}){super(t,Hs)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,q.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let o=0;o<e;o++)n[o]=t.charCodeAt(o);this.valueBlock.value=t}};Ft.NAME="SIMPLE STRING";var Ks=class extends Ft{fromBuffer(t){this.valueBlock.valueHexView=q.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=q.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=q.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(q.Convert.FromUtf8String(t)),this.valueBlock.value=t}};Ks.NAME="Utf8StringValueBlock";var Uh,Ne=class extends Ks{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};Uh=Ne;T.Utf8String=Uh;Ne.NAME="UTF8String";var qs=class extends Ft{fromBuffer(t){this.valueBlock.value=q.Convert.ToUtf16String(t),this.valueBlock.valueHexView=q.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(q.Convert.FromUtf16String(t))}};qs.NAME="BmpStringValueBlock";var Oh,$s=class extends qs{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};Oh=$s;T.BmpString=Oh;$s.NAME="BMPString";var zs=class extends Ft{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);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(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let o=0;o<e;o++){let s=tr(t.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=t}};zs.NAME="UniversalStringValueBlock";var Fh,Gs=class extends zs{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Fh=Gs;T.UniversalString=Fh;Gs.NAME="UniversalString";var Vh,Ws=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Vh=Ws;T.NumericString=Vh;Ws.NAME="NumericString";var Hh,js=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};Hh=js;T.PrintableString=Hh;js.NAME="PrintableString";var Kh,Zs=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Kh=Zs;T.TeletexString=Kh;Zs.NAME="TeletexString";var qh,Xs=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};qh=Xs;T.VideotexString=qh;Xs.NAME="VideotexString";var $h,Ys=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};$h=Ys;T.IA5String=$h;Ys.NAME="IA5String";var zh,Js=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};zh=Js;T.GraphicString=zh;Js.NAME="GraphicString";var Gh,to=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Gh=to;T.VisibleString=Gh;to.NAME="VisibleString";var Wh,Qs=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Wh=Qs;T.GeneralString=Wh;Qs.NAME="GeneralString";var jh,ti=class extends Ft{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};jh=ti;T.CharacterString=jh;ti.NAME="CharacterString";var Zh,eo=class extends to{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let o=0;o<t.length;o++)this.valueBlock.valueHexView[o]=t.charCodeAt(o)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,q.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let 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(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=zt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=zt(this.month,2),e[2]=zt(this.day,2),e[3]=zt(this.hour,2),e[4]=zt(this.minute,2),e[5]=zt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Zh=eo;T.UTCTime=Zh;eo.NAME="UTCTime";var Xh,ei=class extends eo{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",o="",s=0,i,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let l=new Number(t[t.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,d=n.indexOf("+"),h="";if(d===-1&&(d=n.indexOf("-"),l=-1),d!==-1){if(h=n.substring(d+1),n=n.substring(0,d),h.length!==2&&h.length!==4)throw new Error("Wrong input string for conversion");let p=parseInt(h.substring(0,2),10);if(isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*p,h.length===4){if(p=parseInt(h.substring(2,4),10),isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");c=l*p}}}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(e===!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(t="iso"){if(t==="iso"){let e=[];return e.push(zt(this.year,4)),e.push(zt(this.month,2)),e.push(zt(this.day,2)),e.push(zt(this.hour,2)),e.push(zt(this.minute,2)),e.push(zt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(zt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Xh=ei;T.GeneralizedTime=Xh;ei.NAME="GeneralizedTime";var Yh,ri=class extends Ne{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Yh=ri;T.DATE=Yh;ri.NAME="DATE";var Jh,ni=class extends Ne{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Jh=ni;T.TimeOfDay=Jh;ni.NAME="TimeOfDay";var Qh,oi=class extends Ne{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Qh=oi;T.DateTime=Qh;oi.NAME="DateTime";var td,si=class extends Ne{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};td=si;T.Duration=td;si.NAME="Duration";var ed,ii=class extends Ne{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};ed=ii;T.TIME=ed;ii.NAME="TIME";function et(r,t="utf8"){let e=hs[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function ln(r){if(isNaN(r)||r<=0)throw new R("random bytes length must be a Number bigger than 0");return hh(r)}var ro=class extends Error{constructor(t="An error occurred while signing a message"){super(t),this.name="SigningError"}},no=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},ci=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var rd={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new ci("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var rr=rd;async function nd(r){let t=await rr.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await my(t);return{privateKey:e[0],publicKey:e[1]}}async function od(r,t){let e=await rr.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await rr.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function sd(r,t,e){let n=await rr.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return rr.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function my(r){if(r.privateKey==null||r.publicKey==null)throw new R("Private and public key are required");return Promise.all([rr.get().subtle.exportKey("jwk",r.privateKey),rr.get().subtle.exportKey("jwk",r.publicKey)])}function pl(r){if(r.kty!=="RSA")throw new R("invalid key type");if(r.n==null)throw new R("invalid key modulus");return P(r.n,"base64url").length*8}var un=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=oo.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return mt.createV1(114,this._multihash)}toString(){return Z.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return sd(this._key,e,t)}},so=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=oo.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return od(this._key,t)}};var li=8192,ml=18;function id(r){let{result:t}=dl(r),e=t.valueBlock.value;return{n:ge(e[1]),e:ge(e[2]),d:ge(e[3]),p:ge(e[4]),q:ge(e[5]),dp:ge(e[6]),dq:ge(e[7]),qi:ge(e[8]),kty:"RSA",alg:"RS256"}}function gy(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 R("JWK was missing components");let e=new Le({value:[new St({value:0}),St.fromBigInt(ye(P(r.n,"base64url"))),St.fromBigInt(ye(P(r.e,"base64url"))),St.fromBigInt(ye(P(r.d,"base64url"))),St.fromBigInt(ye(P(r.p,"base64url"))),St.fromBigInt(ye(P(r.q,"base64url"))),St.fromBigInt(ye(P(r.dp,"base64url"))),St.fromBigInt(ye(P(r.dq,"base64url"))),St.fromBigInt(ye(P(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function ad(r){let{result:t}=dl(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:ge(e[0]),e:ge(e[1])}}function gl(r){if(r.n==null||r.e==null)throw new R("JWK was missing components");let e=new Le({value:[new Le({value:[new an({value:"1.2.840.113549.1.1.1"}),new on]}),new sn({valueHex:new Le({value:[St.fromBigInt(ye(P(r.n,"base64url"))),St.fromBigInt(ye(P(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function ge(r){let t=r.valueBlock.valueHexView;for(;t[0]===0;)t=t.subarray(1);return et(t,"base64url")}function ye(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function cd(r){let t=id(r);return ld(t)}function yl(r){let t=ad(r);if(pl(t)>li)throw new Hr("Key size is too large");let e=ws(pe.encode({Type:yt.RSA,Data:r})),n=ee(ml,e);return new un(t,n)}function ld(r){if(pl(r)>li)throw new R("Key size is too large");let t=ud(r),e=ws(pe.encode({Type:yt.RSA,Data:gl(t.publicKey)})),n=ee(ml,e);return new so(t.privateKey,new un(t.publicKey,n))}async function wl(r){if(r>li)throw new R("Key size is too large");let t=await nd(r),e=ws(pe.encode({Type:yt.RSA,Data:gl(t.publicKey)})),n=ee(ml,e);return new so(t.privateKey,new un(t.publicKey,n))}function ud(r){if(r==null)throw new R("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var yy=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]),nr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),or=new Uint32Array(64),bl=class extends Qr{constructor(){super(64,32,8,!1),this.A=nr[0]|0,this.B=nr[1]|0,this.C=nr[2]|0,this.D=nr[3]|0,this.E=nr[4]|0,this.F=nr[5]|0,this.G=nr[6]|0,this.H=nr[7]|0}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,e){for(let l=0;l<16;l++,e+=4)or[l]=t.getUint32(e,!1);for(let l=16;l<64;l++){let d=or[l-15],h=or[l-2],p=ne(d,7)^ne(d,18)^d>>>3,m=ne(h,17)^ne(h,19)^h>>>10;or[l]=m+or[l-7]+p+or[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 d=ne(a,6)^ne(a,11)^ne(a,25),h=f+d+If(a,c,u)+yy[l]+or[l]|0,m=(ne(n,2)^ne(n,13)^ne(n,22))+kf(n,o,s)|0;f=u,u=c,c=a,a=i+h|0,i=s,s=o,o=n,n=h+m|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(){or.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var fd=Xo(()=>new bl);var ui=class extends Jr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,_f(t);let n=On(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,s=new Uint8Array(o);s.set(n.length>o?t.create().update(n).digest():n);for(let i=0;i<s.length;i++)s[i]^=54;this.iHash.update(s),this.oHash=t.create();for(let i=0;i<s.length;i++)s[i]^=106;this.oHash.update(s),s.fill(0)}update(t){return Yr(this),this.iHash.update(t),this}digestInto(t){Yr(this),Xr(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},xl=(r,t,e)=>new ui(r,t).update(e).digest();xl.create=(r,t)=>new ui(r,t);function hd(r){r.lowS!==void 0&&oe("lowS",r.lowS),r.prehash!==void 0&&oe("prehash",r.prehash)}function wy(r){let t=Hn(r);he(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:o}=t;if(e){if(!n.eql(o,n.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:by,hexToBytes:xy}=es,Re={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=Re;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,o=pr(n);if(o.length/2&128)throw new e("tlv.encode: long form length too big");let s=n>127?pr(o.length/2|128):"";return pr(r)+s+o+t},decode(r,t){let{Err:e}=Re,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let u=t.subarray(n,n+c);if(u.length!==c)throw new e("tlv.decode: length bytes not complete");if(u[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let f of u)i=i<<8|f;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=Re;if(r<Me)throw new t("integer: negative integers are not allowed");let e=pr(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=Re;if(r[0]&128)throw new t("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return by(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=Re,o=typeof r=="string"?xy(r):r;tn(o);let{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:u,l:f}=n.decode(2,c);if(f.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(u)}},hexFromSig(r){let{_tlv:t,_int:e}=Re,n=t.encode(2,e.encode(r.r)),o=t.encode(2,e.encode(r.s)),s=n+o;return t.encode(48,s)}},Me=BigInt(0),vt=BigInt(1),lE=BigInt(2),dd=BigInt(3),uE=BigInt(4);function vy(r){let t=wy(r),{Fp:e}=t,n=Xe(t.n,t.nBitLength),o=t.toBytes||((m,g,w)=>{let b=g.toAffine();return Ie(Uint8Array.from([4]),e.toBytes(b.x),e.toBytes(b.y))}),s=t.fromBytes||(m=>{let g=m.subarray(1),w=e.fromBytes(g.subarray(0,e.BYTES)),b=e.fromBytes(g.subarray(e.BYTES,2*e.BYTES));return{x:w,y:b}});function i(m){let{a:g,b:w}=t,b=e.sqr(m),y=e.mul(b,m);return e.add(e.add(y,e.mul(m,g)),w)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return Fn(m,vt,t.n)}function c(m){let{allowedPrivateKeyLengths:g,nByteLength:w,wrapPrivateKey:b,n:y}=t;if(g&&typeof m!="bigint"){if(We(m)&&(m=Be(m)),typeof m!="string"||!g.includes(m.length))throw new Error("invalid private key");m=m.padStart(w*2,"0")}let x;try{x=typeof m=="bigint"?m:Ce(at("private key",m,w))}catch{throw new Error("invalid private key, expected hex or "+w+" bytes, got "+typeof m)}return b&&(x=Q(x,y)),qt("private key",x,vt,y),x}function u(m){if(!(m instanceof d))throw new Error("ProjectivePoint expected")}let f=yr((m,g)=>{let{px:w,py:b,pz:y}=m;if(e.eql(y,e.ONE))return{x:w,y:b};let x=m.is0();g==null&&(g=x?e.ONE:e.inv(y));let A=e.mul(w,g),_=e.mul(b,g),v=e.mul(y,g);if(x)return{x:e.ZERO,y:e.ZERO};if(!e.eql(v,e.ONE))throw new Error("invZ was invalid");return{x:A,y:_}}),l=yr(m=>{if(m.is0()){if(t.allowInfinityPoint&&!e.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:g,y:w}=m.toAffine();if(!e.isValid(g)||!e.isValid(w))throw new Error("bad point: x or y not FE");let b=e.sqr(w),y=i(g);if(!e.eql(b,y))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(g,w,b){if(this.px=g,this.py=w,this.pz=b,g==null||!e.isValid(g))throw new Error("x required");if(w==null||!e.isValid(w))throw new Error("y required");if(b==null||!e.isValid(b))throw new Error("z required");Object.freeze(this)}static fromAffine(g){let{x:w,y:b}=g||{};if(!g||!e.isValid(w)||!e.isValid(b))throw new Error("invalid affine point");if(g instanceof d)throw new Error("projective point not allowed");let y=x=>e.eql(x,e.ZERO);return y(w)&&y(b)?d.ZERO:new d(w,b,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let w=e.invertBatch(g.map(b=>b.pz));return g.map((b,y)=>b.toAffine(w[y])).map(d.fromAffine)}static fromHex(g){let w=d.fromAffine(s(at("pointHex",g)));return w.assertValidity(),w}static fromPrivateKey(g){return d.BASE.multiply(c(g))}static msm(g,w){return ss(d,n,g,w)}_setWindowSize(g){p.setWindowSize(this,g)}assertValidity(){l(this)}hasEvenY(){let{y:g}=this.toAffine();if(e.isOdd)return!e.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){u(g);let{px:w,py:b,pz:y}=this,{px:x,py:A,pz:_}=g,v=e.eql(e.mul(w,_),e.mul(x,y)),B=e.eql(e.mul(b,_),e.mul(A,y));return v&&B}negate(){return new d(this.px,e.neg(this.py),this.pz)}double(){let{a:g,b:w}=t,b=e.mul(w,dd),{px:y,py:x,pz:A}=this,_=e.ZERO,v=e.ZERO,B=e.ZERO,k=e.mul(y,y),Y=e.mul(x,x),H=e.mul(A,A),V=e.mul(y,x);return V=e.add(V,V),B=e.mul(y,A),B=e.add(B,B),_=e.mul(g,B),v=e.mul(b,H),v=e.add(_,v),_=e.sub(Y,v),v=e.add(Y,v),v=e.mul(_,v),_=e.mul(V,_),B=e.mul(b,B),H=e.mul(g,H),V=e.sub(k,H),V=e.mul(g,V),V=e.add(V,B),B=e.add(k,k),k=e.add(B,k),k=e.add(k,H),k=e.mul(k,V),v=e.add(v,k),H=e.mul(x,A),H=e.add(H,H),k=e.mul(H,V),_=e.sub(_,k),B=e.mul(H,Y),B=e.add(B,B),B=e.add(B,B),new d(_,v,B)}add(g){u(g);let{px:w,py:b,pz:y}=this,{px:x,py:A,pz:_}=g,v=e.ZERO,B=e.ZERO,k=e.ZERO,Y=t.a,H=e.mul(t.b,dd),V=e.mul(w,x),D=e.mul(b,A),I=e.mul(y,_),N=e.add(w,b),S=e.add(x,A);N=e.mul(N,S),S=e.add(V,D),N=e.sub(N,S),S=e.add(w,y);let E=e.add(x,_);return S=e.mul(S,E),E=e.add(V,I),S=e.sub(S,E),E=e.add(b,y),v=e.add(A,_),E=e.mul(E,v),v=e.add(D,I),E=e.sub(E,v),k=e.mul(Y,S),v=e.mul(H,I),k=e.add(v,k),v=e.sub(D,k),k=e.add(D,k),B=e.mul(v,k),D=e.add(V,V),D=e.add(D,V),I=e.mul(Y,I),S=e.mul(H,S),D=e.add(D,I),I=e.sub(V,I),I=e.mul(Y,I),S=e.add(S,I),V=e.mul(D,S),B=e.add(B,V),V=e.mul(E,S),v=e.mul(N,v),v=e.sub(v,V),V=e.mul(N,D),k=e.mul(E,k),k=e.add(k,V),new d(v,B,k)}subtract(g){return this.add(g.negate())}is0(){return this.equals(d.ZERO)}wNAF(g){return p.wNAFCached(this,g,d.normalizeZ)}multiplyUnsafe(g){let{endo:w,n:b}=t;qt("scalar",g,Me,b);let y=d.ZERO;if(g===Me)return y;if(this.is0()||g===vt)return this;if(!w||p.hasPrecomputes(this))return p.wNAFCachedUnsafe(this,g,d.normalizeZ);let{k1neg:x,k1:A,k2neg:_,k2:v}=w.splitScalar(g),B=y,k=y,Y=this;for(;A>Me||v>Me;)A&vt&&(B=B.add(Y)),v&vt&&(k=k.add(Y)),Y=Y.double(),A>>=vt,v>>=vt;return x&&(B=B.negate()),_&&(k=k.negate()),k=new d(e.mul(k.px,w.beta),k.py,k.pz),B.add(k)}multiply(g){let{endo:w,n:b}=t;qt("scalar",g,vt,b);let y,x;if(w){let{k1neg:A,k1:_,k2neg:v,k2:B}=w.splitScalar(g),{p:k,f:Y}=this.wNAF(_),{p:H,f:V}=this.wNAF(B);k=p.constTimeNegate(A,k),H=p.constTimeNegate(v,H),H=new d(e.mul(H.px,w.beta),H.py,H.pz),y=k.add(H),x=Y.add(V)}else{let{p:A,f:_}=this.wNAF(g);y=A,x=_}return d.normalizeZ([y,x])[0]}multiplyAndAddUnsafe(g,w,b){let y=d.BASE,x=(_,v)=>v===Me||v===vt||!_.equals(y)?_.multiplyUnsafe(v):_.multiply(v),A=x(this,w).add(x(g,b));return A.is0()?void 0:A}toAffine(g){return f(this,g)}isTorsionFree(){let{h:g,isTorsionFree:w}=t;if(g===vt)return!0;if(w)return w(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:w}=t;return g===vt?this:w?w(d,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return oe("isCompressed",g),this.assertValidity(),o(d,this,g)}toHex(g=!0){return oe("isCompressed",g),Be(this.toRawBytes(g))}}d.BASE=new d(t.Gx,t.Gy,e.ONE),d.ZERO=new d(e.ZERO,e.ONE,e.ZERO);let h=t.nBitLength,p=os(d,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function Ey(r){let t=Hn(r);return he(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function pd(r){let t=Ey(r),{Fp:e,n}=t,o=e.BYTES+1,s=2*e.BYTES+1;function i(I){return Q(I,n)}function a(I){return rs(I,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:f,isWithinCurveOrder:l}=vy({...t,toBytes(I,N,S){let E=N.toAffine(),C=e.toBytes(E.x),L=Ie;return oe("isCompressed",S),S?L(Uint8Array.from([N.hasEvenY()?2:3]),C):L(Uint8Array.from([4]),C,e.toBytes(E.y))},fromBytes(I){let N=I.length,S=I[0],E=I.subarray(1);if(N===o&&(S===2||S===3)){let C=Ce(E);if(!Fn(C,vt,e.ORDER))throw new Error("Point is not on curve");let L=f(C),M;try{M=e.sqrt(L)}catch($){let O=$ instanceof Error?": "+$.message:"";throw new Error("Point is not on curve"+O)}let U=(M&vt)===vt;return(S&1)===1!==U&&(M=e.neg(M)),{x:C,y:M}}else if(N===s&&S===4){let C=e.fromBytes(E.subarray(0,e.BYTES)),L=e.fromBytes(E.subarray(e.BYTES,2*e.BYTES));return{x:C,y:L}}else{let C=o,L=s;throw new Error("invalid Point, expected length of "+C+", or uncompressed "+L+", got "+N)}}}),d=I=>Be(Ze(I,t.nByteLength));function h(I){let N=n>>vt;return I>N}function p(I){return h(I)?i(-I):I}let m=(I,N,S)=>Ce(I.slice(N,S));class g{constructor(N,S,E){this.r=N,this.s=S,this.recovery=E,this.assertValidity()}static fromCompact(N){let S=t.nByteLength;return N=at("compactSignature",N,S*2),new g(m(N,0,S),m(N,S,2*S))}static fromDER(N){let{r:S,s:E}=Re.toSig(at("DER",N));return new g(S,E)}assertValidity(){qt("r",this.r,vt,n),qt("s",this.s,vt,n)}addRecoveryBit(N){return new g(this.r,this.s,N)}recoverPublicKey(N){let{r:S,s:E,recovery:C}=this,L=_(at("msgHash",N));if(C==null||![0,1,2,3].includes(C))throw new Error("recovery id invalid");let M=C===2||C===3?S+t.n:S;if(M>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let U=C&1?"03":"02",K=c.fromHex(U+d(M)),$=a(M),O=i(-L*$),J=i(E*$),nt=c.BASE.multiplyAndAddUnsafe(K,O,J);if(!nt)throw new Error("point at infinify");return nt.assertValidity(),nt}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return mr(this.toDERHex())}toDERHex(){return Re.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return mr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let w={isValidPrivateKey(I){try{return u(I),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let I=wc(t.n);return Of(t.randomBytes(I),t.n)},precompute(I=8,N=c.BASE){return N._setWindowSize(I),N.multiply(BigInt(3)),N}};function b(I,N=!0){return c.fromPrivateKey(I).toRawBytes(N)}function y(I){let N=We(I),S=typeof I=="string",E=(N||S)&&I.length;return N?E===o||E===s:S?E===2*o||E===2*s:I instanceof c}function x(I,N,S=!0){if(y(I))throw new Error("first arg must be private key");if(!y(N))throw new Error("second arg must be public key");return c.fromHex(N).multiply(u(I)).toRawBytes(S)}let A=t.bits2int||function(I){if(I.length>8192)throw new Error("input is too large");let N=Ce(I),S=I.length*8-t.nBitLength;return S>0?N>>BigInt(S):N},_=t.bits2int_modN||function(I){return i(A(I))},v=Vn(t.nBitLength);function B(I){return qt("num < 2^"+t.nBitLength,I,Me,v),Ze(I,t.nByteLength)}function k(I,N,S=Y){if(["recovered","canonical"].some(xt=>xt in S))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:C}=t,{lowS:L,prehash:M,extraEntropy:U}=S;L==null&&(L=!0),I=at("msgHash",I),hd(S),M&&(I=at("prehashed msgHash",E(I)));let K=_(I),$=u(N),O=[B($),B(K)];if(U!=null&&U!==!1){let xt=U===!0?C(e.BYTES):U;O.push(at("extraEntropy",xt))}let J=Ie(...O),nt=K;function bt(xt){let Et=A(xt);if(!l(Et))return;let Bt=a(Et),Kt=c.BASE.multiply(Et).toAffine(),Dt=i(Kt.x);if(Dt===Me)return;let fe=i(Bt*i(nt+Dt*$));if(fe===Me)return;let be=(Kt.x===Dt?0:2)|Number(Kt.y&vt),Tn=fe;return L&&h(fe)&&(Tn=p(fe),be^=1),new g(Dt,Tn,be)}return{seed:J,k2sig:bt}}let Y={lowS:t.lowS,prehash:!1},H={lowS:t.lowS,prehash:!1};function V(I,N,S=Y){let{seed:E,k2sig:C}=k(I,N,S),L=t;return pc(L.hash.outputLen,L.nByteLength,L.hmac)(E,C)}c.BASE._setWindowSize(8);function D(I,N,S,E=H){let C=I;N=at("msgHash",N),S=at("publicKey",S);let{lowS:L,prehash:M,format:U}=E;if(hd(E),"strict"in E)throw new Error("options.strict was renamed to lowS");if(U!==void 0&&U!=="compact"&&U!=="der")throw new Error("format must be compact or der");let K=typeof C=="string"||We(C),$=!K&&!U&&typeof C=="object"&&C!==null&&typeof C.r=="bigint"&&typeof C.s=="bigint";if(!K&&!$)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let O,J;try{if($&&(O=new g(C.r,C.s)),K){try{U!=="compact"&&(O=g.fromDER(C))}catch(be){if(!(be instanceof Re.Err))throw be}!O&&U!=="der"&&(O=g.fromCompact(C))}J=c.fromHex(S)}catch{return!1}if(!O||L&&O.hasHighS())return!1;M&&(N=t.hash(N));let{r:nt,s:bt}=O,xt=_(N),Et=a(bt),Bt=i(xt*Et),Kt=i(nt*Et),Dt=c.BASE.multiplyAndAddUnsafe(J,Bt,Kt)?.toAffine();return Dt?i(Dt.x)===nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:x,sign:V,verify:D,ProjectivePoint:c,Signature:g,utils:w}}function Ay(r){return{hash:r,hmac:(t,...e)=>xl(r,t,ac(...e)),randomBytes:Yo}}function md(r,t){let e=n=>pd({...r,...Ay(n)});return Object.freeze({...e(t),create:e})}var wd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),gd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Sy=BigInt(1),vl=BigInt(2),yd=(r,t)=>(r+t/vl)/t;function _y(r){let t=wd,e=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%t,f=u*u*r%t,l=it(f,e,t)*f%t,d=it(l,e,t)*f%t,h=it(d,vl,t)*u%t,p=it(h,o,t)*h%t,m=it(p,s,t)*p%t,g=it(m,a,t)*m%t,w=it(g,c,t)*g%t,b=it(w,a,t)*m%t,y=it(b,e,t)*f%t,x=it(y,i,t)*p%t,A=it(x,n,t)*u%t,_=it(A,vl,t);if(!El.eql(El.sqr(_),r))throw new Error("Cannot find square root");return _}var El=Xe(wd,void 0,void 0,{sqrt:_y}),Yt=md({a:BigInt(0),b:BigInt(7),Fp:El,n:gd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=gd,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Sy*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,i=BigInt("0x100000000000000000000000000000000"),a=yd(s*r,t),c=yd(-n*r,t),u=Q(r-a*e-c*o,t),f=Q(-a*n-c*s,t),l=u>i,d=f>i;if(l&&(u=t-u),d&&(f=t-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:d,k2:f}}}},fd),bE=BigInt(0);var xE=Yt.ProjectivePoint;function Vt(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=Ct(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}function Al(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function bd(r,t){let e=en.digest(t instanceof Uint8Array?t:t.subarray());if(Al(e))return e.then(({digest:n})=>Yt.sign(n,r).toDERRawBytes()).catch(n=>{throw new ro(String(n))});try{return Yt.sign(e.digest,r).toDERRawBytes()}catch(n){throw new ro(String(n))}}function xd(r,t,e){let n=en.digest(e instanceof Uint8Array?e:e.subarray());if(Al(n))return n.then(({digest:o})=>Yt.verify(t,o,r)).catch(o=>{throw new no(String(o))});try{return Yt.verify(t,n.digest,r)}catch(o){throw new no(String(o))}}var io=class{type="secp256k1";raw;_key;constructor(t){this._key=Ad(t),this.raw=vd(this._key)}toMultihash(){return Se.digest(de(this))}toCID(){return mt.createV1(114,this.toMultihash())}toString(){return Z.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return xd(this._key,e,t)}},fi=class{type="secp256k1";raw;publicKey;constructor(t,e){this.raw=Ed(t),this.publicKey=new io(e??Sd(t))}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return bd(this.raw,t)}};function Sl(r){return new io(r)}async function _d(){let r=By();return new fi(r)}function vd(r){return Yt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Ed(r){try{return Yt.getPublicKey(r,!0),r}catch(t){throw new Ln(String(t))}}function Ad(r){try{return Yt.ProjectivePoint.fromHex(r),r}catch(t){throw new Hr(String(t))}}function Sd(r){try{return Yt.getPublicKey(r,!0)}catch(t){throw new Ln(String(t))}}function By(){return Yt.utils.randomPrivateKey()}async function Bd(r,t){if(r==="Ed25519")return Zf();if(r==="secp256k1")return _d();if(r==="RSA")return wl(t??2048);throw new qe}function fn(r){let{Type:t,Data:e}=pe.decode(r),n=e??new Uint8Array;switch(t){case yt.RSA:return yl(n);case yt.Ed25519:return _c(n);case yt.secp256k1:return Sl(n);default:throw new qe}}function Cd(r){let{Type:t,Data:e}=pe.decode(r.digest),n=e??new Uint8Array;switch(t){case yt.Ed25519:return _c(n);case yt.secp256k1:return Sl(n);default:throw new qe}}function de(r){return pe.encode({Type:yt[r.type],Data:r.raw})}var Id=Symbol.for("nodejs.util.inspect.custom"),Cy=114,ao=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Uo]=!0;toString(){return this.string==null&&(this.string=Z.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return mt.createV1(Cy,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ut(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ut(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Id](){return`PeerId(${this.toString()})`}},co=class extends ao{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},lo=class extends ao{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},uo=class extends ao{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Iy=2336,fo=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Se.digest(P(this.url))}[Id](){return`PeerId(${this.url})`}[Uo]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return mt.createV1(Iy,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=et(t)),t.toString()===this.toString())}};var ky=114,kd=2336;function we(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=re(Z.decode(`z${r}`));else{if(t==null)throw new R('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=re(t.decode(r))}return hn(e)}function _l(r){if(r.type==="Ed25519")return new lo({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new uo({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new co({multihash:r.toCID().multihash,publicKey:r});throw new qe}function Td(r){return _l(r.publicKey)}function hn(r){if(Ly(r))return new co({multihash:r});if(Ty(r))try{let t=Cd(r);if(t.type==="Ed25519")return new lo({multihash:r,publicKey:t});if(t.type==="secp256k1")return new uo({multihash:r,publicKey:t})}catch{let e=et(r.digest);return new fo(new URL(e))}throw new Ko("Supplied PeerID Multihash is invalid")}function hi(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==ky&&r.code!==kd)throw new Ho("Supplied PeerID CID is invalid");if(r.code===kd){let t=et(r.multihash.digest);return new fo(new URL(t))}return hn(r.multihash)}function Ty(r){return r.code===Se.code}function Ly(r){return r.code===en.code}var dt=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var Cl=hr(Nd(),1);var po=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Il=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Pd=r=>globalThis.DOMException===void 0?new Il(r):new DOMException(r),Dd=r=>{let t=r.reason===void 0?Pd("This operation was aborted."):r.reason;return t instanceof Error?t:Pd(t)};function mo(r,t){let{milliseconds:e,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=t,i,c=new Promise((u,f)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(t.signal){let{signal:d}=t;d.aborted&&f(Dd(d));let h=()=>{f(Dd(d))};d.addEventListener("abort",h,{once:!0}),r.finally(()=>{d.removeEventListener("abort",h)})}if(e===Number.POSITIVE_INFINITY){r.then(u,f);return}let l=new po;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){f(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(l.message=o??`Promise timed out after ${e} milliseconds`,f(l))},e),(async()=>{try{u(await r)}catch(d){f(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},c}function kl(r,t,e){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;e(r[i],t)<=0?(n=++i,o-=s+1):o=s}return n}var go=class{#t=[];enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=e.priority){this.#t.push(n);return}let o=kl(this.#t,n,(s,i)=>i.priority-s.priority);this.#t.splice(o,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}};var sr=class extends Cl.default{#t;#e;#s=0;#a;#c;#p=0;#n;#l;#r;#m;#o=0;#u;#i;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:go,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#e=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#r=new t.queueClass,this.#m=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#i=t.autoStart===!1}get#b(){return this.#e||this.#s<this.#a}get#x(){return this.#o<this.#u}#v(){this.#o--,this.#f(),this.emit("next")}#E(){this.#w(),this.#y(),this.#l=void 0}get#A(){let t=Date.now();if(this.#n===void 0){let e=this.#p-t;if(e<0)this.#s=this.#t?this.#o:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},e)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#o===0&&this.emit("idle"),!1;if(!this.#i){let t=!this.#A;if(this.#b&&this.#x){let e=this.#r.dequeue();return e?(this.emit("active"),e(),t&&this.#y(),!0):!1}}return!1}#y(){this.#e||this.#n!==void 0||(this.#n=setInterval(()=>{this.#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.#t?this.#o:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#u=t,this.#h()}async#S(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:this.#g,...e},new Promise((n,o)=>{this.#r.enqueue(async()=>{this.#o++,this.#s++;try{e.signal?.throwIfAborted();let s=t({signal:e.signal});e.timeout&&(s=mo(Promise.resolve(s),{milliseconds:e.timeout})),e.signal&&(s=Promise.race([s,this.#S(e.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof po&&!e.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#v()}},e),this.emit("add"),this.#f()})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return this.#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(t){this.#r.size<t||await this.#d("next",()=>this.#r.size<t)}async onIdle(){this.#o===0&&this.#r.size===0||await this.#d("idle")}async#d(t,e){return new Promise(n=>{let o=()=>{e&&!e()||(this.off(t,o),n())};this.on(t,o)})}get size(){return this.#r.size}sizeBy(t){return this.#r.filter(t).length}get pending(){return this.#o}get isPaused(){return this.#i}};function pi(r){let t=[Zt.A];return r==null?t:Array.isArray(r)?r.length===0?t:r:[r]}var Tl=60;function mi(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(t=>({name:t.name,type:Zt[t.type]})),Answer:(r.Answer??r.answers??[]).map(t=>({name:t.name,type:Zt[t.type],TTL:t.TTL??t.ttl??Tl,data:t.data instanceof Uint8Array?et(t.data):t.data}))}}var Dy=4;function Ll(r,t={}){let e=new sr({concurrency:t.queryConcurrency??Dy});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),pi(o.types).forEach(a=>{s.append("type",Zt[a])}),o.onProgress?.(new dt("dns:query",{detail:n}));let i=await e.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=mi(await a.json());return o.onProgress?.(new dt("dns:response",{detail:c})),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Rd(){return[Ll("https://cloudflare-dns.com/dns-query"),Ll("https://dns.google/resolve")]}var Od=hr(Ud(),1);var Nl=class{lru;constructor(t){this.lru=(0,Od.default)(t)}get(t,e){let n=!0,o=[];for(let s of e){let i=this.getAnswers(t,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return mi({answers:o})}getAnswers(t,e){let n=`${t.toLowerCase()}-${e}`,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:Zt[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(t,e){let n=`${t.toLowerCase()}-${e.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(e.TTL??Tl)*1e3,value:e}),this.lru.set(n,o)}remove(t,e){let n=`${t.toLowerCase()}-${e}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Fd(r){return new Nl(r)}var Ry=1e3,gi=class{resolvers;cache;constructor(t){this.resolvers={},this.cache=Fd(t.cacheSize??Ry),Object.entries(t.resolvers??{}).forEach(([e,n])=>{Array.isArray(n)||(n=[n]),e.endsWith(".")||(e=`${e}.`),this.resolvers[e]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Rd())}async query(t,e={}){let n=pi(e.types),o=e.cached!==!1?this.cache.get(t,n):void 0;if(o!=null)return e.onProgress?.(new dt("dns:cache",{detail:o})),o;let s=`${t.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of i){if(e.signal?.aborted===!0)break;try{let u=await c(t,{...e,types:n});for(let f of u.Answer)this.cache.add(t,f);return u}catch(u){a.push(u),e.onProgress?.(new dt("dns:error",{detail:u}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${t} ${n} failed`)}};var Zt;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Zt||(Zt={}));function Vd(r={}){return new gi(r)}var yi=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,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 d=Number.parseInt(l,t);if(!Number.isNaN(d))return d});if(f===void 0)break;if(s*=t,s+=f,s>u||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let o=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[o]=i[0],e[o+1]=i[1],e[o+2]=i[2],e[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];e[o]=s>>8,e[o+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Hd=45,My=15,dn=new yi;function Pl(r){if(!(r.length>My))return dn.new(r).parseWith(()=>dn.readIPv4Addr())}function Dl(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Hd))return dn.new(r).parseWith(()=>dn.readIPv6Addr())}function wi(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Hd))return dn.new(r).parseWith(()=>dn.readIPAddr())}var cS=parseInt("0xFFFF",16),lS=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function ir(r){return!!Pl(r)}function pn(r){return!!Dl(r)}function bi(r){return!!wi(r)}var $d=ir,Hy=pn,Rl=function(r){let t=0;if(r=r.toString().trim(),$d(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(Hy(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=$d(e[n]),i;s&&(i=Rl(e[n]),e[n]=et(i.slice(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,et(i.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){let s=parseInt(e[n],16);o[t++]=s>>8&255,o[t++]=s&255}return o}throw new Error("invalid ip address")},zd=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let o=[];for(let s=0;s<e;s++)o.push(r[t+s]);return o.join(".")}if(e===16){let o=[];for(let s=0;s<e;s+=2)o.push(n.getUint16(t+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var mn={},Ml={},qy=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];qy.forEach(r=>{let t=$y(...r);Ml[t.code]=t,mn[t.name]=t});function $y(r,t,e,n,o){return{code:r,size:t,name:e,resolvable:!!n,path:!!o}}function W(r){if(typeof r=="number"){if(Ml[r]!=null)return Ml[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(mn[r]!=null)return mn[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var GS=W("ip4"),WS=W("ip6"),jS=W("ipcidr");function Vl(r,t){switch(W(r).code){case 4:case 41:return Gy(t);case 42:return Fl(t);case 6:case 273:case 33:case 132:return jd(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Fl(t);case 421:return Xy(t);case 444:return Wd(t);case 445:return Wd(t);case 466:return Zy(t);case 481:return globalThis.encodeURIComponent(Fl(t));default:return et(t,"base16")}}function Hl(r,t){switch(W(r).code){case 4:return Gd(t);case 41:return Gd(t);case 42:return Ol(t);case 6:case 273:case 33:case 132:return Kl(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ol(t);case 421:return Wy(t);case 444:return Yy(t);case 445:return Jy(t);case 466:return jy(t);case 481:return Ol(globalThis.decodeURIComponent(t));default:return P(t,"base16")}}var Ul=Object.values($n).map(r=>r.decoder),zy=function(){let r=Ul[0].or(Ul[1]);return Ul.slice(2).forEach(t=>r=r.or(t)),r}();function Gd(r){if(!bi(r))throw new Error("invalid ip address");return Rl(r)}function Gy(r){let t=zd(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!bi(t))throw new Error("invalid ip address");return t}function Kl(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function jd(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Ol(r){let t=P(r),e=Uint8Array.from(kt(t.length));return Vt([e,t],e.length+t.length)}function Fl(r){let t=ie(r);if(r=r.slice(pt(t)),r.length!==t)throw new Error("inconsistent lengths");return et(r)}function Wy(r){let t;r[0]==="Q"||r[0]==="1"?t=re(Z.decode(`z${r}`)).bytes:t=mt.parse(r).multihash.bytes;let e=Uint8Array.from(kt(t.length));return Vt([e,t],e.length+t.length)}function jy(r){let t=zy.decode(r),e=Uint8Array.from(kt(t.length));return Vt([e,t],e.length+t.length)}function Zy(r){let t=ie(r),e=r.slice(pt(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+et(e,"base64url")}function Xy(r){let t=ie(r),e=r.slice(pt(t));if(e.length!==t)throw new Error("inconsistent lengths");return et(e,"base58btc")}function Yy(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Wt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Kl(n);return Vt([e,o],e.length+o.length)}function Jy(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Wt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Kl(n);return Vt([e,o],e.length+o.length)}function Wd(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=et(t,"base32"),o=jd(e);return`${n}:${o}`}function Zd(r){r=ql(r);let t=[],e=[],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=W(i);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(s++,s>=o.length)throw Yd("invalid address: "+r);if(a.path===!0){n=ql(o.slice(s).join("/")),t.push([a.code,Hl(a.code,n)]),e.push([a.code,n]);break}let c=Hl(a.code,o[s]);t.push([a.code,c]),e.push([a.code,Vl(a.code,c)])}return{string:Xd(e),bytes:zl(t),tuples:t,stringTuples:e,path:n}}function $l(r){let t=[],e=[],n=null,o=0;for(;o<r.length;){let s=ie(r,o),i=pt(s),a=W(s),c=Qy(a,r.slice(o+i));if(c===0){t.push([s]),e.push([s]),o+=i;continue}let u=r.slice(o+i,o+i+c);if(o+=c+i,o>r.length)throw Yd("Invalid address Uint8Array: "+et(r,"base16"));t.push([s,u]);let f=Vl(s,u);if(e.push([s,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:Xd(e),tuples:t,stringTuples:e,path:n}}function Xd(r){let t=[];return r.map(e=>{let n=W(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),ql(t.join("/"))}function zl(r){return Vt(r.map(t=>{let e=W(t[0]),n=Uint8Array.from(kt(e.code));return t.length>1&&t[1]!=null&&(n=Vt([n,t[1]])),n}))}function Qy(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=ie(t instanceof Uint8Array?t:Uint8Array.from(t));return e+pt(e)}}function ql(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Yd(r){return new Error("Error parsing address: "+r)}var tw=Symbol.for("nodejs.util.inspect.custom"),Wl=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ew=[W("dns").code,W("dns4").code,W("dns6").code,W("dnsaddr").code],Gl=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},xi=class r{bytes;#t;#e;#s;#a;[Wl]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=$l(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=Zd(t)}else if(ar(t))e=$l(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#s=e.stringTuples,this.#a=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,o,s="",i=W("tcp"),a=W("udp"),c=W("ip4"),u=W("ip6"),f=W("dns6"),l=W("ip6zone");for(let[h,p]of this.stringTuples())h===l.code&&(s=`%${p??""}`),ew.includes(h)&&(e=i.name,o=443,n=`${p??""}${s}`,t=h===f.code?6:4),(h===i.code||h===a.code)&&(e=W(h).name,o=parseInt(p??"")),(h===c.code||h===u.code)&&(e=W(h).name,n=`${p??""}${s}`,t=h===u.code?6:4);if(t==null||e==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:t,host:n,transport:e,port:o}}protos(){return this.#e.map(([t])=>Object.assign({},W(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>W(t).name)}tuples(){return this.#e.map(([t,e])=>e==null?[t]:[t,e])}stringTuples(){return this.#s.map(([t,e])=>e==null?[t]:[t,e])}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,o))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(zl(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,o])=>{n===mn.p2p.code&&t.push([n,o]),n===mn["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?et(Z.decode(`z${n}`),"base58btc"):et(mt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ut(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(s=>s.resolvable);if(e==null)return[this];let n=gn.get(e.name);if(n==null)throw new Gl(`no available resolver for ${e.name}`);return(await n(this,t)).map(s=>rt(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[tw](){return`Multiaddr(${this.#t})`}};var gn=new Map;function ar(r){return!!r?.[Wl]}function rt(r){return new xi(r)}var rw=32,{code:nw}=W("dnsaddr"),jl=class extends Error{constructor(t="Max recursive depth reached"){super(t),this.name="RecursionLimitError"}},_r=async function(t,e={}){let n=e.maxRecursiveDepth??rw;if(n===0)throw new jl("Max recursive depth reached");let[,o]=t.stringTuples().find(([u])=>u===nw)??[],i=await(e?.dns??Vd()).query(`_dnsaddr.${o}`,{signal:e?.signal,types:[Zt.TXT]}),a=t.getPeerId(),c=[];for(let u of i.Answer){let f=u.data.replace(/["']/g,"").trim().split("=")[1];if(f==null||a!=null&&!f.includes(a))continue;let l=rt(f);if(f.startsWith("/dnsaddr")){let d=await l.resolve({...e,maxRecursiveDepth:n-1});c.push(...d.map(h=>h.toString()))}else c.push(l.toString())}return c};var ip=hr(sp(),1),Ai=ip.default;var lw={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{resolvers:{dnsaddr:_r}},transportManager:{faultTolerance:He.FATAL_ALL}};async function ap(r){let t=Ai(lw,r);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new R("Private network is enforced, but no protector was provided");return t}function uw(r,t){try{if(typeof r=="string"&&r.length>0)return fw(r);if(typeof r=="number"&&isFinite(r))return t?.long?dw(r):hw(r);throw new Error("Value is not a string or number.")}catch(e){let n=pw(e)?`${e.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function fw(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let t=/^(-?(?:\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(!t)return NaN;let e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*315576e5;case"weeks":case"week":case"w":return e*6048e5;case"days":case"day":case"d":return e*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return e*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return e*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return e*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var _i=uw;function hw(r){let t=Math.abs(r);return t>=864e5?`${Math.round(r/864e5)}d`:t>=36e5?`${Math.round(r/36e5)}h`:t>=6e4?`${Math.round(r/6e4)}m`:t>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function dw(r){let t=Math.abs(r);return t>=864e5?Si(r,t,864e5,"day"):t>=36e5?Si(r,t,36e5,"hour"):t>=6e4?Si(r,t,6e4,"minute"):t>=1e3?Si(r,t,1e3,"second"):`${r} ms`}function Si(r,t,e,n){let o=t>=e*1.5;return`${Math.round(r/e)} ${n}${o?"s":""}`}function pw(r){return typeof r=="object"&&r!==null&&"message"in r}function Xl(r){e.debug=e,e.default=e,e.coerce=c,e.disable=s,e.enable=o,e.enabled=i,e.humanize=_i,e.destroy=u,Object.keys(r).forEach(f=>{e[f]=r[f]}),e.names=[],e.skips=[],e.formatters={};function t(f){let l=0;for(let d=0;d<f.length;d++)l=(l<<5)-l+f.charCodeAt(d),l|=0;return e.colors[Math.abs(l)%e.colors.length]}e.selectColor=t;function e(f){let l,d=null,h,p;function m(...g){if(!m.enabled)return;let w=m,b=Number(new Date),y=b-(l||b);w.diff=y,w.prev=l,w.curr=b,l=b,g[0]=e.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let x=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(_,v)=>{if(_==="%%")return"%";x++;let B=e.formatters[v];if(typeof B=="function"){let k=g[x];_=B.call(w,k),g.splice(x,1),x--}return _}),e.formatArgs.call(w,g),(w.log||e.log).apply(w,g)}return m.namespace=f,m.useColors=e.useColors(),m.color=e.selectColor(f),m.extend=n,m.destroy=e.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==e.namespaces&&(h=e.namespaces,p=e.enabled(f)),p),set:g=>{d=g}}),typeof e.init=="function"&&e.init(m),m}function n(f,l){let d=e(this.namespace+(typeof l>"u"?":":l)+f);return d.log=this.log,d}function o(f){e.save(f),e.namespaces=f,e.names=[],e.skips=[];let l,d=(typeof f=="string"?f:"").split(/[\s,]+/),h=d.length;for(l=0;l<h;l++)d[l]&&(f=d[l].replace(/\*/g,".*?"),f[0]==="-"?e.skips.push(new RegExp("^"+f.substr(1)+"$")):e.names.push(new RegExp("^"+f+"$")))}function s(){let f=[...e.names.map(a),...e.skips.map(a).map(l=>"-"+l)].join(",");return e.enable(""),f}function i(f){if(f[f.length-1]==="*")return!0;let l,d;for(l=0,d=e.skips.length;l<d;l++)if(e.skips[l].test(f))return!1;for(l=0,d=e.names.length;l<d;l++)if(e.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 e.setupFormatters(e.formatters),e.enable(e.load()),e}var Bi=vw(),mw=["#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 gw(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function yw(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+_i(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(e++,o==="%c"&&(n=e))}),r.splice(n,0,t)}var ww=console.debug??console.log??(()=>{});function bw(r){try{r?Bi?.setItem("debug",r):Bi?.removeItem("debug")}catch{}}function xw(){let r;try{r=Bi?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function vw(){try{return localStorage}catch{}}function Ew(r){r.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}var cp=Xl({formatArgs:yw,save:bw,load:xw,useColors:gw,setupFormatters:Ew,colors:mw,storage:Bi,log:ww});var Gt=cp;Gt.formatters.b=r=>r==null?"undefined":Z.baseEncode(r);Gt.formatters.t=r=>r==null?"undefined":Wt.baseEncode(r);Gt.formatters.m=r=>r==null?"undefined":Hc.baseEncode(r);Gt.formatters.p=r=>r==null?"undefined":r.toString();Gt.formatters.c=r=>r==null?"undefined":r.toString();Gt.formatters.k=r=>r==null?"undefined":r.toString();Gt.formatters.a=r=>r==null?"undefined":r.toString();Gt.formatters.e=r=>r==null?"undefined":lp(r.stack)??lp(r.message)??r.toString();function Aw(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function Ci(){return{forComponent(r){return Sw(r)}}}function Sw(r){let t=Aw(`${r}:trace`);return Gt.enabled(`${r}:trace`)&&Gt.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=Gt(`${r}:trace`)),Object.assign(Gt(r),{error:Gt(`${r}:error`),trace:t})}function lp(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}function Br(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:t(o)}}};return e}function Ii(r){let t=re(Z.decode(`z${r}`));return hn(t)}var Ue=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),{key:e,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return Br(this.map.entries(),t=>[t[1].key,t[1].value])}forEach(t){this.map.forEach((e,n)=>{t(e.value,e.key,this)})}get(t){return this.map.get(t.toString())?.value}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),{key:t,value:e})}keys(){return Br(this.map.values(),t=>t.key)}values(){return Br(this.map.values(),t=>t.value)}get size(){return this.map.size}};var Cr=class r{set;constructor(t){if(this.set=new Set,t!=null)for(let e of t)this.set.add(e.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Br(this.set.entries(),t=>{let e=Ii(t[0]);return[e,e]})}forEach(t){this.set.forEach(e=>{let n=Ii(e);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Br(this.set.values(),t=>Ii(t))}intersection(t){let e=new r;for(let n of t)this.has(n)&&e.add(n);return e}difference(t){let e=new r;for(let n of this)t.has(n)||e.add(n);return e}union(t){let e=new r;for(let n of t)e.add(n);for(let n of this)e.add(n);return e}};var pp=Symbol.for("@achingbrain/uint8arraylist");function dp(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function Ti(r){return!!r?.[pp]}var wt=class r{bufs;length;[pp]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Ti(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Ti(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=dp(this.bufs,t);return e.buf[e.index]}set(t,e){let n=dp(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(Ti(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return Vt(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:Vt(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=[...n],s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let u=t>=a&&t<c,f=e>a&&e<=c;if(u&&f){if(t===a&&e===c){n.push(i);break}let l=t-a;n.push(i.subarray(l,l+(e-t)));break}if(u){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(f){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Ti(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let 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=e;l<=c;l+=f){f=0;for(let d=u;d>=0;d--){let h=this.get(l+d);if(n[d]!==h){f=Math.max(1,d-a[h]);break}}if(f===0)return l}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=ft(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=ft(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=ft(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=ft(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=ft(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=ft(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=ft(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=ft(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ut(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((o,s)=>o+s.byteLength,0)),n.length=e,n}};var Yl=64,ue=class{fp;h;seed;constructor(t,e,n,o=2){if(o>Yl)throw new TypeError("Invalid Fingerprint Size");let s=e.hashV(t,n),i=ft(o);for(let a=0;a<i.length;a++)i[a]=s[a];i.length===0&&(i[0]=7),this.fp=i,this.h=e,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(t){return t?.fp instanceof Uint8Array?ut(this.fp,t.fp):!1}};function Ir(r,t){return Math.floor(Math.random()*(t-r))+r}var kr=class{contents;constructor(t){this.contents=new Array(t).fill(null)}has(t){if(!(t instanceof ue))throw new TypeError("Invalid Fingerprint");return this.contents.some(e=>t.equals(e))}add(t){if(!(t instanceof ue))throw new TypeError("Invalid Fingerprint");for(let e=0;e<this.contents.length;e++)if(this.contents[e]==null)return this.contents[e]=t,!0;return!0}swap(t){if(!(t instanceof ue))throw new TypeError("Invalid Fingerprint");let e=Ir(0,this.contents.length-1),n=this.contents[e];return this.contents[e]=t,n}remove(t){if(!(t instanceof ue))throw new TypeError("Invalid Fingerprint");let e=this.contents.findIndex(n=>t.equals(n));return e>-1?(this.contents[e]=null,!0):!1}};var Jl={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},mp={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},gp=new globalThis.TextEncoder;function _w(r,t){let e=Jl[t],n=mp[t];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(t,n*e);return n}function Bw(r,t,e){if(e.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=Jl[t],o=mp[t],s=r;for(;s.length>0;){let i=gp.encodeInto(s,e);s=s.slice(i.read);for(let a=0;a<i.written;a++)o^=BigInt(e[a]),o=BigInt.asUintN(t,o*n)}return o}function Ql(r,{size:t=32,utf8Buffer:e}={}){if(!Jl[t])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(e)return Bw(r,t,e);r=gp.encode(r)}return _w(r,t)}var Cw=hr(hp(),1);var wo={hash:r=>Number(Ql(r,{size:32})),hashV:(r,t)=>Iw(wo.hash(r,t))};function Iw(r){let t=r.toString(16);return t.length%2===1&&(t=`0${t}`),P(t,"base16")}var kw=500,bo=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(t){this.filterSize=t.filterSize,this.bucketSize=t.bucketSize??4,this.fingerprintSize=t.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=t.hash??wo,this.seed=t.seed??Ir(0,Math.pow(2,10))}add(t){typeof t=="string"&&(t=P(t));let e=new ue(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,o=(n^e.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new kr(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new kr(this.bucketSize)),this.buckets[n].add(e)||this.buckets[o].add(e))return this.count++,!0;let s=[n,o],i=s[Ir(0,s.length-1)];this.buckets[i]==null&&(this.buckets[i]=new kr(this.bucketSize));for(let a=0;a<kw;a++){let c=this.buckets[i].swap(e);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new kr(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(t){typeof t=="string"&&(t=P(t));let e=new ue(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,o=this.buckets[n]?.has(e)??!1;if(o)return o;let s=(n^e.hash())%this.filterSize;return this.buckets[s]?.has(e)??!1}remove(t){typeof t=="string"&&(t=P(t));let e=new ue(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,o=this.buckets[n]?.remove(e)??!1;if(o)return this.count--,o;let s=(n^e.hash())%this.filterSize,i=this.buckets[s]?.remove(e)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Tw={1:.5,2:.84,4:.95,8:.98};function Lw(r=.001){return r>.002?2:r>1e-5?4:8}function yp(r,t=.001){let e=Lw(t),n=Tw[e],o=Math.round(r/n),s=Math.min(Math.ceil(Math.log2(1/t)+Math.log2(2*e)),Yl);return{filterSize:o,bucketSize:e,fingerprintSize:s}}var Li=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(t){this.bucketSize=t.bucketSize??4,this.filterSize=t.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=t.fingerprintSize??2,this.scale=t.scale??2,this.hash=t.hash??wo,this.seed=t.seed??Ir(0,Math.pow(2,10)),this.filterSeries=[new bo({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(t){if(typeof t=="string"&&(t=P(t)),this.has(t))return!0;let e=this.filterSeries.find(n=>n.reliable);if(e==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);e=new bo({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(e)}return e.add(t)}has(t){typeof t=="string"&&(t=P(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].has(t))return!0;return!1}remove(t){typeof t=="string"&&(t=P(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].remove(t))return!0;return!1}get count(){return this.filterSeries.reduce((t,e)=>t+e.count,0)}};function tu(r,t=.001,e){return new Li({...yp(r,t),...e??{}})}var xo;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={publicKey:ft(0),payloadType:ft(0),payload:ft(0),signature:ft(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.publicKey=e.bytes();break}case 2:{s.payloadType=e.bytes();break}case 3:{s.payload=e.bytes();break}case 5:{s.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Ut(e,r.codec()),r.decode=(e,n)=>Mt(e,r.codec(),n)})(xo||(xo={}));var Ni=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var bn=class r{static createFromProtobuf=async t=>{let e=xo.decode(t),n=fn(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,o=t.codec,s=t.marshal(),i=wp(n,o,s),a=await e.sign(i.subarray());return new r({publicKey:e.publicKey,payloadType:o,payload:s,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new Ni("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:o,signature:s}=t;this.publicKey=e,this.payloadType=n,this.payload=o,this.signature=s}marshal(){return this.marshaled==null&&(this.marshaled=xo.encode({publicKey:de(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ut(this.marshal(),t.marshal())}async validate(t){let e=wp(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},wp=(r,t,e)=>{let n=P(r),o=kt(n.byteLength),s=kt(t.length),i=kt(e.length);return new wt(o,n,s,t,i,e)};function bp(r,t){let e=(n,o)=>n.toString().localeCompare(o.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,o)=>t[o].equals(n)))}var xp="libp2p-peer-record",vp=Uint8Array.from([3,1]);var vo;(function(r){let t;(function(n){let o;n.codec=()=>(o==null&&(o=Ot((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,a={})=>{let c={multiaddr:ft(0)},u=i==null?s.len:s.pos+i;for(;s.pos<u;){let f=s.uint32();switch(f>>>3){case 1:{c.multiaddr=s.bytes();break}default:{s.skipType(f&7);break}}}return c})),o),n.encode=s=>Ut(s,n.codec()),n.decode=(s,i)=>Mt(s,n.codec(),i)})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=Ot((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,s={})=>{let i={peerId:ft(0),seq:0n,addresses:[]},a=o==null?n.len:n.pos+o;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{i.peerId=n.bytes();break}case 2:{i.seq=n.uint64();break}case 3:{if(s.limits?.addresses!=null&&i.addresses.length===s.limits.addresses)throw new Er('Decode error - map field "addresses" had too many elements');i.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:s.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return i})),e),r.encode=n=>Ut(n,r.codec()),r.decode=(n,o)=>Mt(n,r.codec(),o)})(vo||(vo={}));var Tr=class r{static createFromProtobuf=t=>{let e=vo.decode(t),n=hn(re(e.peerId)),o=(e.addresses??[]).map(i=>rt(i.multiaddr)),s=e.seq;return new r({peerId:n,multiaddrs:o,seqNumber:s})};static DOMAIN=xp;static CODEC=vp;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(t){let{peerId:e,multiaddrs:n,seqNumber:o}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=o??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=vo.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof r)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!bp(this.multiaddrs,t.multiaddrs))}};function Nw(r){return r[Symbol.asyncIterator]!=null}function Pw(r){if(Nw(r))return(async()=>{let e=[];for await(let n of r)e.push(n);return e})();let t=[];for(let e of r)t.push(e);return t}var Eo=Pw;var cr={},xn=r=>{r.addEventListener("message",t=>{xn.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{xn.dispatchEvent("message",r,t)})};xn.addEventListener=(r,t)=>{cr[r]==null&&(cr[r]=[]),cr[r].push(t)};xn.removeEventListener=(r,t)=>{cr[r]!=null&&(cr[r]=cr[r].filter(e=>e===t))};xn.dispatchEvent=function(r,t,e){cr[r]!=null&&cr[r].forEach(n=>n(t,e))};var eu=xn;var ru="lock:worker:request-read",nu="lock:worker:release-read",ou="lock:master:grant-read",su="lock:worker:request-write",iu="lock:worker:release-write",au="lock:master:grant-write";var Ep=(r=21)=>Math.random().toString().substring(2);var Ap=(r,t,e,n,o)=>(s,i)=>{if(i.data.type!==e)return;let a={type:i.data.type,name:i.data.name,identifier:i.data.identifier};r.dispatchEvent(new MessageEvent(t,{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?.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)})}}}))},Sp=(r,t,e,n)=>async()=>{let o=Ep();return globalThis.postMessage({type:t,identifier:o,name:r}),new Promise(s=>{let i=a=>{if(a?.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===o&&(globalThis.removeEventListener("message",i),s(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",i)})},Dw={singleProcess:!1},_p=r=>{if(r=Object.assign({},Dw,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return eu.addEventListener("message",Ap(e,"requestReadLock",ru,nu,ou)),eu.addEventListener("message",Ap(e,"requestWriteLock",su,iu,au)),e}return{isWorker:!0,readLock:e=>Sp(e,ru,ou,nu),writeLock:e=>Sp(e,su,au,iu)}};var Lr={},lr;async function cu(r,t){let e,n=new Promise(o=>{e=o});return r.add(async()=>mo((async()=>{await new Promise(o=>{e(()=>{o()})})})(),{milliseconds:t.timeout})),n}var Rw=(r,t)=>{if(lr.isWorker===!0)return{readLock:lr.readLock(r,t),writeLock:lr.writeLock(r,t)};let e=new sr({concurrency:1}),n;return{async readLock(){if(n!=null)return cu(n,t);n=new sr({concurrency:t.concurrency,autoStart:!1});let o=n,s=cu(n,t);return e.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),s},async writeLock(){return n=null,cu(e,t)}}},Mw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function lu(r){let t=Object.assign({},Mw,r);return lr==null&&(lr=_p(t),lr.isWorker!==!0&&(lr.addEventListener("requestReadLock",e=>{Lr[e.data.name]!=null&&Lr[e.data.name].readLock().then(async n=>e.data.handler().finally(()=>{n()}))}),lr.addEventListener("requestWriteLock",async e=>{Lr[e.data.name]!=null&&Lr[e.data.name].writeLock().then(async n=>e.data.handler().finally(()=>{n()}))}))),Lr[t.name]==null&&(Lr[t.name]=Rw(t.name,t)),Lr[t.name]}var vn;(function(r){let t;(function(o){let s;o.codec=()=>(s==null&&(s=Ot((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,c={})=>{let u={key:"",value:ft(0)},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{u.key=i.string();break}case 2:{u.value=i.bytes();break}default:{i.skipType(l&7);break}}}return u})),s),o.encode=i=>Ut(i,o.codec()),o.decode=(i,a)=>Mt(i,o.codec(),a)})(t=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let e;(function(o){let s;o.codec=()=>(s==null&&(s=Ot((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),Di.codec().encode(i.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(i,a,c={})=>{let u={key:""},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{u.key=i.string();break}case 2:{u.value=Di.codec().decode(i,i.uint32(),{limits:c.limits?.value});break}default:{i.skipType(l&7);break}}}return u})),s),o.encode=i=>Ut(i,o.codec()),o.decode=(i,a)=>Mt(i,o.codec(),a)})(e=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Ot((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.addresses!=null)for(let a of o.addresses)s.uint32(10),Pi.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,i={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let u=o.uint32();switch(u>>>3){case 1:{if(i.limits?.addresses!=null&&a.addresses.length===i.limits.addresses)throw new Er('Decode error - map field "addresses" had too many elements');a.addresses.push(Pi.codec().decode(o,o.uint32(),{limits:i.limits?.addresses$}));break}case 2:{if(i.limits?.protocols!=null&&a.protocols.length===i.limits.protocols)throw new Er('Decode error - map field "protocols" had too many elements');a.protocols.push(o.string());break}case 4:{a.publicKey=o.bytes();break}case 5:{a.peerRecordEnvelope=o.bytes();break}case 6:{if(i.limits?.metadata!=null&&a.metadata.size===i.limits.metadata)throw new Wn('Decode error - map field "metadata" had too many elements');let f=r.Peer$metadataEntry.codec().decode(o,o.uint32());a.metadata.set(f.key,f.value);break}case 7:{if(i.limits?.tags!=null&&a.tags.size===i.limits.tags)throw new Wn('Decode error - map field "tags" had too many elements');let f=r.Peer$tagsEntry.codec().decode(o,o.uint32(),{limits:{value:i.limits?.tags$value}});a.tags.set(f.key,f.value);break}default:{o.skipType(u&7);break}}}return a})),n),r.encode=o=>Ut(o,r.codec()),r.decode=(o,s)=>Mt(o,r.codec(),s)})(vn||(vn={}));var Pi;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={multiaddr:ft(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.multiaddr=e.bytes();break}case 2:{s.isCertified=e.bool();break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Ut(e,r.codec()),r.decode=(e,n)=>Mt(e,r.codec(),n)})(Pi||(Pi={}));var Di;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.value!=null&&e.value!==0&&(n.uint32(8),n.uint32(e.value)),e.expiry!=null&&(n.uint32(16),n.uint64(e.expiry)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={value:0},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.value=e.uint32();break}case 2:{s.expiry=e.uint64();break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Ut(e,r.codec()),r.decode=(e,n)=>Mt(e,r.codec(),n)})(Di||(Di={}));function En(r,t){let e=vn.decode(t);if(e.publicKey!=null&&r.publicKey==null){let s=fn(e.publicKey);r=_l(s)}let n=new Map,o=BigInt(Date.now());for(let[s,i]of e.tags.entries())i.expiry!=null&&i.expiry<o||n.set(s,i);return{...e,id:r,addresses:e.addresses.map(({multiaddr:s,isCertified:i})=>({multiaddr:rt(s),isCertified:i??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}var Oe="/",Bp=new TextEncoder().encode(Oe),Ri=Bp[0],Nr=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=P(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Ri)throw new Error("Invalid key")}toString(t="utf8"){return et(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(Oe))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Bp),this._buf[0]!==Ri){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Ri,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ri;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let o=0;o<e.length;o++){if(n.length<o+1)return!1;let s=e[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Oe).slice(1)}type(){return Uw(this.baseNamespace())}name(){return Ow(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Oe)||(t+=Oe),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(Oe):new r(t.slice(0,-1).join(Oe))}child(t){return this.toString()===Oe?t:t.toString()===Oe?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...Fw(t.map(e=>e.namespaces()))])}};function Uw(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Ow(r){let t=r.split(":");return t[t.length-1]}function Fw(r){return[].concat(...r)}var uu="/peers/";function An(r){if(!Oo(r)||r.type==null)throw new R("Invalid PeerId");let t=r.toCID().toString();return new Nr(`${uu}${t}`)}async function Cp(r,t,e){let n=new Map;for(let o of e){if(o==null)continue;if(o.multiaddr instanceof Uint8Array&&(o.multiaddr=rt(o.multiaddr)),!ar(o.multiaddr))throw new R("Multiaddr was invalid");if(!await t(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 Ui(r,t,e,n){if(t==null)throw new R("Invalid PeerData");if(t.publicKey!=null&&r.publicKey!=null&&!t.publicKey.equals(r.publicKey))throw new R("publicKey bytes do not match peer id publicKey bytes");let o=n.existingPeer;if(o!=null&&!r.equals(o.id))throw new R("peer id did not match existing peer id");let s=o?.addresses??[],i=new Set(o?.protocols??[]),a=o?.metadata??new Map,c=o?.tags??new Map,u=o?.peerRecordEnvelope;if(e==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(i=new Set(t.protocols)),t.metadata!=null){let d=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Mi(d,{validate:Ip})}if(t.tags!=null){let d=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Mi(d,{validate:kp,map:Tp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(e==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(i=new Set([...i,...t.protocols])),t.metadata!=null){let d=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[h,p]of d)p==null?a.delete(h):a.set(h,p);a=Mi([...a.entries()],{validate:Ip})}if(t.tags!=null){let d=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),h=new Map(c);for(let[p,m]of d)m==null?h.delete(p):h.set(p,m);c=Mi([...h.entries()],{validate:kp,map:Tp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let f;o?.id.publicKey!=null?f=de(o.id.publicKey):t.publicKey!=null?f=de(t.publicKey):r.publicKey!=null&&(f=de(r.publicKey));let l={addresses:await Cp(r,n.addressFilter??(async()=>!0),s),protocols:[...i.values()].sort((d,h)=>d.localeCompare(h)),metadata:a,tags:c,publicKey:f,peerRecordEnvelope:u};return r.type!=="RSA"&&delete l.publicKey,l}function Mi(r,t){let e=new Map;for(let[n,o]of r)o!=null&&t.validate(n,o);for(let[n,o]of r.sort(([s],[i])=>s.localeCompare(i)))o!=null&&e.set(n,t.map?.(n,o)??o);return e}function Ip(r,t){if(typeof r!="string")throw new R("Metadata key must be a string");if(!(t instanceof Uint8Array))throw new R("Metadata value must be a Uint8Array")}function kp(r,t){if(typeof r!="string")throw new R("Tag name must be a string");if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new R("Tag value must be an integer");if(t.value<0||t.value>100)throw new R("Tag value must be between 0-100")}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new R("Tag ttl must be an integer");if(t.ttl<0)throw new R("Tag ttl must be between greater than 0")}}function Tp(r,t){let e;return t.expiry!=null&&(e=t.expiry),t.ttl!=null&&(e=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:e}}function Oi(r,t){let e=r.toString().split("/")[2],n=mt.parse(e,Wt),o=hi(n);return En(o,t)}function Vw(r){return r==null?{}:{prefix:uu,filters:(r.filters??[]).map(t=>({key:e,value:n})=>t(Oi(e,n))),orders:(r.orders??[]).map(t=>(e,n)=>t(Oi(e.key,e.value),Oi(n.key,n.value)))}}var Fi=class{peerId;datastore;lock;addressFilter;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=e.addressFilter,this.lock=lu({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(An(t))}async delete(t){if(this.peerId.equals(t))throw new R("Cannot delete self peer");await this.datastore.delete(An(t))}async load(t){let e=await this.datastore.get(An(t));return En(t,e)}async save(t,e){let{existingBuf:n,existingPeer:o}=await this.#t(t),s=await Ui(t,e,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,o)}async patch(t,e){let{existingBuf:n,existingPeer:o}=await this.#t(t),s=await Ui(t,e,"patch",{addressFilter:this.addressFilter,existingPeer:o});return this.#e(t,s,n,o)}async merge(t,e){let{existingBuf:n,existingPeer:o}=await this.#t(t),s=await Ui(t,e,"merge",{addressFilter:this.addressFilter,existingPeer:o});return this.#e(t,s,n,o)}async*all(t){for await(let{key:e,value:n}of this.datastore.query(Vw(t??{}))){let o=Oi(e,n);o.id.equals(this.peerId)||(yield o)}}async#t(t){try{let e=await this.datastore.get(An(t)),n=En(t,e);return{existingBuf:e,existingPeer:n}}catch(e){e.name!=="NotFoundError"&&this.log.error("invalid peer data found in peer store - %e",e)}return{}}async#e(t,e,n,o){let s=vn.encode(e);return n!=null&&ut(s,n)?{peer:En(t,s),previous:o,updated:!1}:(await this.datastore.put(An(t),s),{peer:En(t,s),previous:o,updated:!0})}};var fu=class{store;events;peerId;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.events=t.events,this.peerId=t.peerId,this.store=new Fi(t,e)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(t,e){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let o of this.store.all(e))t(o)}finally{this.log.trace("forEach release read lock"),n()}}async all(t){this.log.trace("all await read lock");let e=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await Eo(this.store.all(t))}finally{this.log.trace("all release read lock"),e()}}async delete(t){this.log.trace("delete await write lock");let e=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(t)}finally{this.log.trace("delete release write lock"),e()}}async has(t){this.log.trace("has await read lock");let e=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(t)}finally{this.log.trace("has release read lock"),e()}}async get(t){this.log.trace("get await read lock");let e=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(t)}finally{this.log.trace("get release read lock"),e()}}async save(t,e){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let o=await this.store.save(t,e);return this.#t(t,o),o.peer}finally{this.log.trace("save release write lock"),n()}}async patch(t,e){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let o=await this.store.patch(t,e);return this.#t(t,o),o.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(t,e){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let o=await this.store.merge(t,e);return this.#t(t,o),o.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(t,e){let n=await bn.openAndCertify(t,Tr.DOMAIN),o=hi(n.publicKey.toCID());if(e?.equals(o)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",e,o),!1;let s=Tr.createFromProtobuf(n.payload),i;try{i=await this.get(o)}catch(a){if(a.name!=="NotFoundError")throw a}if(i?.peerRecordEnvelope!=null){let a=await bn.createFromProtobuf(i.peerRecordEnvelope),c=Tr.createFromProtobuf(a.payload);if(c.seqNumber>=s.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,s.seqNumber),!1}return await this.patch(s.peerId,{peerRecordEnvelope:t,addresses:s.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!0}#t(t,e){e.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:e}):this.events.safeDispatchEvent("peer:update",{detail:e}))}};function Lp(r,t={}){return new fu(r,t)}var Vi=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(t="Not Found"){super(t)}};function Hw(r){return r[Symbol.asyncIterator]!=null}function Kw(r){if(Hw(r))return(async()=>{for await(let t of r);})();for(let t of r);}var hu=Kw;function qw(r){let[t,e]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[e](){return this}}}var Np=qw;function $w(r){return r[Symbol.asyncIterator]!=null}function zw(r,t){let e=0;if($w(r))return async function*(){for await(let c of r)await t(c,e++)&&(yield c)}();let n=Np(r),{value:o,done:s}=n.next();if(s===!0)return function*(){}();let i=t(o,e++);if(typeof i.then=="function")return async function*(){await i&&(yield o);for await(let c of n)await t(c,e++)&&(yield c)}();let a=t;return function*(){i===!0&&(yield o);for(let c of n)a(c,e++)&&(yield c)}()}var Pr=zw;function Gw(r){return r[Symbol.asyncIterator]!=null}function Ww(r,t){return Gw(r)?async function*(){yield*(await Eo(r)).sort(t)}():function*(){yield*Eo(r).sort(t)}()}var du=Ww;function jw(r){return r[Symbol.asyncIterator]!=null}function Zw(r,t){return jw(r)?async function*(){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}():function*(){let e=0;if(!(t<1)){for(let n of r)if(yield n,e++,e===t)return}}()}var pu=Zw;var Hi=class{put(t,e,n){return Promise.reject(new Error(".put is not implemented"))}get(t,e){return Promise.reject(new Error(".get is not implemented"))}has(t,e){return Promise.reject(new Error(".has is not implemented"))}delete(t,e){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,e={}){for await(let{key:n,value:o}of t)await this.put(n,o,e),yield n}async*getMany(t,e={}){for await(let n of t)yield{key:n,value:await this.get(n,e)}}async*deleteMany(t,e={}){for await(let n of t)await this.delete(n,e),yield n}batch(){let t=[],e=[];return{put(n,o){t.push({key:n,value:o})},delete(n){e.push(n)},commit:async n=>{await hu(this.putMany(t,n)),t=[],await hu(this.deleteMany(e,n)),e=[]}}}async*_all(t,e){throw new Error("._all is not implemented")}async*_allKeys(t,e){throw new Error("._allKeys is not implemented")}query(t,e){let n=this._all(t,e);if(t.prefix!=null){let o=t.prefix;n=Pr(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((o,s)=>Pr(o,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((o,s)=>du(o,s),n)),t.offset!=null){let o=0,s=t.offset;n=Pr(n,()=>o++>=s)}return t.limit!=null&&(n=pu(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null){let o=t.prefix;n=Pr(n,s=>s.toString().startsWith(o))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((o,s)=>Pr(o,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((o,s)=>du(o,s),n)),t.offset!=null){let o=t.offset,s=0;n=Pr(n,()=>s++>=o)}return t.limit!=null&&(n=pu(n,t.limit)),n}};var Ki=class extends Hi{data;constructor(){super(),this.data=new Map}put(t,e){return this.data.set(t.toString(),e),t}get(t){let e=this.data.get(t.toString());if(e==null)throw new Vi;return e}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,e]of this.data.entries())yield{key:new Nr(t),value:e}}*_allKeys(){for(let t of this.data.keys())yield new Nr(t)}};function Pp(r,t){let e,n=function(){let o=function(){e=void 0,r()};clearTimeout(e),e=setTimeout(o,t)};return n.start=()=>{},n.stop=()=>{clearTimeout(e)},n}var Xw=r=>r;function mu(r,t){let e=r.getPeerId();return e!=null&&we(e).equals(t)&&(r=r.decapsulate(rt(`/p2p/${t.toString()}`))),r}var qi=4,$i=41,Yw=54,Jw=55,Qw=6,tb=273,zi=class{log;components;listen;announce;appendAnnounce;observed;announceFilter;ipDomainMappings;publicAddressMappings;constructor(t,e={}){let{listen:n=[],announce:o=[],appendAnnounce:s=[]}=e;this.components=t,this.log=t.logger.forComponent("libp2p:address-manager"),this.listen=n.map(i=>i.toString()),this.announce=new Set(o.map(i=>i.toString())),this.appendAnnounce=new Set(s.map(i=>i.toString())),this.observed=new Map,this.ipDomainMappings=new Map,this.publicAddressMappings=new Map,this.announceFilter=e.announceFilter??Xw,this._updatePeerStoreAddresses=Pp(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}[Symbol.toStringTag]="@libp2p/address-manager";_updatePeerStoreAddresses(){let t=this.getAddresses().map(e=>e.getPeerId()===this.components.peerId.toString()?e.decapsulate(`/p2p/${this.components.peerId.toString()}`):e);this.components.peerStore.patch(this.components.peerId,{multiaddrs:t}).catch(e=>{this.log.error("error updating addresses",e)})}getListenAddrs(){return Array.from(this.listen).map(t=>rt(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>rt(t))}getAppendAnnounceAddrs(){return Array.from(this.appendAnnounce).map(t=>rt(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>rt(t))}addObservedAddr(t){t=mu(t,this.components.peerId);let e=t.toString();this.observed.has(e)||this.observed.set(e,{confident:!1})}confirmObservedAddr(t){t=mu(t,this.components.peerId);let e=t.toString(),o=(this.observed.get(e)??{confident:!1}).confident;this.observed.set(e,{confident:!0}),o||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=mu(t,this.components.peerId);let e=t.toString();this.observed.delete(e)}getAddresses(){let t=this.getAnnounceAddrs();t.length===0&&(t=this.components.transportManager.getAddrs()),t=t.concat(...this.getAppendAnnounceAddrs(),Array.from(this.observed).filter(([s,i])=>i.confident).map(([s])=>rt(s)));let e=[];t.forEach(s=>{let i=s.stringTuples(),a;if((i[0][0]===qi||i[0][0]===$i)&&i[1][0]===Qw?a=`${i[0][1]}-${i[1][1]}-tcp`:(i[0][0]===qi||i[0][0]===$i)&&i[1][0]===tb&&(a=`${i[0][1]}-${i[1][1]}-udp`),a==null)return;let c=this.publicAddressMappings.get(a);if(c!=null)for(let u of c)i[0][0]=ir(u.externalIp)?qi:$i,i[0][1]=u.externalIp,i[1][1]=`${u.externalPort}`,e.push(rt(`/${i.map(f=>[W(f[0]).name,f[1]].join("/")).join("/")}`))}),t=t.concat(e);let n=[];for(let s of t){let i=s.stringTuples(),a=!1;for(let[c,u]of this.ipDomainMappings.entries())if(u.confident)for(let f=0;f<i.length;f++)i[f][1]===c&&(i[f][0]===qi&&(i[f][0]=Yw,i[f][1]=u.domain,a=!0),i[f][0]===$i&&(i[f][0]=Jw,i[f][1]=u.domain,a=!0));a&&n.push(rt(`/${i.map(c=>[W(c[0]).name,c[1]].join("/")).join("/")}`))}t=t.concat(n);let o=new Set;return t=t.filter(s=>{let i=s.toString();return o.has(i)?!1:(o.add(i),!0)}),this.announceFilter(Array.from(o).map(s=>{let i=rt(s);return i.protos().pop()?.path===!0||i.getPeerId()===this.components.peerId.toString()?i:i.encapsulate(`/p2p/${this.components.peerId.toString()}`)}))}addDNSMapping(t,e){e.forEach(n=>{this.log("add DNS mapping %s to %s",n,t);let o=[...this.publicAddressMappings.entries()].some(([s,i])=>i.some(a=>a.externalIp===n));this.ipDomainMappings.set(n,{domain:t,confident:o})}),this._updatePeerStoreAddresses()}removeDNSMapping(t){for(let[e,n]of this.ipDomainMappings.entries())n.domain===t&&(this.log("remove DNS mapping for %s",t),this.ipDomainMappings.delete(e));this._updatePeerStoreAddresses()}addPublicAddressMapping(t,e,n,o=e,s="tcp"){let i=`${t}-${e}-${s}`,a=this.publicAddressMappings.get(i)??[];a.push({externalIp:n,externalPort:o}),this.publicAddressMappings.set(i,a);for(let[c,u]of this.ipDomainMappings.entries())c===n&&(u.confident=!0,this.ipDomainMappings.set(c,u));this._updatePeerStoreAddresses()}removePublicAddressMapping(t,e,n,o=e,s="tcp"){let i=`${t}-${e}-${s}`,a=(this.publicAddressMappings.get(i)??[]).filter(c=>c.externalIp!==n&&c.externalPort!==o);a.length===0?this.publicAddressMappings.delete(i):this.publicAddressMappings.set(i,a),this._updatePeerStoreAddresses()}};var Dp;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.NOT_FOUND="Not found"})(Dp||(Dp={}));var Gi=class extends Error{constructor(t="Missing service"){super(t),this.name="MissingServiceError"}},Wi=class extends Error{constructor(t="Unmet service dependencies"){super(t),this.name="UnmetServiceDependenciesError"}},Sn=class extends Error{constructor(t="No content routers available"){super(t),this.name="NoContentRoutersError"}},Ao=class extends Error{constructor(t="No peer routers available"){super(t),this.name="NoPeerRoutersError"}},ji=class extends Error{constructor(t="Should not try to find self"){super(t),this.name="QueriedForSelfError"}},Zi=class extends Error{constructor(t="Unhandled protocol error"){super(t),this.name="UnhandledProtocolError"}},Xi=class extends Error{constructor(t="Duplicate protocol handler error"){super(t),this.name="DuplicateProtocolHandlerError"}},So=class extends Error{constructor(t="Dial denied error"){super(t),this.name="DialDeniedError"}},Dr=class extends Error{constructor(t="No valid addresses"){super(t),this.name="NoValidAddressesError"}},Yi=class extends Error{constructor(t="Connection intercepted"){super(t),this.name="ConnectionInterceptedError"}},Ji=class extends Error{constructor(t="Connection denied"){super(t),this.name="ConnectionDeniedError"}},Rr=class extends Error{constructor(t="Stream is not multiplexed"){super(t),this.name="MuxerUnavailableError"}},Mr=class extends Error{constructor(t="Encryption failed"){super(t),this.name="EncryptionFailedError"}},Qi=class extends Error{constructor(t="Transport unavailable"){super(t),this.name="TransportUnavailableError"}};var gu=class{components={};_started=!1;constructor(t={}){this.components={};for(let[e,n]of Object.entries(t))this.components[e]=n;this.components.logger==null&&(this.components.logger=Ci())}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(e=>Wo(e)).map(async e=>{await e[t]?.()}))}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")}},rb=["metrics","connectionProtector","dns"],nb=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Rp(r={}){let t=new gu(r);return new Proxy(t,{get(n,o,s){if(typeof o=="string"&&!nb.includes(o)){let i=t.components[o];if(i==null&&!rb.includes(o))throw new Gi(`${o} not set`);return i}return Reflect.get(n,o,s)},set(n,o,s){return typeof o=="string"?t.components[o]=s:Reflect.set(n,o,s),!0}})}function Mp(r){let t={};for(let e of Object.values(r.components))for(let n of ob(e))t[n]=!0;for(let e of Object.values(r.components))for(let n of sb(e))if(t[n]!==!0)throw new Wi(`Service "${ib(e)}" required capability "${n}" but it was not provided by any component, you may need to add additional configuration when creating your node.`)}function ob(r){return Array.isArray(r?.[Pn])?r[Pn]:[]}function sb(r){return Array.isArray(r?.[Xa])?r[Xa]:[]}function ib(r){return r?.[Symbol.toStringTag]??r?.toString()??"unknown"}var Op=hr(Up(),1),ab=["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"],cb=ab.map(r=>new Op.Netmask(r));function yu(r){for(let t of cb)if(t.contains(r))return!0;return!1}function lb(r){return/^::ffff:([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})$/.test(r)}function ub(r){let t=r.split(":");if(t.length<2)return!1;let e=t[t.length-1].padStart(4,"0"),n=t[t.length-2].padStart(4,"0"),o=`${parseInt(n.substring(0,2),16)}.${parseInt(n.substring(2),16)}.${parseInt(e.substring(0,2),16)}.${parseInt(e.substring(2),16)}`;return yu(o)}function fb(r){return/^::ffff:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)}function hb(r){let t=r.split(":"),e=t[t.length-1];return yu(e)}function db(r){return/^::$/.test(r)||/^::1$/.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 ta(r){return ir(r)?yu(r):lb(r)?ub(r):fb(r)?hb(r):pn(r)?db(r):void 0}var pb=r=>r.toString().split("/").slice(1),_n=r=>({match:t=>t.length<1?!1:r(t[0])?t.slice(1):!1,pattern:"fn"}),z=r=>({match:t=>_n(e=>e===r).match(t),pattern:r}),Ur=()=>({match:r=>_n(t=>typeof t=="string").match(r),pattern:"{string}"}),Bo=()=>({match:r=>_n(t=>!isNaN(parseInt(t))).match(r),pattern:"{number}"}),tt=()=>({match:r=>{if(r.length<2||r[0]!=="p2p"&&r[0]!=="ipfs")return!1;if(r[1].startsWith("Q")||r[1].startsWith("1"))try{Z.decode(`z${r[1]}`)}catch{return!1}else return!1;return r.slice(2)},pattern:"/p2p/{peerid}"}),Co=()=>({match:r=>{if(r.length<2||r[0]!=="certhash")return!1;try{Kc.decode(r[1])}catch{return!1}return r.slice(2)},pattern:"/certhash/{certhash}"}),j=r=>({match:t=>{let e=r.match(t);return e===!1?t:e},pattern:`optional(${r.pattern})`}),Pt=(...r)=>({match:t=>{let e;for(let n of r){let o=n.match(t);o!==!1&&(e==null||o.length<e.length)&&(e=o)}return e??!1},pattern:`or(${r.map(t=>t.pattern).join(", ")})`}),G=(...r)=>({match:t=>{for(let e of r){let n=e.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${r.map(t=>t.pattern).join(", ")})`});function ct(...r){function t(o){let s=pb(o);for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function e(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:r,matches:e,exactMatch:n}}var ra=G(z("dns4"),Ur()),na=G(z("dns6"),Ur()),oa=G(z("dnsaddr"),Ur()),bu=G(z("dns"),Ur()),U6=ct(ra,j(tt())),O6=ct(na,j(tt())),F6=ct(oa,j(tt())),V6=ct(Pt(bu,oa,ra,na),j(tt())),Fp=G(z("ip4"),_n(ir)),Vp=G(z("ip6"),_n(pn)),xu=Pt(Fp,Vp),Fe=Pt(xu,bu,ra,na,oa),H6=ct(Pt(xu,G(Pt(bu,oa,ra,na),j(tt())))),K6=ct(Fp),q6=ct(Vp),$6=ct(xu),vu=G(Fe,z("tcp"),Bo()),Io=G(Fe,z("udp"),Bo()),Eu=ct(G(vu,j(tt()))),z6=ct(Io),Au=G(Io,z("quic"),j(tt())),sa=G(Io,z("quic-v1"),j(tt())),mb=Pt(Au,sa),G6=ct(Au),W6=ct(sa),wu=Pt(Fe,vu,Io,Au,sa),Hp=Pt(G(wu,z("ws"),j(tt()))),ko=ct(Hp),Kp=Pt(G(wu,z("wss"),j(tt())),G(wu,z("tls"),j(G(z("sni"),Ur())),z("ws"),j(tt()))),Su=ct(Kp),qp=G(Io,z("webrtc-direct"),j(Co()),j(Co()),j(tt())),_u=ct(qp),$p=G(sa,z("webtransport"),j(Co()),j(Co()),j(tt())),Bu=ct($p),ea=Pt(Hp,Kp,G(vu,j(tt())),G(mb,j(tt())),G(Fe,j(tt())),qp,$p,tt()),j6=ct(ea),gb=G(ea,z("p2p-circuit"),tt()),To=ct(gb),yb=Pt(G(ea,z("p2p-circuit"),z("webrtc"),j(tt())),G(ea,z("webrtc"),j(tt())),G(z("webrtc"),j(tt()))),Cu=ct(yb),wb=Pt(G(Fe,z("tcp"),Bo(),z("http"),j(tt())),G(Fe,z("http"),j(tt()))),Z6=ct(wb),bb=Pt(G(Fe,z("tcp"),Pt(G(z("443"),z("http")),G(Bo(),z("https"))),j(tt())),G(Fe,z("tls"),z("http"),j(tt())),G(Fe,z("https"),j(tt()))),X6=ct(bb),xb=Pt(G(z("memory"),Ur(),j(tt()))),Y6=ct(xb);var vb=4,Eb=41;function zp(r={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{if(ko.matches(t))return!1;let e=t.stringTuples();return e[0][0]===vb||e[0][0]===Eb?!!ta(`${e[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 Gp=()=>{let r=new Error("Delay aborted");return r.name="AbortError",r},Ab=new WeakMap;function Sb({clearTimeout:r,setTimeout:t}={}){return(e,{value:n,signal:o}={})=>{if(o?.aborted)return Promise.reject(Gp());let s,i,a,c=r??clearTimeout,u=()=>{c(s),a(Gp())},f=()=>{o&&o.removeEventListener("abort",u)},l=new Promise((d,h)=>{i=()=>{f(),d(n)},a=h,s=(t??setTimeout)(i,e)});return o&&o.addEventListener("abort",u,{once:!0}),Ab.set(l,()=>{c(s),s=null,i()}),l}}var _b=Sb(),Wp=_b;var ia=class extends Error{remainingPoints;msBeforeNext;consumedPoints;isFirstInDuration;constructor(t="Rate limit exceeded",e){super(t),this.name="RateLimitError",this.remainingPoints=e.remainingPoints,this.msBeforeNext=e.msBeforeNext,this.consumedPoints=e.consumedPoints,this.isFirstInDuration=e.isFirstInDuration}},aa=class extends Error{static name="QueueFullError";constructor(t="The queue was full"){super(t),this.name="QueueFullError"}};var ca=class{memoryStorage;points;duration;blockDuration;execEvenly;execEvenlyMinDelayMs;keyPrefix;constructor(t={}){this.points=t.points??4,this.duration=t.duration??1,this.blockDuration=t.blockDuration??0,this.execEvenly=t.execEvenly??!1,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs??this.duration*1e3/this.points,this.keyPrefix=t.keyPrefix??"rlflx",this.memoryStorage=new Iu}async consume(t,e=1,n={}){let o=this.getKey(t),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,e,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+e&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new ia("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 Wp(a)}return i}penalty(t,e=1,n={}){let o=this.getKey(t),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,e,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(t,e=1,n={}){let o=this.getKey(t),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-e,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(t,e){let n=e*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(t),o,e),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(t,e,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(t),e,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:e,isFirstInDuration:!1}}get(t){let e=this.memoryStorage.get(this.getKey(t));return e!=null&&(e.remainingPoints=Math.max(this.points-e.consumedPoints,0)),e}delete(t){this.memoryStorage.delete(this.getKey(t))}_getKeySecDuration(t){return t?.customDuration!=null&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}},Iu=class{storage;constructor(){this.storage=new Map}incrby(t,e,n){let o=this.storage.get(t);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=e,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(t,e,n)}return this.set(t,e,n)}set(t,e,n){let o=n*1e3,s=this.storage.get(t);s!=null&&clearTimeout(s.timeoutId);let i={value:e,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(t,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(t)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(t){let e=this.storage.get(t);if(e!=null)return{remainingPoints:0,msBeforeNext:e.expiresAt!=null?e.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:e.value,isFirstInDuration:!1}}delete(t){let e=this.storage.get(t);return e!=null?(e.timeoutId!=null&&clearTimeout(e.timeoutId),this.storage.delete(t),!0):!1}};function la(r){if(Oo(r))return{peerId:r,multiaddrs:[]};Array.isArray(r)||(r=[r]);let t;if(r.length>0){let e=r[0].getPeerId();t=e==null?void 0:we(e),r.forEach(n=>{if(!ar(n))throw new Ke("Invalid multiaddr");let o=n.getPeerId();if(o==null){if(t!=null)throw new R("Multiaddrs must all have the same peer id or have no peer id")}else{let s=we(o);if(t?.equals(s)!==!0)throw new R("Multiaddrs must all have the same peer id or have no peer id")}})}return{peerId:t,multiaddrs:r}}var Bb=["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/libp2p/autonat/1.0.0","/libp2p/dcutr"];async function jp(r,t){let e=r?.streams?.map(o=>o.protocol)??[],n=t?.closableProtocols??Bb;if(!(e.filter(o=>o!=null&&!n.includes(o)).length>0))try{await r?.close(t)}catch(o){r?.abort(o)}}var Zp="last-dial-failure",Xp="last-dial-success";var ua=100,fa=50;var Yp={maxConnections:ua,allow:[]},ha=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(t,e={}){this.maxConnections=e.maxConnections??Yp.maxConnections,this.allow=e.allow??Yp.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,this.log=t.logger.forComponent("libp2p:connection-manager:connection-pruner"),this.maybePruneConnections=this.maybePruneConnections.bind(this)}start(){this.events.addEventListener("connection:open",this.maybePruneConnections)}stop(){this.events.removeEventListener("connection:open",this.maybePruneConnections)}maybePruneConnections(){this._maybePruneConnections().catch(t=>{this.log.error("error while pruning connections %e",t)})}async _maybePruneConnections(){let t=this.connectionManager.getConnections(),e=t.length;if(this.log("checking max connections limit %d/%d",e,this.maxConnections),e<=this.maxConnections)return;let n=new Ue;for(let a of t){let c=a.remotePeer;if(!n.has(c)){n.set(c,0);try{let u=await this.peerStore.get(c);n.set(c,[...u.tags.values()].reduce((f,l)=>f+l.value,0))}catch(u){u.name!=="NotFoundError"&&this.log.error("error loading peer tags",u)}}}let o=this.sortConnections(t,n),s=Math.max(e-this.maxConnections,0),i=[];for(let a of o)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===s)break;await Promise.all(i.map(async a=>{await jp(a,{signal:AbortSignal.timeout(1e3)})})),this.events.safeDispatchEvent("connection:prune",{detail:i})}sortConnections(t,e){return t.sort((n,o)=>{let s=n.timeline.open,i=o.timeline.open;return s<i?1:s>i?-1:0}).sort((n,o)=>n.direction==="outbound"&&o.direction==="inbound"?1:n.direction==="inbound"&&o.direction==="outbound"?-1:0).sort((n,o)=>n.streams.length>o.streams.length?1:n.streams.length<o.streams.length?-1:0).sort((n,o)=>{let s=e.get(n.remotePeer)??0,i=e.get(o.remotePeer)??0;return s>i?1:s<i?-1:0})}};function ht(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var da=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Bn=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new da(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new da(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var ku=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function pa(r={}){return Cb(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Cb(r,t){t=t??{};let e=t.onEnd,n=new Bn,o,s,i,a=ht(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((g,w)=>{s=b=>{s=null,n.push(b);try{g(r(n))}catch(y){w(y)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ht()})}},u=g=>s!=null?s(g):(n.push(g),o),f=g=>(n=new Bn,s!=null?s({error:g}):(n.push({error:g}),o)),l=g=>{if(i)return o;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},d=g=>i?o:(i=!0,g!=null?f(g):u({done:!0})),h=()=>(n=new Bn,d(),{done:!0}),p=g=>(d(g),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:h,throw:p,push:l,end:d,get readableLength(){return n.size},onEmpty:async g=>{let w=g?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let b,y;w!=null&&(b=new Promise((x,A)=>{y=()=>{A(new ku)},w.addEventListener("abort",y)}));try{await Promise.race([a.promise,b])}finally{y!=null&&w!=null&&w?.removeEventListener("abort",y)}}},e==null)return o;let m=o;return o={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(g){return m.throw(g),e!=null&&(e(g),e=void 0),{done:!0}},return(){return m.return(),e!=null&&(e(),e=void 0),{done:!0}},push:l,end(g){return m.end(g),e!=null&&(e(g),e=void 0),o},get readableLength(){return m.readableLength},onEmpty:g=>m.onEmpty(g)},o}var Tu=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function Cn(r,t,e,n){let o=new Tu(n?.errorMessage,n?.errorCode);return e?.aborted===!0?Promise.reject(o):new Promise((s,i)=>{function a(){e?.removeEventListener("abort",f),r.removeEventListener(t,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,u)}let c=l=>{try{if(n?.filter?.(l)===!1)return}catch(d){a(),i(d);return}a(),s(l)},u=l=>{a(),i(l.detail)},f=()=>{a(),i(o)};e?.addEventListener("abort",f),r.addEventListener(t,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,u)})}var ma=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function ur(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new ma(e?.errorMessage,e?.errorCode,e?.errorName));let n,o=new ma(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var ga=class{deferred;signal;constructor(t){this.signal=t,this.deferred=ht(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new te)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Ib(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var ya=class{id;fn;options;recipients;status;timeline;controller;constructor(t,e){this.id=Ib(),this.status="queued",this.fn=t,this.options=e,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,ot(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(t){this.controller.abort(t)}onAbort(){this.recipients.reduce((e,n)=>e&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new te),this.cleanup())}async join(t={}){let e=new ga(t.signal);return this.recipients.push(e),t.signal?.addEventListener("abort",this.onAbort),e.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let t=await ur(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(e=>{e.deferred.resolve(t)}),this.status="complete"}catch(t){this.recipients.forEach(e=>{e.deferred.reject(t)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(t=>{t.cleanup(),t.signal?.removeEventListener("abort",this.onAbort)})}};var In=class extends ve{concurrency;maxSize;queue;pending;sort;constructor(t={}){super(),this.concurrency=t.concurrency??Number.POSITIVE_INFINITY,this.maxSize=t.maxSize??Number.POSITIVE_INFINITY,this.pending=0,t.metricName!=null&&t.metrics?.registerMetricGroup(t.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=t.sort,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 t;for(let e of this.queue)if(e.status==="queued"){t=e;break}return t==null?!1:(this.safeDispatchEvent("active"),this.pending++,t.run().finally(()=>{for(let e=0;e<this.queue.length;e++)if(this.queue[e]===t){this.queue.splice(e,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(t){this.queue.push(t),this.sort!=null&&this.queue.sort(this.sort)}async add(t,e){if(e?.signal?.throwIfAborted(),this.size===this.maxSize)throw new aa;let n=new ya(t,e);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(e).then(o=>(this.safeDispatchEvent("completed",{detail:o}),this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("error",{detail:o}),this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(t=>{t.abort(new te)}),this.clear()}async onEmpty(t){this.size!==0&&await Cn(this,"empty",t?.signal)}async onSizeLessThan(t,e){this.size<t||await Cn(this,"next",e?.signal,{filter:()=>this.size<t})}async onIdle(t){this.pending===0&&this.size===0||await Cn(this,"idle",t?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(t){t?.signal?.throwIfAborted();let e=pa({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),e.end(c)},o=c=>{c.detail!=null&&e.push(c.detail)},s=c=>{n(c.detail)},i=()=>{n()},a=()=>{n(new te("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("error",s),this.addEventListener("idle",i),t?.signal?.addEventListener("abort",a);try{yield*e}finally{this.removeEventListener("completed",o),this.removeEventListener("error",s),this.removeEventListener("idle",i),t?.signal?.removeEventListener("abort",a),n()}}};var wa=class extends In{constructor(t={}){super({...t,sort:(e,n)=>e.options.priority>n.options.priority?-1:e.options.priority<n.options.priority?1:0})}};function Ve(r){let t=new globalThis.AbortController;function e(){t.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",e)}for(let s of r){if(s?.aborted===!0){e();break}s?.addEventListener!=null&&s.addEventListener("abort",e)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",e)}let o=t.signal;return o.clear=n,o}var kb=4,Tb=41,Lb=53,Nb=54,Pb=55,Db=56;function Lu(r){try{let[[t,e]]=r.stringTuples();if(e==null)return!0;if(t===Lb||t===Nb||t===Pb||t===Db)return!1;if(t===kb||t===Tb)return ta(e)??!1}catch{}return!0}function Rb(r,t){let e=Eu.exactMatch(r.multiaddr),n=Eu.exactMatch(t.multiaddr);if(e&&!n)return-1;if(!e&&n)return 1;let o=Su.exactMatch(r.multiaddr),s=Su.exactMatch(t.multiaddr);if(o&&!s)return-1;if(!o&&s)return 1;let i=ko.exactMatch(r.multiaddr),a=ko.exactMatch(t.multiaddr);if(i&&!a)return-1;if(!i&&a)return 1;let c=Cu.exactMatch(r.multiaddr),u=Cu.exactMatch(t.multiaddr);if(c&&!u)return-1;if(!c&&u)return 1;let f=_u.exactMatch(r.multiaddr),l=_u.exactMatch(t.multiaddr);if(f&&!l)return-1;if(!f&&l)return 1;let d=Bu.exactMatch(r.multiaddr),h=Bu.exactMatch(t.multiaddr);return d&&!h?-1:!d&&h?1:0}function Mb(r,t){let e=Lu(r.multiaddr),n=Lu(t.multiaddr);return e&&!n?1:!e&&n?-1:0}function Ub(r,t){return r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}function Ob(r,t){let e=To.exactMatch(r.multiaddr),n=To.exactMatch(t.multiaddr);return e&&!n?1:!e&&n?-1:0}function Jp(r){return r.sort(Rb).sort(Ub).sort(Ob).sort(Mb)}async function Qp(r,t){let e=!1;for(let o of gn.keys())if(e=r.protoNames().includes(o),e)break;if(!e)return[r];let n=await r.resolve(t);return t.log("resolved %s to",r,n.map(o=>o.toString())),n}var ba={maxParallelDials:fa,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:5e3,resolvers:{dnsaddr:_r}},xa=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;shutDownController;connections;log;constructor(t,e={}){this.addressSorter=e.addressSorter,this.maxPeerAddrsToDial=e.maxPeerAddrsToDial??ba.maxPeerAddrsToDial,this.maxDialQueueLength=e.maxDialQueueLength??ba.maxDialQueueLength,this.dialTimeout=e.dialTimeout??ba.dialTimeout,this.connections=e.connections??new Ue,this.log=t.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=t,this.shutDownController=new AbortController,ot(1/0,this.shutDownController.signal);for(let[n,o]of Object.entries(e.resolvers??{}))gn.set(n,o);this.queue=new wa({concurrency:e.maxParallelDials??ba.maxParallelDials,metricName:"libp2p_dial_queue",metrics:t.metrics}),this.queue.addEventListener("error",n=>{n.detail.name!==te.name&&this.log.error("error in dial queue - %e",n.detail)})}start(){this.shutDownController=new AbortController,ot(1/0,this.shutDownController.signal)}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(t,e={}){let{peerId:n,multiaddrs:o}=la(t),s=Array.from(this.connections.values()).flat().find(a=>e.force===!0?!1:a.remotePeer.equals(n)?!0:o.find(c=>c.equals(a.remoteAddr)));if(s?.status==="open")return this.log("already connected to %a",s.remoteAddr),e.onProgress?.(new dt("dial-queue:already-connected")),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 e.onProgress?.(new dt("dial-queue:already-in-dial-queue")),i.join(e)}if(this.queue.size>=this.maxDialQueueLength)throw new $r("Dial queue is full");return this.log("creating dial target for %p",n,o.map(a=>a.toString())),e.onProgress?.(new dt("dial-queue:add-to-dial-queue")),this.queue.add(async a=>{a?.onProgress?.(new dt("dial-queue:start-dial"));let c=Ve([this.shutDownController.signal,a.signal]);ot(1/0,c);let u;try{u=await this.calculateMultiaddrs(n,a?.multiaddrs,{...a,signal:c}),a?.onProgress?.(new dt("dial-queue:calculated-addresses",u)),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 d of u){if(f===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",f,n),new $r("Peer had more than maxPeerAddrsToDial");f++;try{let h=await this.components.transportManager.dial(d.multiaddr,{...a,signal:c});this.log("dial to %a succeeded",d.multiaddr);try{await this.components.peerStore.merge(h.remotePeer,{multiaddrs:[h.remoteAddr],metadata:{[Xp]:P(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}return h}catch(h){if(this.log.error("dial failed to %a",d.multiaddr,h),n!=null)try{await this.components.peerStore.merge(n,{metadata:{[Zp]:P(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}if(c.aborted)throw new $o(h.message);l.push(h)}}throw l.length===1?l[0]:new AggregateError(l,"All multiaddr dials failed")}finally{c.clear()}},{peerId:n,priority:e.priority??Ru,multiaddrs:new Set(o.map(a=>a.toString())),signal:e.signal??AbortSignal.timeout(this.dialTimeout),onProgress:e.onProgress})}async calculateMultiaddrs(t,e=new Set,n={}){let o=[...e].map(l=>({multiaddr:rt(l),isCertified:!1}));if(t!=null){if(this.components.peerId.equals(t))throw new $r("Tried to dial self");if(await this.components.connectionGater.denyDialPeer?.(t)===!0)throw new So("The dial request is blocked by gater.allowDialPeer");if(o.length===0){this.log("loading multiaddrs for %p",t);try{let l=await this.components.peerStore.get(t);o.push(...l.addresses),this.log("loaded multiaddrs for %p",t,o.map(({multiaddr:d})=>d.toString()))}catch(l){if(l.name!=="NotFoundError")throw l}}if(o.length===0){this.log("looking up multiaddrs for %p in the peer routing",t);try{let l=await this.components.peerRouting.findPeer(t);this.log("found multiaddrs for %p in the peer routing",t,o.map(({multiaddr:d})=>d.toString())),o.push(...l.multiaddrs.map(d=>({multiaddr:d,isCertified:!1})))}catch(l){l.name!=="NoPeerRoutersError"&&this.log.error("looking up multiaddrs for %p in the peer routing failed",t,l)}}}let s=(await Promise.all(o.map(async l=>{let d=await Qp(l.multiaddr,{dns:this.components.dns,...n,log:this.log});return d.length===1&&d[0].equals(l.multiaddr)?l:d.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(t!=null){let l=`/p2p/${t.toString()}`;s=s.map(d=>d.multiaddr.protos().pop()?.path===!0?d:d.multiaddr.getPeerId()==null?{multiaddr:d.multiaddr.encapsulate(l),isCertified:d.isCertified}:d)}let i=s.filter(l=>{if(this.components.transportManager.dialTransportForMultiaddr(l.multiaddr)==null)return!1;let d=l.multiaddr.getPeerId();return t!=null&&d!=null?t.equals(d):!0}),a=new Map;for(let l of i){let d=l.multiaddr.toString(),h=a.get(d);if(h!=null){h.isCertified=h.isCertified||l.isCertified||!1;continue}a.set(d,l)}let c=[...a.values()];if(c.length===0)throw new Dr("The dial request has 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=this.addressSorter==null?Jp(u):u.sort(this.addressSorter);if(f.length===0)throw new So("The connection gater denied all addresses in the dial request");return this.log.trace("addresses for %p before filtering",t??"unknown peer",s.map(({multiaddr:l})=>l.toString())),this.log.trace("addresses for %p after filtering",t??"unknown peer",f.map(({multiaddr:l})=>l.toString())),f}async isDialable(t,e={}){Array.isArray(t)||(t=[t]);try{let n=await this.calculateMultiaddrs(void 0,new Set(t.map(o=>o.toString())),e);return e.runOnLimitedConnection===!1?n.find(o=>!To.matches(o.multiaddr))!=null:!0}catch(n){this.log.trace("error calculating if multiaddr(s) were dialable",n)}return!1}};var va=class extends In{has(t){return this.find(t)!=null}find(t){return this.queue.find(e=>t.equals(e.options.peerId))}};var im=hr(om(),1);var Vb=Object.prototype.toString,Hb=r=>Vb.call(r)==="[object Error]",Kb=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function Mu(r){return r&&Hb(r)&&r.name==="TypeError"&&typeof r.message=="string"?r.message==="Load failed"?r.stack===void 0:Kb.has(r.message):!1}var Uu=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}},sm=(r,t,e)=>{let n=e.retries-(t-1);return r.attemptNumber=t,r.retriesLeft=n,r};async function Ou(r,t){return new Promise((e,n)=>{t={...t},t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.retries??=10;let o=im.default.operation(t),s=()=>{o.stop(),n(t.signal?.reason)};t.signal&&!t.signal.aborted&&t.signal.addEventListener("abort",s,{once:!0});let i=()=>{t.signal?.removeEventListener("abort",s),o.stop()};o.attempt(async a=>{try{let c=await r(a);i(),e(c)}catch(c){try{if(!(c instanceof Error))throw new TypeError(`Non-error was thrown: "${c}". You should only throw errors.`);if(c instanceof Uu)throw c.originalError;if(c instanceof TypeError&&!Mu(c))throw c;if(sm(c,a,t),await t.shouldRetry(c)||(o.stop(),n(c)),await t.onFailedAttempt(c),!o.retry(c))throw o.mainError()}catch(u){sm(u,a,t),i(),n(u)}}})})}var Ea=class{log;queue;started;peerStore;retries;retryInterval;backoffFactor;connectionManager;events;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:reconnect-queue"),this.peerStore=t.peerStore,this.connectionManager=t.connectionManager,this.queue=new va({concurrency:e.maxParallelReconnects??5,metricName:"libp2p_reconnect_queue",metrics:t.metrics}),this.started=!1,this.retries=e.retries??5,this.backoffFactor=e.backoffFactor,this.retryInterval=e.retryInterval,this.events=t.events,t.events.addEventListener("peer:disconnect",n=>{this.maybeReconnect(n.detail).catch(o=>{this.log.error("failed to maybe reconnect to %p - %e",n.detail,o)})})}async maybeReconnect(t){if(!this.started)return;let e=await this.peerStore.get(t);am(e)&&(this.queue.has(t)||this.queue.add(async n=>{await Ou(async o=>{if(this.started)try{await this.connectionManager.openConnection(t,{signal:n?.signal})}catch(s){throw this.log("reconnecting to %p attempt %d of %d failed - %e",t,o,this.retries,s),s}},{signal:n?.signal,retries:this.retries,factor:this.backoffFactor,minTimeout:this.retryInterval})},{peerId:t}).catch(async n=>{this.log.error("failed to reconnect to %p - %e",t,n);let o={};[...e.tags.keys()].forEach(s=>{s.startsWith(Za)&&(o[s]=void 0)}),await this.peerStore.merge(t,{tags:o}),this.events.safeDispatchEvent("peer:reconnect-failure",{detail:t})}).catch(async n=>{this.log.error("failed to remove keep-alive tag from %p - %e",t,n)}))}start(){this.started=!0}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[e=>am(e)]});await Promise.all(t.map(async e=>{await this.connectionManager.openConnection(e.id).catch(n=>{this.log.error(n)})}))}).catch(t=>{this.log.error(t)})}stop(){this.started=!1,this.queue.abort()}};function am(r){for(let t of r.tags.keys())if(t.startsWith(Za))return!0;return!1}var Ru=50,Fu={maxConnections:ua,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},Aa=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;outboundPendingConnections;maxConnections;dialQueue;reconnectQueue;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;peerId;constructor(t,e={}){if(this.maxConnections=e.maxConnections??Fu.maxConnections,this.maxConnections<1)throw new R("Connection Manager maxConnections must be greater than 0");this.connections=new Ue,this.started=!1,this.peerId=t.peerId,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,this.log=t.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.allow=(e.allow??[]).map(n=>rt(n)),this.deny=(e.deny??[]).map(n=>rt(n)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=e.maxIncomingPendingConnections??Fu.maxIncomingPendingConnections,this.outboundPendingConnections=0,this.inboundConnectionRateLimiter=new ca({points:e.inboundConnectionThreshold??Fu.inboundConnectionThreshold,duration:1}),this.connectionPruner=new ha({connectionManager:this,peerStore:t.peerStore,events:t.events,logger:t.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new xa(t,{addressSorter:e.addressSorter,maxParallelDials:e.maxParallelDials??fa,maxDialQueueLength:e.maxDialQueueLength??500,maxPeerAddrsToDial:e.maxPeerAddrsToDial??25,dialTimeout:e.dialTimeout??5e3,resolvers:e.resolvers??{dnsaddr:_r},connections:this.connections}),this.reconnectQueue=new Ea({events:t.events,peerStore:t.peerStore,logger:t.logger,connectionManager:this},{retries:e.reconnectRetries,retryInterval:e.reconnectRetryInterval,backoffFactor:e.reconnectBackoffFactor,maxParallelReconnects:e.maxParallelReconnects})}[Symbol.toStringTag]="@libp2p/connection-manager";async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,"inbound pending":this.incomingPendingConnections,outbound:0,"outbound pending":this.outboundPendingConnections};for(let e of this.connections.values())for(let n of e)t[n.direction]++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let e of this.connections.values())for(let n of e)for(let o of n.streams){let s=`${o.direction} ${o.protocol??"unnegotiated"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};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))t[i]=t[i]??[],t[i].push(a)}let e={};for(let[n,o]of Object.entries(t)){o=o.sort((i,a)=>i-a);let s=Math.floor(o.length*.9);e[n]=o[s]}return e}}),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),await af(this.dialQueue,this.reconnectQueue,this.connectionPruner),this.started=!0,this.log("started")}async stop(){this.events.removeEventListener("connection:open",this.onConnect),this.events.removeEventListener("connection:close",this.onDisconnect),await cf(this.reconnectQueue,this.dialQueue,this.connectionPruner);let t=[];for(let e of this.connections.values())for(let n of e)t.push((async()=>{try{await n.close()}catch(o){this.log.error(o)}})());this.log("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),this.log("stopped")}onConnect(t){this._onConnect(t).catch(e=>{this.log.error(e)})}async _onConnect(t){let{detail:e}=t;if(!this.started){await e.close();return}if(e.status!=="open")return;let n=e.remotePeer,o=!this.connections.has(n),s=this.connections.get(n)??[];s.push(e),this.connections.set(n,s),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),o&&this.events.safeDispatchEvent("peer:connect",{detail:e.remotePeer})}onDisconnect(t){let{detail:e}=t,n=e.remotePeer,s=(this.connections.get(n)??[]).filter(i=>i.id!==e.id);this.connections.set(n,s),s.length===0&&(this.log("onDisconnect remove all connections for peer %p",n),this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:e.remotePeer}))}getConnections(t){if(t!=null)return this.connections.get(t)??[];let e=[];for(let n of this.connections.values())e=e.concat(n);return e}getConnectionsMap(){return this.connections}async openConnection(t,e={}){if(!this.started)throw new xe("Not started");this.outboundPendingConnections++;try{e.signal?.throwIfAborted();let{peerId:n}=la(t);if(this.peerId.equals(n))throw new qr("Can not dial self");if(n!=null&&e.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>c.limits==null);if(a!=null)return this.log("had an existing non-limited connection to %p",n),e.onProgress?.(new dt("dial-queue:already-connected")),a}let o=await this.dialQueue.dial(t,{...e,priority:e.priority??Ru});if(o.status!=="open")throw new Kr("Remote closed connection during opening");let s=this.connections.get(o.remotePeer);s==null&&(s=[],this.connections.set(o.remotePeer,s));let i=!1;for(let a of s)if(a.id===o.id&&(i=!0),e.force!==!0&&a.id!==o.id&&a.remoteAddr.equals(o.remoteAddr))return o.abort(new Ke("Duplicate multiaddr connection")),a;return i||s.push(o),o}finally{this.outboundPendingConnections--}}async closeConnections(t,e={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async o=>{try{await o.close(e)}catch(s){o.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(o=>t.remoteAddr.toString().startsWith(o.toString())))return this.log("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(o=>t.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",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let o=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(o,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,o),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){let t={queued:"queued",running:"active",errored:"error",complete:"success"};return this.dialQueue.queue.queue.map(e=>({id:e.id,status:t[e.status],peerId:e.options.peerId,multiaddrs:[...e.options.multiaddrs].map(n=>rt(n))}))}async isDialable(t,e={}){return this.dialQueue.isDialable(t,e)}};var kn=class{movingAverage;variance;deviation;forecast;timespan;previousTime;constructor(t){this.timespan=t,this.movingAverage=0,this.variance=0,this.deviation=0,this.forecast=0}alpha(t,e){return 1-Math.exp(-(t-e)/this.timespan)}push(t,e=Date.now()){if(this.previousTime!=null){let n=this.alpha(e,this.previousTime),o=t-this.movingAverage,s=n*o;this.movingAverage=n*t+(1-n)*this.movingAverage,this.variance=(1-n)*(this.variance+o*s),this.deviation=Math.sqrt(this.variance),this.forecast=this.movingAverage+n*o}else this.movingAverage=t;this.previousTime=e}};var zb=1.2,Gb=2,Wb=2e3,Sa=class{success;failure;next;metric;timeoutMultiplier;failureMultiplier;minTimeout;constructor(t={}){this.success=new kn(t.interval??5e3),this.failure=new kn(t.interval??5e3),this.next=new kn(t.interval??5e3),this.failureMultiplier=t.failureMultiplier??Gb,this.timeoutMultiplier=t.timeoutMultiplier??zb,this.minTimeout=t.minTimeout??Wb,t.metricName!=null&&(this.metric=t.metrics?.registerMetricGroup(t.metricName))}getTimeoutSignal(t={}){let e=Math.max(Math.round(this.next.movingAverage*(t.timeoutFactor??this.timeoutMultiplier)),this.minTimeout),n=AbortSignal.timeout(e),o=Ve([t.signal,n]);return ot(1/0,o,n),o.start=Date.now(),o.timeout=e,o}cleanUp(t){let e=Date.now()-t.start;t.aborted?(this.failure.push(e),this.next.push(e*this.failureMultiplier),this.metric?.update({failureMovingAverage:this.failure.movingAverage,failureDeviation:this.failure.deviation,failureForecast:this.failure.forecast,failureVariance:this.failure.variance,failure:e})):(this.success.push(e),this.next.push(e),this.metric?.update({successMovingAverage:this.success.movingAverage,successDeviation:this.success.deviation,successForecast:this.success.forecast,successVariance:this.success.variance,success:e}))}};var Vu=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=ht(),this.haveNext=ht()}[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 t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=ht(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=ht(),await ur(this.readNext.promise,e?.signal,e)}};function cm(){return new Vu}var _a=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var Hu=class extends Error{code;constructor(t,e){super(t),this.code=e}},Ku=class extends Hu{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Ba(r,t){let e=cm();r.sink(e).catch(async i=>{await e.end(i)}),r.sink=async i=>{for await(let a of i)await e.push(a);await e.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 wt;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Ku("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:d}=await Promise.race([n.next(),u]);return l===!0?new wt:d}for(;o.byteLength<i;){let{value:l,done:d}=await Promise.race([n.next(),u]);if(d===!0)throw new _a("unexpected end of input");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 e.push(i,a):await e.push(i.subarray(),a)},unwrap:()=>{if(o.byteLength>0){let i=r.source;r.source=async function*(){t?.yieldBytes===!1?yield o:yield*o,yield*i}()}return r}}}var jb=1e4,Zb="1.0.0",Xb="ping",Yb="ipfs",lm=32,Jb=!0,Ca=class{protocol;components;log;heartbeatInterval;pingIntervalMs;abortController;timeout;abortConnectionOnPingFailure;constructor(t,e={}){this.components=t,this.protocol=`/${e.protocolPrefix??Yb}/${Xb}/${Zb}`,this.log=t.logger.forComponent("libp2p:connection-monitor"),this.pingIntervalMs=e.pingInterval??jb,this.abortConnectionOnPingFailure=e.abortConnectionOnPingFailure??Jb,this.timeout=new Sa({...e.pingTimeout??{},metrics:t.metrics,metricName:"libp2p_connection_monitor_ping_time_milliseconds"})}[Symbol.toStringTag]="@libp2p/connection-monitor";[Pn]=["@libp2p/connection-monitor"];start(){this.abortController=new AbortController,ot(1/0,this.abortController.signal),this.heartbeatInterval=setInterval(()=>{this.components.connectionManager.getConnections().forEach(t=>{Promise.resolve().then(async()=>{let e=Date.now();try{let n=this.timeout.getTimeoutSignal({signal:this.abortController?.signal}),o=await t.newStream(this.protocol,{signal:n,runOnLimitedConnection:!0}),s=Ba(o);e=Date.now(),await Promise.all([s.write(ln(lm),{signal:n}),s.read(lm,{signal:n})]),t.rtt=Date.now()-e,await s.unwrap().close({signal:n})}catch(n){if(n.name!=="UnsupportedProtocolError")throw n;t.rtt=(Date.now()-e)/2}}).catch(e=>{this.log.error("error during heartbeat",e),this.abortConnectionOnPingFailure?(this.log.error("aborting connection due to ping failure"),t.abort(e)):this.log("connection ping failed, but not aborting due to abortConnectionOnPingFailure flag")})})},this.pingIntervalMs)}stop(){this.abortController?.abort(),this.heartbeatInterval!=null&&clearInterval(this.heartbeatInterval)}};function Qb(r){return r[Symbol.asyncIterator]!=null}function tx(...r){let t=[];for(let e of r)Qb(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=pa({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)e.push(o)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var Lo=tx;var Ia=class{routers;started;components;constructor(t,e){this.routers=e.routers??[],this.started=!1,this.components=t}[Symbol.toStringTag]="@libp2p/content-routing";isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,e={}){if(this.routers.length===0)throw new Sn("No content routers available");let n=this,o=new Cr;for await(let s of Lo(...n.routers.map(i=>i.findProviders(t,e))))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(t,e={}){if(this.routers.length===0)throw new Sn("No content routers available");await Promise.all(this.routers.map(async n=>{await n.provide(t,e)}))}async cancelReprovide(t,e={}){if(this.routers.length===0)throw new Sn("No content routers available");await Promise.all(this.routers.map(async n=>{await n.cancelReprovide(t,e)}))}async put(t,e,n){if(!this.isStarted())throw new xe;await Promise.all(this.routers.map(async o=>{await o.put(t,e,n)}))}async get(t,e){if(!this.isStarted())throw new xe;return Promise.any(this.routers.map(async n=>n.get(t,e)))}};var ka=globalThis.CustomEvent??Event;async function*qu(r,t={}){let e=t.concurrency??1/0;e<1&&(e=1/0);let n=t.ordered==null?!1:t.ordered,o=new EventTarget,s=[],i=ht(),a=ht(),c=!1,u,f=!1;o.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let p of r){if(s.length===e&&(i=ht(),await i.promise),f)break;let m={done:!1};s.push(m),p().then(g=>{m.done=!0,m.ok=!0,m.value=g,o.dispatchEvent(new ka("task-complete"))},g=>{m.done=!0,m.err=g,o.dispatchEvent(new ka("task-complete"))})}c=!0,o.dispatchEvent(new ka("task-complete"))}catch(p){u=p,o.dispatchEvent(new ka("task-complete"))}});function l(){return n?s[0]?.done:!!s.find(p=>p.done)}function*d(){for(;s.length>0&&s[0].done;){let p=s[0];if(s.shift(),p.ok)yield p.value;else throw f=!0,i.resolve(),p.err;i.resolve()}}function*h(){for(;l();)for(let p=0;p<s.length;p++)if(s[p].done){let m=s[p];if(s.splice(p,1),p--,m.ok)yield m.value;else throw f=!0,i.resolve(),m.err;i.resolve()}}for(;;){if(l()||(a=ht(),await a.promise),u!=null)throw u;if(n?yield*d():yield*h(),c&&s.length===0)break}}var Ta=class{log;peerId;peerStore;routers;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-routing"),this.peerId=t.peerId,this.peerStore=t.peerStore,this.routers=e.routers??[]}[Symbol.toStringTag]="@libp2p/peer-routing";async findPeer(t,e){if(this.routers.length===0)throw new Ao("No peer routers available");if(t.toString()===this.peerId.toString())throw new ji("Should not try to find self");let n=this,o=Lo(...this.routers.map(s=>async function*(){try{yield await s.findPeer(t,e)}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 Vo}async*getClosestPeers(t,e={}){if(this.routers.length===0)throw new Ao("No peer routers available");let n=this,o=tu(1024);for await(let s of qu(async function*(){let i=Lo(...n.routers.map(a=>a.getClosestPeers(t,e)));for await(let a of i)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...e,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.toMultihash().bytes)&&(o.add(s.id.toMultihash().bytes),yield s))}};var La=class extends ve{peerRouting;log;walking;walkers;shutdownController;walkController;needNext;constructor(t){super(),this.log=t.logger.forComponent("libp2p:random-walk"),this.peerRouting=t.peerRouting,this.walkers=0,this.walking=!1,this.shutdownController=new AbortController,ot(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/random-walk";start(){this.shutdownController=new AbortController,ot(1/0,this.shutdownController.signal)}stop(){this.shutdownController.abort()}async*walk(t){this.walking||this.startWalk(),this.walkers++;let e=Ve([this.shutdownController.signal,t?.signal]);ot(1/0,e);try{for(;;)this.needNext?.resolve(),this.needNext=ht(),yield(await Cn(this,"walk:peer",e,{errorEvent:"walk:error"})).detail}finally{e.clear(),this.walkers--,this.walkers===0&&(this.walkController?.abort(),this.walkController=void 0)}}startWalk(){this.walking=!0,this.walkController=new AbortController,ot(1/0,this.walkController.signal);let t=Ve([this.walkController.signal,this.shutdownController.signal]);ot(1/0,t);let e=Date.now(),n=0;Promise.resolve().then(async()=>{for(this.log("start walk");this.walkers>0;)try{let o=ln(32),s=Date.now();for await(let i of this.peerRouting.getClosestPeers(o,{signal:t}))t.aborted&&this.log("aborting walk"),t.throwIfAborted(),this.log("found peer %p after %dms for %d walkers",i.id,Date.now()-s,this.walkers),n++,this.safeDispatchEvent("walk:peer",{detail:i}),this.walkers===1&&this.needNext!=null&&(this.log("wait for need next"),await ur(this.needNext.promise,t)),s=Date.now();this.log("walk iteration for %b and %d walkers finished, found %d peers",o,this.walkers,n)}catch(o){this.log.error("randomwalk errored",o),this.safeDispatchEvent("walk:error",{detail:o})}this.log("no walkers left, ended walk")}).catch(o=>{this.log.error("randomwalk errored",o)}).finally(()=>{this.log("finished walk, found %d peers after %dms",n,Date.now()-e),this.walking=!1})}};var $u=32,zu=64,Na=class{log;topologies;handlers;components;constructor(t){this.log=t.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=t,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)}[Symbol.toStringTag]="@libp2p/registrar";getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(t){let e=this.handlers.get(t);if(e==null)throw new Zi(`No handler registered for protocol ${t}`);return e}getTopologies(t){let e=this.topologies.get(t);return e==null?[]:[...e.values()]}async handle(t,e,n){if(this.handlers.has(t))throw new Xi(`Handler already registered for protocol ${t}`);let o=Ai.bind({ignoreUndefined:!0})({maxInboundStreams:$u,maxOutboundStreams:zu},n);this.handlers.set(t,{handler:e,options:o}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,e){if(e==null)throw new R("invalid topology");let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,o=this.topologies.get(t);return o==null&&(o=new Map,this.topologies.set(t,o)),o.set(n,e),n}unregister(t){for(let[e,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(e))}_onDisconnect(t){let e=t.detail;this.components.peerStore.get(e).then(n=>{for(let o of n.protocols){let s=this.topologies.get(o);if(s!=null)for(let i of s.values())i.filter?.has(e)!==!1&&(i.filter?.remove(e),i.onDisconnect?.(e))}}).catch(n=>{n.name!=="NotFoundError"&&this.log.error("could not inform topologies of disconnecting peer %p",e,n)})}_onPeerUpdate(t){let{peer:e,previous:n}=t.detail,o=(n?.protocols??[]).filter(s=>!e.protocols.includes(s));for(let s of o){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())a.filter?.has(e.id)!==!1&&(a.filter?.remove(e.id),a.onDisconnect?.(e.id))}}_onPeerIdentify(t){let e=t.detail.protocols,n=t.detail.connection,o=t.detail.peerId;for(let s of e){let i=this.topologies.get(s);if(i!=null)for(let a of i.values())n.limits!=null&&a.notifyOnLimitedConnection!==!0||a.filter?.has(o)!==!0&&(a.filter?.add(o),a.onConnect?.(o,n))}}};var Gu=class extends Map{metric;constructor(t){super();let{name:e,metrics:n}=t;this.metric=n.registerMetric(e),this.updateComponentMetric()}set(t,e){return super.set(t,e),this.updateComponentMetric(),this}delete(t){let e=super.delete(t);return this.updateComponentMetric(),e}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function um(r){let{name:t,metrics:e}=r,n;return e!=null?n=new Gu({name:t,metrics:e}):n=new Map,n}var Pa=class{log;components;transports;listeners;faultTolerance;started;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:transports"),this.components=t,this.started=!1,this.transports=new Map,this.listeners=um({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=e.faultTolerance??He.FATAL_ALL}[Symbol.toStringTag]="@libp2p/transport-manager";add(t){let e=t[Symbol.toStringTag];if(e==null)throw new R("Transport must have a valid tag");if(this.transports.has(e))throw new R(`There is already a transport with the tag ${e}`);this.log("adding transport %s",e),this.transports.set(e,t),this.listeners.has(e)||this.listeners.set(e,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[e,n]of this.listeners)for(this.log("closing listeners for %s",e);n.length>0;){let o=n.pop();o!=null&&t.push(o.close())}await Promise.all(t),this.log("all listeners closed");for(let e of this.listeners.keys())this.listeners.set(e,[]);this.started=!1}async dial(t,e){let n=this.dialTransportForMultiaddr(t);if(n==null)throw new Qi(`No transport available for address ${String(t)}`);return e?.onProgress?.(new dt("transport-manager:selected-transport",n[Symbol.toStringTag])),n.dial(t,{...e,upgrader:this.components.upgrader})}getAddrs(){let t=[];for(let e of this.listeners.values())for(let n of e)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}dialTransportForMultiaddr(t){for(let e of this.transports.values())if(e.dialFilter([t]).length>0)return e}listenTransportForMultiaddr(t){for(let e of this.transports.values())if(e.listenFilter([t]).length>0)return e}async listen(t){if(!this.isStarted())throw new xe("Not started");if(t==null||t.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let e=[];for(let[n,o]of this.transports.entries()){let s=o.listenFilter(t),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 d=l.findIndex(h=>h===f);l.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:f})}),i.push(f.listen(u))}if(i.length===0){e.push(n);continue}if((await Promise.allSettled(i)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==He.NO_FATAL)throw new Dr(`Transport (${n}) could not listen on any available address`)}if(e.length===this.transports.size){let n=`no valid addresses were provided for transports [${e.join(", ")}]`;if(this.faultTolerance===He.FATAL_ALL)throw new Dr(n);this.log(`libp2p in dial mode only: ${n}`)}}async remove(t){let e=this.listeners.get(t)??[];this.log.trace("removing transport %s",t);let n=[];for(this.log.trace("closing listeners for %s",t);e.length>0;){let o=e.pop();o!=null&&n.push(o.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let e of this.transports.keys())t.push(this.remove(e));await Promise.all(t)}};var _t="/multistream/1.0.0";var Da=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ra=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ma=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function No(r,t={}){let e=Ba(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=pt(t.maxDataLength));let n=t?.lengthDecoder??ie,o=t?.lengthEncoder??kt;return{read:async i=>{let a=-1,c=new wt;for(;;){c.append(await e.read(1,i));try{a=n(c)}catch(u){if(u instanceof RangeError)continue;throw u}if(a<0)throw new Da("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new Ma("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Ra("message length too long");return e.read(a,i)},write:async(i,a)=>{await e.write(new wt(o(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new wt(...i.flatMap(u=>[o(u.byteLength),u]));await e.write(c,a)},unwrap:()=>e.unwrap()}}var ex=P(`
7
- `);async function Fr(r,t,e){await r.write(t,e)}async function fm(r,t,e){await r.writeV(t,e)}async function rx(r,t){let e=await r.read(t);if(e.byteLength===0||e.get(e.byteLength-1)!==ex[0])throw t.log.error("Invalid mss message - missing newline",e),new qo("Missing newline");return e.sublist(0,-1)}async function fr(r,t){let e=await rx(r,t);return et(e.subarray())}async function Po(r,t,e){if(t=Array.isArray(t)?[...t]:[t],t.length===1&&e.negotiateFully===!1)return nx(r,t[0],e);let n=No(r,{...e,maxDataLength:1024}),o=t.shift();if(o==null)throw new Error("At least one protocol must be specified");e.log.trace('select: write ["%s", "%s"]',_t,o);let s=P(`${_t}
8
- `),i=P(`${o}
9
- `);await fm(n,[s,i],e),e.log.trace("select: reading multistream-select header");let a=await fr(n,e);if(e.log.trace('select: read "%s"',a),a===_t&&(e.log.trace("select: reading protocol response"),a=await fr(n,e),e.log.trace('select: read "%s"',a)),a===o)return{stream:n.unwrap(),protocol:o};for(let c of t){e.log.trace('select: write "%s"',c),await Fr(n,P(`${c}
10
- `),e),e.log.trace("select: reading protocol response");let u=await fr(n,e);if(e.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new Nn("protocol selection failed")}function nx(r,t,e){let n=r.sink.bind(r),o=r.source,s=!1,i=!1,a=ht(),c=!1,u=!1,f=ht(),l=!1,d=!1,h=ht(),p=No({sink:n,source:o},{...e,maxDataLength:1024});r.sink=async b=>{let{sink:y}=p.unwrap();await y(async function*(){let x=!1;for await(let A of b){if(u&&await f.promise,c)yield A;else{u=!0,e.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',_t,t,A.byteLength);let _=`${t}
11
- `;yield new wt(Uint8Array.from([19]),P(`${_t}
12
- `),kt(_.length),P(_),A).subarray(),e.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',_t,t,A.byteLength),c=!0,u=!1,f.resolve(),m().catch(v=>{e.log.error("could not finish optimistic protocol negotiation of %s",t,v)})}x=!0}x||await m()}())};async function m(){if(i){e.log.trace("optimistic: already negotiating %s stream",t),await a.promise;return}i=!0;try{c||(e.log.trace("optimistic: doing send protocol for %s stream",t),await g()),l||(e.log.trace("optimistic: doing read protocol for %s stream",t),await w())}finally{i=!1,s=!0,a.resolve()}}async function g(){if(u){await f.promise;return}u=!0;try{e.log.trace('optimistic: write ["%s", "%s", data] in source',_t,t),await p.writeV([P(`${_t}
13
- `),P(`${t}
14
- `)]),e.log.trace('optimistic: wrote ["%s", "%s", data] in source',_t,t)}finally{c=!0,u=!1,f.resolve()}}async function w(){if(d){await h.promise;return}d=!0;try{e.log.trace("optimistic: reading multistream select header");let b=await fr(p,e);if(e.log.trace('optimistic: read multistream select header "%s"',b),b===_t&&(b=await fr(p,e)),e.log.trace('optimistic: read protocol "%s", expecting "%s"',b,t),b!==t)throw new Nn("protocol selection failed")}finally{l=!0,d=!1,h.resolve()}}if(r.source=async function*(){await m(),e.log.trace('optimistic: reading data from "%s" stream',t),yield*p.unwrap().source}(),r.closeRead!=null){let b=r.closeRead.bind(r);r.closeRead=async y=>{s||await m().catch(x=>{e.log.error("could not negotiate protocol before close read",x)}),await b(y)}}if(r.closeWrite!=null){let b=r.closeWrite.bind(r);r.closeWrite=async y=>{s||await m().catch(x=>{e.log.error("could not negotiate protocol before close write",x)}),await b(y)}}if(r.close!=null){let b=r.close.bind(r);r.close=async y=>{let x=[];u&&x.push(f.promise),d&&x.push(h.promise),x.length>0?await ur(Promise.all(x),y?.signal):(s=!0,i=!1,a.resolve()),await b(y)}}return{stream:r,protocol:t}}function Ua(r){return r[Symbol.asyncIterator]!=null}var Oa=r=>{let t=pt(r),e=Ct(t);return kt(r,e),Oa.bytes=t,e};Oa.bytes=0;function Fa(r,t){t=t??{};let e=t.lengthEncoder??Oa;function*n(o){let s=e(o.byteLength);s instanceof Uint8Array?yield s:yield*s,o instanceof Uint8Array?yield o:yield*o}return Ua(r)?async function*(){for await(let o of r)yield*n(o)}():function*(){for(let o of r)yield*n(o)}()}Fa.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Oa;return new wt(e(r.byteLength),r)};var Va=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ha=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ka=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Do=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ox=8,sx=1024*1024*4,Vr;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Vr||(Vr={}));var Zu=r=>{let t=ie(r);return Zu.bytes=pt(t),t};Zu.bytes=0;function ju(r,t){let e=new wt,n=Vr.LENGTH,o=-1,s=t?.lengthDecoder??Zu,i=t?.maxLengthLength??ox,a=t?.maxDataLength??sx;function*c(){for(;e.byteLength>0;){if(n===Vr.LENGTH)try{if(o=s(e),o<0)throw new Va("Invalid message length");if(o>a)throw new Ha("Message length too long");let u=s.bytes;e.consume(u),t?.onLength!=null&&t.onLength(o),n=Vr.DATA}catch(u){if(u instanceof RangeError){if(e.byteLength>i)throw new Ka("Message length length too long");break}throw u}if(n===Vr.DATA){if(e.byteLength<o)break;let u=e.sublist(0,o);e.consume(o),t?.onData!=null&&t.onData(u),yield u,n=Vr.LENGTH}}}return Ua(r)?async function*(){for await(let u of r)e.append(u),yield*c();if(e.byteLength>0)throw new Do("Unexpected end of input")}():function*(){for(let u of r)e.append(u),yield*c();if(e.byteLength>0)throw new Do("Unexpected end of input")}()}ju.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:s,value:i}=await r.next(e);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{e=1}}();return ju(n,{...t??{},onLength:s=>{e=s}})};async function Ro(r,t,e){t=Array.isArray(t)?t:[t],e.log.trace("handle: available protocols %s",t);let n=No(r,{...e,maxDataLength:1024,maxLengthLength:2});for(;;){e.log.trace("handle: reading incoming string");let o=await fr(n,e);if(e.log.trace('handle: read "%s"',o),o===_t){e.log.trace('handle: respond with "%s" for "%s"',_t,o),await Fr(n,P(`${_t}
15
- `),e),e.log.trace('handle: responded with "%s" for "%s"',_t,o);continue}if(t.includes(o))return e.log.trace('handle: respond with "%s" for "%s"',o,o),await Fr(n,P(`${o}
16
- `),e),e.log.trace('handle: responded with "%s" for "%s"',o,o),{stream:n.unwrap(),protocol:o};if(o==="ls"){let s=new wt(...t.map(i=>Fa.single(P(`${i}
2
+ "use strict";var Libp2P=(()=>{var Gm=Object.create;var $s=Object.defineProperty;var Wm=Object.getOwnPropertyDescriptor;var jm=Object.getOwnPropertyNames;var Zm=Object.getPrototypeOf,Xm=Object.prototype.hasOwnProperty;var Qe=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Re=(r,e)=>{for(var t in e)$s(r,t,{get:e[t],enumerable:!0})},xf=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jm(e))!Xm.call(r,s)&&s!==t&&$s(r,s,{get:()=>e[s],enumerable:!(n=Wm(e,s))||n.enumerable});return r};var hr=(r,e,t)=>(t=r!=null?Gm(Zm(r)):{},xf(e||!r||!r.__esModule?$s(t,"default",{value:r,enumerable:!0}):t,r)),Ym=r=>xf($s({},"__esModule",{value:!0}),r);var Th=Qe(cn=>{"use strict";var Ay="[object ArrayBuffer]",Tt=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Ay}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),s=r.toUint8Array(t);if(n.length!==s.byteLength)return!1;for(let o=0;o<n.length;o++)if(n[o]!==s[o])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 s=new Uint8Array(n),o=0;for(let i of t){let a=this.toUint8Array(i);s.set(a,o),o+=a.length}return e[e.length-1]instanceof Function?this.toView(s,e[e.length-1]):s.buffer}},xl="string",Sy=/^[0-9a-f\s]+$/i,_y=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,By=/^[a-zA-Z0-9-_]+$/,Io=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}static toString(e){let t=Tt.toUint8Array(e),n="";for(let o=0;o<t.length;o++)n+=String.fromCharCode(t[o]);return decodeURIComponent(escape(n))}},Xe=class{static toString(e,t=!1){let n=Tt.toArrayBuffer(e),s=new DataView(n),o="";for(let i=0;i<n.byteLength;i+=2){let a=s.getUint16(i,t);o+=String.fromCharCode(a)}return o}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),s=new DataView(n);for(let o=0;o<e.length;o++)s.setUint16(o*2,e.charCodeAt(o),t);return n}},ko=class r{static isHex(e){return typeof e===xl&&Sy.test(e)}static isBase64(e){return typeof e===xl&&_y.test(e)}static isBase64Url(e){return typeof e===xl&&By.test(e)}static ToString(e,t="utf8"){let n=Tt.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 Xe.toString(n,!0);case"utf16":case"utf16be":return Xe.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 Xe.fromString(e,!0);case"utf16":case"utf16be":return Xe.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=Tt.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 Io.fromString(e);case"utf16":case"utf16be":return Xe.fromString(e);case"utf16le":case"usc2":return Xe.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 Io.toString(e);case"utf16":case"utf16be":return Xe.toString(e);case"utf16le":case"usc2":return Xe.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 s=0;s<t;s++)n[s]=e.charCodeAt(s);return n.buffer}static ToBinary(e){let t=Tt.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return n}static ToHex(e){let t=Tt.toUint8Array(e),n="",s=t.length;for(let o=0;o<s;o++){let i=t[o];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 s=0;s<t.length;s=s+2){let o=t.slice(s,s+2);n[s/2]=parseInt(o,16)}return n.buffer}static ToUtf16String(e,t=!1){return Xe.toString(e,t)}static FromUtf16String(e,t=!1){return Xe.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,"")||""}};ko.DEFAULT_UTF8_ENCODING="utf8";function Cy(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let o in s)t[o]=s[o]}return t}function Iy(...r){let e=r.map(s=>s.byteLength).reduce((s,o)=>s+o),t=new Uint8Array(e),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let o of s)t[n++]=o}),t.buffer}function ky(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<r.byteLength;s++)if(t[s]!==n[s])return!1;return!0}cn.BufferSourceConverter=Tt;cn.Convert=ko;cn.assign=Cy;cn.combine=Iy;cn.isEqual=ky});var Wd=Qe((zA,Ul)=>{"use strict";var Qy=Object.prototype.hasOwnProperty,He="~";function ws(){}Object.create&&(ws.prototype=Object.create(null),new ws().__proto__||(He=!1));function ew(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Gd(r,e,t,n,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new ew(t,n||r,s),i=He?He+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],o]:r._events[i].push(o):(r._events[i]=o,r._eventsCount++),r}function Ei(r,e){--r._eventsCount===0?r._events=new ws:delete r._events[e]}function Ne(){this._events=new ws,this._eventsCount=0}Ne.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Qy.call(t,n)&&e.push(He?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ne.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 s=0,o=n.length,i=new Array(o);s<o;s++)i[s]=n[s].fn;return i};Ne.prototype.listenerCount=function(e){var t=He?He+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Ne.prototype.emit=function(e,t,n,s,o,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,s),!0;case 5:return c.fn.call(c.context,t,n,s,o),!0;case 6:return c.fn.call(c.context,t,n,s,o,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 d=c.length,h;for(l=0;l<d;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,s);break;default:if(!f)for(h=1,f=new Array(u-1);h<u;h++)f[h-1]=arguments[h];c[l].fn.apply(c[l].context,f)}}return!0};Ne.prototype.on=function(e,t,n){return Gd(this,e,t,n,!1)};Ne.prototype.once=function(e,t,n){return Gd(this,e,t,n,!0)};Ne.prototype.removeListener=function(e,t,n,s){var o=He?He+e:e;if(!this._events[o])return this;if(!t)return Ei(this,o),this;var i=this._events[o];if(i.fn)i.fn===t&&(!s||i.once)&&(!n||i.context===n)&&Ei(this,o);else{for(var a=0,c=[],u=i.length;a<u;a++)(i[a].fn!==t||s&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[o]=c.length===1?c[0]:c:Ei(this,o)}return this};Ne.prototype.removeAllListeners=function(e){var t;return e?(t=He?He+e:e,this._events[t]&&Ei(this,t)):(this._events=new ws,this._eventsCount=0),this};Ne.prototype.off=Ne.prototype.removeListener;Ne.prototype.addListener=Ne.prototype.on;Ne.prefixed=He;Ne.EventEmitter=Ne;typeof Ul<"u"&&(Ul.exports=Ne)});var Jd=Qe((pS,Yd)=>{Yd.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 s(o,i){t[o]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(o){return t[o]!==void 0||n[o]!==void 0},remove:function(o){t[o]!==void 0&&(t[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var i=t[o];if(i!==void 0)return i;if((i=n[o])!==void 0)return s(o,i),i},set:function(o,i){t[o]!==void 0?t[o]=i:s(o,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var yp=Qe((F8,gp)=>{"use strict";gp.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.prototype}});var Ap=Qe((vp,Ep)=>{"use strict";var Li=yp(),{hasOwnProperty:bp}=Object.prototype,{propertyIsEnumerable:_w}=Object,En=(r,e,t)=>Object.defineProperty(r,e,{value:t,writable:!0,enumerable:!0,configurable:!0}),Bw=vp,wp={concatArrays:!1,ignoreUndefined:!1},Ni=r=>{let e=[];for(let t in r)bp.call(r,t)&&e.push(t);if(Object.getOwnPropertySymbols){let t=Object.getOwnPropertySymbols(r);for(let n of t)_w.call(r,n)&&e.push(n)}return e};function An(r){return Array.isArray(r)?Cw(r):Li(r)?Iw(r):r}function Cw(r){let e=r.slice(0,0);return Ni(r).forEach(t=>{En(e,t,An(r[t]))}),e}function Iw(r){let e=Object.getPrototypeOf(r)===null?Object.create(null):{};return Ni(r).forEach(t=>{En(e,t,An(r[t]))}),e}var xp=(r,e,t,n)=>(t.forEach(s=>{typeof e[s]>"u"&&n.ignoreUndefined||(s in r&&r[s]!==Object.getPrototypeOf(r)?En(r,s,cu(r[s],e[s],n)):En(r,s,An(e[s])))}),r),kw=(r,e,t)=>{let n=r.slice(0,0),s=0;return[r,e].forEach(o=>{let i=[];for(let a=0;a<o.length;a++)bp.call(o,a)&&(i.push(String(a)),o===r?En(n,s++,o[a]):En(n,s++,An(o[a])));n=xp(n,o,Ni(o).filter(a=>!i.includes(a)),t)}),n};function cu(r,e,t){return t.concatArrays&&Array.isArray(r)&&Array.isArray(e)?kw(r,e,t):!Li(e)||!Li(r)?An(e):xp(r,e,Ni(e),t)}Ep.exports=function(...r){let e=cu(An(wp),this!==Bw&&this||{},wp),t={_:{}};for(let n of r)if(n!==void 0){if(!Li(n))throw new TypeError("`"+n+"` is not an Option Object");t=cu(t,{_:n},e)}return t._}});var Ip=Qe((As,Fi)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(h){if(!Array.isArray(h)&&!ArrayBuffer.isView(h))return!1;for(var p=0;p<h.length;p++)if(!Number.isInteger(h[p])||h[p]<0||h[p]>255)return!1;return!0}function s(h,p){return(h&65535)*p+(((h>>>16)*p&65535)<<16)}function o(h,p){return h<<p|h>>>32-p}function i(h){return h^=h>>>16,h=s(h,2246822507),h^=h>>>13,h=s(h,3266489909),h^=h>>>16,h}function a(h,p){h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=h[3]+p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=h[2]+p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=h[1]+p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=h[0]+p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function c(h,p){h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=h[3]*p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=h[2]*p[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=h[3]*p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=h[1]*p[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=h[2]*p[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=h[3]*p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=h[0]*p[3]+h[1]*p[2]+h[2]*p[1]+h[3]*p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function u(h,p){return p%=64,p===32?[h[1],h[0]]:p<32?[h[0]<<p|h[1]>>>32-p,h[1]<<p|h[0]>>>32-p]:(p-=32,[h[1]<<p|h[0]>>>32-p,h[0]<<p|h[1]>>>32-p])}function f(h,p){return p%=64,p===0?h:p<32?[h[0]<<p|h[1]>>>32-p,h[1]<<p]:[h[1]<<p-32,0]}function l(h,p){return[h[0]^p[0],h[1]^p[1]]}function d(h){return h=l(h,[0,h[0]>>>1]),h=c(h,[4283543511,3981806797]),h=l(h,[0,h[0]>>>1]),h=c(h,[3301882366,444984403]),h=l(h,[0,h[0]>>>1]),h}t.x86.hash32=function(h,p){if(t.inputValidation&&!n(h))return e;p=p||0;for(var m=h.length%4,g=h.length-m,w=p,b=0,y=3432918353,x=461845907,A=0;A<g;A=A+4)b=h[A]|h[A+1]<<8|h[A+2]<<16|h[A+3]<<24,b=s(b,y),b=o(b,15),b=s(b,x),w^=b,w=o(w,13),w=s(w,5)+3864292196;switch(b=0,m){case 3:b^=h[A+2]<<16;case 2:b^=h[A+1]<<8;case 1:b^=h[A],b=s(b,y),b=o(b,15),b=s(b,x),w^=b}return w^=h.length,w=i(w),w>>>0},t.x86.hash128=function(h,p){if(t.inputValidation&&!n(h))return e;p=p||0;for(var m=h.length%16,g=h.length-m,w=p,b=p,y=p,x=p,A=0,_=0,v=0,B=0,k=597399067,J=2869860233,H=951274213,V=2716044179,D=0;D<g;D=D+16)A=h[D]|h[D+1]<<8|h[D+2]<<16|h[D+3]<<24,_=h[D+4]|h[D+5]<<8|h[D+6]<<16|h[D+7]<<24,v=h[D+8]|h[D+9]<<8|h[D+10]<<16|h[D+11]<<24,B=h[D+12]|h[D+13]<<8|h[D+14]<<16|h[D+15]<<24,A=s(A,k),A=o(A,15),A=s(A,J),w^=A,w=o(w,19),w+=b,w=s(w,5)+1444728091,_=s(_,J),_=o(_,16),_=s(_,H),b^=_,b=o(b,17),b+=y,b=s(b,5)+197830471,v=s(v,H),v=o(v,17),v=s(v,V),y^=v,y=o(y,15),y+=x,y=s(y,5)+2530024501,B=s(B,V),B=o(B,18),B=s(B,k),x^=B,x=o(x,13),x+=w,x=s(x,5)+850148119;switch(A=0,_=0,v=0,B=0,m){case 15:B^=h[D+14]<<16;case 14:B^=h[D+13]<<8;case 13:B^=h[D+12],B=s(B,V),B=o(B,18),B=s(B,k),x^=B;case 12:v^=h[D+11]<<24;case 11:v^=h[D+10]<<16;case 10:v^=h[D+9]<<8;case 9:v^=h[D+8],v=s(v,H),v=o(v,17),v=s(v,V),y^=v;case 8:_^=h[D+7]<<24;case 7:_^=h[D+6]<<16;case 6:_^=h[D+5]<<8;case 5:_^=h[D+4],_=s(_,J),_=o(_,16),_=s(_,H),b^=_;case 4:A^=h[D+3]<<24;case 3:A^=h[D+2]<<16;case 2:A^=h[D+1]<<8;case 1:A^=h[D],A=s(A,k),A=o(A,15),A=s(A,J),w^=A}return w^=h.length,b^=h.length,y^=h.length,x^=h.length,w+=b,w+=y,w+=x,b+=w,y+=w,x+=w,w=i(w),b=i(b),y=i(y),x=i(x),w+=b,w+=y,w+=x,b+=w,y+=w,x+=w,("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(x>>>0).toString(16)).slice(-8)},t.x64.hash128=function(h,p){if(t.inputValidation&&!n(h))return e;p=p||0;for(var m=h.length%16,g=h.length-m,w=[0,p],b=[0,p],y=[0,0],x=[0,0],A=[2277735313,289559509],_=[1291169091,658871167],v=0;v<g;v=v+16)y=[h[v+4]|h[v+5]<<8|h[v+6]<<16|h[v+7]<<24,h[v]|h[v+1]<<8|h[v+2]<<16|h[v+3]<<24],x=[h[v+12]|h[v+13]<<8|h[v+14]<<16|h[v+15]<<24,h[v+8]|h[v+9]<<8|h[v+10]<<16|h[v+11]<<24],y=c(y,A),y=u(y,31),y=c(y,_),w=l(w,y),w=u(w,27),w=a(w,b),w=a(c(w,[0,5]),[0,1390208809]),x=c(x,_),x=u(x,33),x=c(x,A),b=l(b,x),b=u(b,31),b=a(b,w),b=a(c(b,[0,5]),[0,944331445]);switch(y=[0,0],x=[0,0],m){case 15:x=l(x,f([0,h[v+14]],48));case 14:x=l(x,f([0,h[v+13]],40));case 13:x=l(x,f([0,h[v+12]],32));case 12:x=l(x,f([0,h[v+11]],24));case 11:x=l(x,f([0,h[v+10]],16));case 10:x=l(x,f([0,h[v+9]],8));case 9:x=l(x,[0,h[v+8]]),x=c(x,_),x=u(x,33),x=c(x,A),b=l(b,x);case 8:y=l(y,f([0,h[v+7]],56));case 7:y=l(y,f([0,h[v+6]],48));case 6:y=l(y,f([0,h[v+5]],40));case 5:y=l(y,f([0,h[v+4]],32));case 4:y=l(y,f([0,h[v+3]],24));case 3:y=l(y,f([0,h[v+2]],16));case 2:y=l(y,f([0,h[v+1]],8));case 1:y=l(y,[0,h[v]]),y=c(y,A),y=u(y,31),y=c(y,_),w=l(w,y)}return w=l(w,[0,h.length]),b=l(b,[0,h.length]),w=a(w,b),b=a(b,w),w=d(w),b=d(b),w=a(w,b),b=a(b,w),("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)+("00000000"+(b[0]>>>0).toString(16)).slice(-8)+("00000000"+(b[1]>>>0).toString(16)).slice(-8)},typeof As<"u"?(typeof Fi<"u"&&Fi.exports&&(As=Fi.exports=t),As.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(As)});var Tp=Qe((d_,kp)=>{kp.exports=Ip()});var Jp=Qe(Ts=>{(function(){var r,e,t,n,s,o,i,a;a=function(c){var u,f,l,d;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,d=c&255,[u,f,l,d].join(".")},i=function(c){var u,f,l,d,h,p;for(u=[],l=d=0;d<=3&&c.length!==0;l=++d){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=e(c),h=p[0],f=p[1],c=c.substring(f),u.push(h)}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"),o=t("a"),s=t("A"),e=function(c){var u,f,l,d,h;for(d=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")),h=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)d=d*u+(t(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")d=d*u+(10+t(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")d=d*u+(10+t(c[l])-s)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");l++}if(l===h)throw new Error("empty octet");return[d,l]},r=function(){function c(u,f){var l,d,h,p;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(p=u.split("/",2),u=p[0],f=p[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=i(f)}catch(m){throw l=m,new Error("Invalid mask: "+f)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;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(m){throw l=m,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,d;for(d=i(this.first),l=i(this.last),f=0;d<=l;)u(a(d),d,f),f++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Ts.ip2long=i,Ts.long2ip=a,Ts.Netmask=r}).call(Ts)});var Em=Qe((jB,vm)=>{function Je(r,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(r)),this._timeouts=r,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}vm.exports=Je;Je.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};Je.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};Je.prototype.retry=function(r){if(this._timeout&&clearTimeout(this._timeout),!r)return!1;var e=new Date().getTime();if(r&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(r),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(r);var t=this._timeouts.shift();if(t===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),t=this._cachedTimeouts.slice(-1);else return!1;var n=this;return this._timer=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},t),this._options.unref&&this._timer.unref(),!0};Je.prototype.attempt=function(r,e){this._fn=r,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var t=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){t._operationTimeoutCb()},t._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};Je.prototype.try=function(r){console.log("Using RetryOperation.try() is deprecated"),this.attempt(r)};Je.prototype.start=function(r){console.log("Using RetryOperation.start() is deprecated"),this.attempt(r)};Je.prototype.start=Je.prototype.try;Je.prototype.errors=function(){return this._errors};Je.prototype.attempts=function(){return this._attempts};Je.prototype.mainError=function(){if(this._errors.length===0)return null;for(var r={},e=null,t=0,n=0;n<this._errors.length;n++){var s=this._errors[n],o=s.message,i=(r[o]||0)+1;r[o]=i,i>=t&&(e=s,t=i)}return e}});var Am=Qe(Kr=>{var fx=Em();Kr.operation=function(r){var e=Kr.timeouts(r);return new fx(e,{forever:r&&(r.forever||r.retries===1/0),unref:r&&r.unref,maxRetryTime:r&&r.maxRetryTime})};Kr.timeouts=function(r){if(r instanceof Array)return[].concat(r);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var t in r)e[t]=r[t];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],s=0;s<e.retries;s++)n.push(this.createTimeout(s,e));return r&&r.forever&&!n.length&&n.push(this.createTimeout(s,e)),n.sort(function(o,i){return o-i}),n};Kr.createTimeout=function(r,e){var t=e.randomize?Math.random()+1:1,n=Math.round(t*Math.max(e.minTimeout,1)*Math.pow(e.factor,r));return n=Math.min(n,e.maxTimeout),n};Kr.wrap=function(r,e,t){if(e instanceof Array&&(t=e,e=null),!t){t=[];for(var n in r)typeof r[n]=="function"&&t.push(n)}for(var s=0;s<t.length;s++){var o=t[s],i=r[o];r[o]=function(c){var u=Kr.operation(e),f=Array.prototype.slice.call(arguments,1),l=f.pop();f.push(function(d){u.retry(d)||(d&&(arguments[0]=u.mainError()),l.apply(this,arguments))}),u.attempt(function(){c.apply(r,f)})}.bind(r,i),r[o].options=e}}});var _m=Qe((XB,Sm)=>{Sm.exports=Am()});var Vx={};Re(Vx,{createLibp2p:()=>Fx});var vf=Symbol.for("@libp2p/connection");var nc=Symbol.for("@libp2p/content-routing");var sc=Symbol.for("@libp2p/peer-discovery");var zs=Symbol.for("@libp2p/peer-id");function Gs(r){return!!r?.[zs]}var oc=Symbol.for("@libp2p/peer-routing");var ic="keep-alive";var jx=Symbol.for("@libp2p/transport");var Kt;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Kt||(Kt={}));var et=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var R=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},zr=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}},Un=class extends Error{static name="InvalidPrivateKeyError";constructor(e="Invalid private key"){super(e),this.name="InvalidPrivateKeyError"}};var Ws=class extends Error{static name="ConnectionClosingError";constructor(e="The connection is closing"){super(e),this.name="ConnectionClosingError"}},Gr=class extends Error{static name="ConnectionClosedError";constructor(e="The connection is closed"){super(e),this.name="ConnectionClosedError"}};var js=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}},Wr=class extends Error{static name="InvalidPeerIdError";constructor(e="Invalid PeerID"){super(e),this.name="InvalidPeerIdError"}},qt=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Zs=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},Xs=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}},On=class extends Error{static name="UnsupportedProtocolError";constructor(e="Unsupported protocol error"){super(e),this.name="UnsupportedProtocolError"}},Ys=class extends Error{static name="InvalidMessageError";constructor(e="Invalid message"){super(e),this.name="InvalidMessageError"}};var Js=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},vt=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}};var jr=class extends Error{static name="DialError";constructor(e="Dial error"){super(e),this.name="DialError"}};var Zr=class extends Error{static name="LimitedConnectionError";constructor(e="Limited connection"){super(e),this.name="LimitedConnectionError"}},Qs=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(e="Too many inbound protocol streams"){super(e),this.name="TooManyInboundProtocolStreamsError"}},eo=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(e="Too many outbound protocol streams"){super(e),this.name="TooManyOutboundProtocolStreamsError"}},$t=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var se=(r,...e)=>{try{[...e]}catch{}};var Et=class extends EventTarget{#e=new Map;constructor(){super(),se(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 s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let s=this.#e.get(e);s!=null&&(s=s.filter(({callback:o})=>o!==t),this.#e.set(e,s))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:s})=>!s),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};function to(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Ef(...r){let e=[];for(let t of r)to(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function Af(...r){let e=[];for(let t of r)to(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Fn=Symbol.for("@libp2p/service-capabilities"),ac=Symbol.for("@libp2p/service-dependencies");var hc={};Re(hc,{base58btc:()=>X,base58flickr:()=>ng});var S1=new Uint8Array(0);function Sf(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){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 _f(r){return new TextEncoder().encode(r)}function Bf(r){return new TextDecoder().decode(r)}function Jm(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 s=0;s<r.length;s++){var o=r.charAt(s),i=o.charCodeAt(0);if(t[i]!==255)throw new TypeError(o+" is ambiguous");t[i]=s}var a=r.length,c=r.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,g=0,w=0,b=p.length;w!==b&&p[w]===0;)w++,m++;for(var y=(b-w)*f+1>>>0,x=new Uint8Array(y);w!==b;){for(var A=p[w],_=0,v=y-1;(A!==0||_<g)&&v!==-1;v--,_++)A+=256*x[v]>>>0,x[v]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");g=_,w++}for(var B=y-g;B!==y&&x[B]===0;)B++;for(var k=c.repeat(m);B<y;++B)k+=r.charAt(x[B]);return k}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var g=0,w=0;p[m]===c;)g++,m++;for(var b=(p.length-m)*u+1>>>0,y=new Uint8Array(b);p[m];){var x=t[p.charCodeAt(m)];if(x===255)return;for(var A=0,_=b-1;(x!==0||A<w)&&_!==-1;_--,A++)x+=a*y[_]>>>0,y[_]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");w=A,m++}if(p[m]!==" "){for(var v=b-w;v!==b&&y[v]===0;)v++;for(var B=new Uint8Array(g+(b-v)),k=g;v!==b;)B[k++]=y[v++];return B}}}function h(p){var m=d(p);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:d,decode:h}}var Qm=Jm,eg=Qm,If=eg;var cc=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")}},lc=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let s=t.codePointAt(0);if(s===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=s,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 kf(this,e)}},uc=class{decoders;constructor(e){this.decoders=e}or(e){return kf(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 kf(r,e){return new uc({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var fc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,s){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=s,this.encoder=new cc(e,t,n),this.decoder=new lc(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Xr({name:r,prefix:e,encode:t,decode:n}){return new fc(r,e,t,n)}function zt({name:r,prefix:e,alphabet:t}){let{encode:n,decode:s}=If(t,r);return Xr({prefix:e,name:r,encode:n,decode:o=>At(s(o))})}function tg(r,e,t,n){let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=s[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 rg(r,e,t){let n=e[e.length-1]==="=",s=(1<<t)-1,o="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,o+=e[s&a>>i];if(i!==0&&(o+=e[s&a<<t-i]),n)for(;o.length*t&7;)o+="=";return o}function le({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return Xr({prefix:e,name:r,encode(s){return rg(s,n,t)},decode(s){return tg(s,n,t,r)}})}var X=zt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ng=zt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var dc={};Re(dc,{base32:()=>We,base32hex:()=>ag,base32hexpad:()=>lg,base32hexpadupper:()=>ug,base32hexupper:()=>cg,base32pad:()=>og,base32padupper:()=>ig,base32upper:()=>sg,base32z:()=>fg});var We=le({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),sg=le({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),og=le({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ig=le({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ag=le({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),cg=le({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),lg=le({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ug=le({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),fg=le({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var pc={};Re(pc,{base36:()=>Vn,base36upper:()=>hg});var Vn=zt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),hg=zt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var dg=Nf,Tf=128,pg=127,mg=~pg,gg=Math.pow(2,31);function Nf(r,e,t){e=e||[],t=t||0;for(var n=t;r>=gg;)e[t++]=r&255|Tf,r/=128;for(;r&mg;)e[t++]=r&255|Tf,r>>>=7;return e[t]=r|0,Nf.bytes=t-n+1,e}var yg=mc,wg=128,Lf=127;function mc(r,n){var t=0,n=n||0,s=0,o=n,i,a=r.length;do{if(o>=a)throw mc.bytes=0,new RangeError("Could not decode varint");i=r[o++],t+=s<28?(i&Lf)<<s:(i&Lf)*Math.pow(2,s),s+=7}while(i>=wg);return mc.bytes=o-n,t}var bg=Math.pow(2,7),xg=Math.pow(2,14),vg=Math.pow(2,21),Eg=Math.pow(2,28),Ag=Math.pow(2,35),Sg=Math.pow(2,42),_g=Math.pow(2,49),Bg=Math.pow(2,56),Cg=Math.pow(2,63),Ig=function(r){return r<bg?1:r<xg?2:r<vg?3:r<Eg?4:r<Ag?5:r<Sg?6:r<_g?7:r<Bg?8:r<Cg?9:10},kg={encode:dg,decode:yg,encodingLength:Ig},Tg=kg,Hn=Tg;function Kn(r,e=0){return[Hn.decode(r,e),Hn.decode.bytes]}function Yr(r,e,t=0){return Hn.encode(r,e,t),e}function Jr(r){return Hn.encodingLength(r)}function tt(r,e){let t=e.byteLength,n=Jr(r),s=n+Jr(t),o=new Uint8Array(s+t);return Yr(r,o,0),Yr(t,o,n),o.set(e,s),new Qr(r,t,e,o)}function rt(r){let e=At(r),[t,n]=Kn(e),[s,o]=Kn(e.subarray(n)),i=e.subarray(n+o);if(i.byteLength!==s)throw new Error("Incorrect length");return new Qr(t,s,i,e)}function Pf(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Sf(r.bytes,t.bytes)}}var Qr=class{code;size;digest;bytes;constructor(e,t,n,s){this.code=e,this.size=t,this.digest=n,this.bytes=s}};function Df(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Ng(t,gc(r),e??X.encoder);default:return Pg(t,gc(r),e??We.encoder)}}var Rf=new WeakMap;function gc(r){let e=Rf.get(r);if(e==null){let t=new Map;return Rf.set(r,t),t}return e}var me=class r{code;version;multihash;bytes;"/";constructor(e,t,n,s){this.code=t,this.version=e,this.multihash=n,this.bytes=s,this["/"]=s}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!==qn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Dg)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=tt(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&&Pf(e.multihash,n.multihash)}toString(e){return Df(this,e)}toJSON(){return{"/":Df(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:s,multihash:o,bytes:i}=t;return new r(n,s,o,i??Mf(n,s,o.bytes))}else if(t[Rg]===!0){let{version:n,multihash:s,code:o}=t,i=rt(s);return r.create(n,o,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!==qn)throw new Error(`Version 0 CID must use dag-pb (code: ${qn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let s=Mf(e,t,n.bytes);return new r(e,t,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,qn,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,s=At(e.subarray(n,n+t.multihashSize));if(s.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=s.subarray(t.multihashSize-t.digestSize),i=new Qr(t.multihashCode,t.digestSize,o,s);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,d]=Kn(e.subarray(t));return t+=d,l},s=n(),o=qn;if(s===18?(s=0,t=0):o=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let i=t,a=n(),c=n(),u=t+c,f=u-i;return{version:s,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(e,t){let[n,s]=Lg(e,t),o=r.decode(s);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return gc(o).set(n,e),o}};function Lg(r,e){switch(r[0]){case"Q":{let t=e??X;return[X.prefix,t.decode(`${X.prefix}${r}`)]}case X.prefix:{let t=e??X;return[X.prefix,t.decode(r)]}case We.prefix:{let t=e??We;return[We.prefix,t.decode(r)]}case Vn.prefix:{let t=e??Vn;return[Vn.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function Ng(r,e,t){let{prefix:n}=t;if(n!==X.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let s=e.get(n);if(s==null){let o=t.encode(r).slice(1);return e.set(n,o),o}else return s}function Pg(r,e,t){let{prefix:n}=t,s=e.get(n);if(s==null){let o=t.encode(r);return e.set(n,o),o}else return s}var qn=112,Dg=18;function Mf(r,e,t){let n=Jr(r),s=n+Jr(e),o=new Uint8Array(s+t.byteLength);return Yr(r,o,0),Yr(e,o,n),o.set(t,s),o}var Rg=Symbol.for("@ipld/js-cid/CID");var yc={};Re(yc,{identity:()=>_t});var Uf=0,Mg="identity",Of=At;function Ug(r){return tt(Uf,Of(r))}var _t={code:Uf,name:Mg,encode:Of,digest:Ug};function ue(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 Ff(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function Og(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function en(r,...e){if(!Og(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function Vf(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Ff(r.outputLen),Ff(r.blockLen)}function tn(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 Hf(r,e){en(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}var dr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var no=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),nt=(r,e)=>r<<32-e|r>>>e;function Kf(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function $n(r){return typeof r=="string"&&(r=Kf(r)),en(r),r}function wc(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];en(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let o=r[n];t.set(o,s),s+=o.length}return t}var rn=class{clone(){return this._cloneInto()}};function so(r){let e=n=>r().update($n(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function oo(r=32){if(dr&&typeof dr.getRandomValues=="function")return dr.getRandomValues(new Uint8Array(r));if(dr&&typeof dr.randomBytes=="function")return dr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Fg(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(t>>s&o),a=Number(t&o),c=n?4:0,u=n?0:4;r.setUint32(e+c,i,n),r.setUint32(e+u,a,n)}var qf=(r,e,t)=>r&e^~r&t,$f=(r,e,t)=>r&e^r&t^e&t,nn=class extends rn{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=no(this.buffer)}update(e){tn(this);let{view:t,buffer:n,blockLen:s}=this;e=$n(e);let o=e.length;for(let i=0;i<o;){let a=Math.min(s-this.pos,o-i);if(a===s){let c=no(e);for(;s<=o-i;i+=s)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){tn(this),Hf(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>s-i&&(this.process(n,0),i=0);for(let l=i;l<s;l++)t[l]=0;Fg(n,s-8,BigInt(this.length*8),o),this.process(n,0);let a=no(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],o)}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:s,finished:o,destroyed:i,pos:a}=this;return e.length=s,e.pos=a,e.finished=o,e.destroyed=i,s%t&&e.buffer.set(n),e}};var io=BigInt(4294967295),bc=BigInt(32);function zf(r,e=!1){return e?{h:Number(r&io),l:Number(r>>bc&io)}:{h:Number(r>>bc&io)|0,l:Number(r&io)|0}}function Vg(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:o,l:i}=zf(r[s],e);[t[s],n[s]]=[o,i]}return[t,n]}var Hg=(r,e)=>BigInt(r>>>0)<<bc|BigInt(e>>>0),Kg=(r,e,t)=>r>>>t,qg=(r,e,t)=>r<<32-t|e>>>t,$g=(r,e,t)=>r>>>t|e<<32-t,zg=(r,e,t)=>r<<32-t|e>>>t,Gg=(r,e,t)=>r<<64-t|e>>>t-32,Wg=(r,e,t)=>r>>>t-32|e<<64-t,jg=(r,e)=>e,Zg=(r,e)=>r,Xg=(r,e,t)=>r<<t|e>>>32-t,Yg=(r,e,t)=>e<<t|r>>>32-t,Jg=(r,e,t)=>e<<t-32|r>>>64-t,Qg=(r,e,t)=>r<<t-32|e>>>64-t;function e0(r,e,t,n){let s=(e>>>0)+(n>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}var t0=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),r0=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,n0=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),s0=(r,e,t,n,s)=>e+t+n+s+(r/2**32|0)|0,o0=(r,e,t,n,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),i0=(r,e,t,n,s,o)=>e+t+n+s+o+(r/2**32|0)|0;var a0={fromBig:zf,split:Vg,toBig:Hg,shrSH:Kg,shrSL:qg,rotrSH:$g,rotrSL:zg,rotrBH:Gg,rotrBL:Wg,rotr32H:jg,rotr32L:Zg,rotlSH:Xg,rotlSL:Yg,rotlBH:Jg,rotlBL:Qg,add:e0,add3L:t0,add3H:r0,add4L:n0,add4H:s0,add5H:i0,add5L:o0},F=a0;var[c0,l0]=F.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))),Gt=new Uint32Array(80),Wt=new Uint32Array(80),xc=class extends nn{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:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:d,Gh:h,Gl:p,Hh:m,Hl:g}=this;return[e,t,n,s,o,i,a,c,u,f,l,d,h,p,m,g]}set(e,t,n,s,o,i,a,c,u,f,l,d,h,p,m,g){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|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=d|0,this.Gh=h|0,this.Gl=p|0,this.Hh=m|0,this.Hl=g|0}process(e,t){for(let y=0;y<16;y++,t+=4)Gt[y]=e.getUint32(t),Wt[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){let x=Gt[y-15]|0,A=Wt[y-15]|0,_=F.rotrSH(x,A,1)^F.rotrSH(x,A,8)^F.shrSH(x,A,7),v=F.rotrSL(x,A,1)^F.rotrSL(x,A,8)^F.shrSL(x,A,7),B=Gt[y-2]|0,k=Wt[y-2]|0,J=F.rotrSH(B,k,19)^F.rotrBH(B,k,61)^F.shrSH(B,k,6),H=F.rotrSL(B,k,19)^F.rotrBL(B,k,61)^F.shrSL(B,k,6),V=F.add4L(v,H,Wt[y-7],Wt[y-16]),D=F.add4H(V,_,J,Gt[y-7],Gt[y-16]);Gt[y]=D|0,Wt[y]=V|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:d,Fh:h,Fl:p,Gh:m,Gl:g,Hh:w,Hl:b}=this;for(let y=0;y<80;y++){let x=F.rotrSH(l,d,14)^F.rotrSH(l,d,18)^F.rotrBH(l,d,41),A=F.rotrSL(l,d,14)^F.rotrSL(l,d,18)^F.rotrBL(l,d,41),_=l&h^~l&m,v=d&p^~d&g,B=F.add5L(b,A,v,l0[y],Wt[y]),k=F.add5H(B,w,x,_,c0[y],Gt[y]),J=B|0,H=F.rotrSH(n,s,28)^F.rotrBH(n,s,34)^F.rotrBH(n,s,39),V=F.rotrSL(n,s,28)^F.rotrBL(n,s,34)^F.rotrBL(n,s,39),D=n&o^n&a^o&a,I=s&i^s&c^i&c;w=m|0,b=g|0,m=h|0,g=p|0,h=l|0,p=d|0,{h:l,l:d}=F.add(u|0,f|0,k|0,J|0),u=a|0,f=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let N=F.add3L(J,V,I);n=F.add3H(N,k,H,D),s=N|0}({h:n,l:s}=F.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=F.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=F.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=F.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:d}=F.add(this.Eh|0,this.El|0,l|0,d|0),{h,l:p}=F.add(this.Fh|0,this.Fl|0,h|0,p|0),{h:m,l:g}=F.add(this.Gh|0,this.Gl|0,m|0,g|0),{h:w,l:b}=F.add(this.Hh|0,this.Hl|0,w|0,b|0),this.set(n,s,o,i,a,c,u,f,l,d,h,p,m,g,w,b)}roundClean(){Gt.fill(0),Wt.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 Gf=so(()=>new xc);var lo={};Re(lo,{aInRange:()=>qe,abool:()=>st,abytes:()=>sn,bitGet:()=>m0,bitLen:()=>Sc,bitMask:()=>Gn,bitSet:()=>g0,bytesToHex:()=>Ct,bytesToNumberBE:()=>It,bytesToNumberLE:()=>Zt,concatBytes:()=>kt,createHmacDrbg:()=>_c,ensureBytes:()=>ae,equalBytes:()=>d0,hexToBytes:()=>mr,hexToNumber:()=>Ac,inRange:()=>zn,isBytes:()=>jt,memoized:()=>yr,notImplemented:()=>w0,numberToBytesBE:()=>Xt,numberToBytesLE:()=>gr,numberToHexUnpadded:()=>pr,numberToVarBytesBE:()=>h0,utf8ToBytes:()=>p0,validateObject:()=>dt});var ao=BigInt(0),co=BigInt(1),u0=BigInt(2);function jt(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function sn(r){if(!jt(r))throw new Error("Uint8Array expected")}function st(r,e){if(typeof e!="boolean")throw new Error(r+" boolean expected, got "+e)}var f0=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function Ct(r){sn(r);let e="";for(let t=0;t<r.length;t++)e+=f0[r[t]];return e}function pr(r){let e=r.toString(16);return e.length&1?"0"+e:e}function Ac(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?ao:BigInt("0x"+r)}var Bt={_0:48,_9:57,A:65,F:70,a:97,f:102};function Wf(r){if(r>=Bt._0&&r<=Bt._9)return r-Bt._0;if(r>=Bt.A&&r<=Bt.F)return r-(Bt.A-10);if(r>=Bt.a&&r<=Bt.f)return r-(Bt.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("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let s=0,o=0;s<t;s++,o+=2){let i=Wf(r.charCodeAt(o)),a=Wf(r.charCodeAt(o+1));if(i===void 0||a===void 0){let c=r[o]+r[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[s]=i*16+a}return n}function It(r){return Ac(Ct(r))}function Zt(r){return sn(r),Ac(Ct(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 h0(r){return mr(pr(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=mr(e)}catch(o){throw new Error(r+" must be hex string or Uint8Array, cause: "+o)}else if(jt(e))n=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");let s=n.length;if(typeof t=="number"&&s!==t)throw new Error(r+" of length "+t+" expected, got "+s);return n}function kt(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];sn(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let o=r[n];t.set(o,s),s+=o.length}return t}function d0(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 p0(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}var vc=r=>typeof r=="bigint"&&ao<=r;function zn(r,e,t){return vc(r)&&vc(e)&&vc(t)&&e<=r&&r<t}function qe(r,e,t,n){if(!zn(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Sc(r){let e;for(e=0;r>ao;r>>=co,e+=1);return e}function m0(r,e){return r>>BigInt(e)&co}function g0(r,e,t){return r|(t?co:ao)<<BigInt(e)}var Gn=r=>(u0<<BigInt(r-1))-co,Ec=r=>new Uint8Array(r),jf=r=>Uint8Array.from(r);function _c(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=Ec(r),s=Ec(r),o=0,i=()=>{n.fill(1),s.fill(0),o=0},a=(...l)=>t(s,n,...l),c=(l=Ec())=>{s=a(jf([0]),l),n=a(),l.length!==0&&(s=a(jf([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,d=[];for(;l<e;){n=a();let h=n.slice();d.push(h),l+=n.length}return kt(...d)};return(l,d)=>{i(),c(l);let h;for(;!(h=d(u()));)c();return i(),h}}var y0={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"||jt(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 dt(r,e,t={}){let n=(s,o,i)=>{let a=y0[o];if(typeof a!="function")throw new Error("invalid validator function");let c=r[s];if(!(i&&c===void 0)&&!a(c,r))throw new Error("param "+String(s)+" is invalid. Expected "+o+", got "+c)};for(let[s,o]of Object.entries(e))n(s,o,!1);for(let[s,o]of Object.entries(t))n(s,o,!0);return r}var w0=()=>{throw new Error("not implemented")};function yr(r){let e=new WeakMap;return(t,...n)=>{let s=e.get(t);if(s!==void 0)return s;let o=r(t,...n);return e.set(t,o),o}}var ge=BigInt(0),oe=BigInt(1),wr=BigInt(2),b0=BigInt(3),Bc=BigInt(4),Zf=BigInt(5),Xf=BigInt(8),x0=BigInt(9),v0=BigInt(16);function ee(r,e){let t=r%e;return t>=ge?t:e+t}function E0(r,e,t){if(e<ge)throw new Error("invalid exponent, negatives unsupported");if(t<=ge)throw new Error("invalid modulus");if(t===oe)return ge;let n=oe;for(;e>ge;)e&oe&&(n=n*r%t),r=r*r%t,e>>=oe;return n}function ie(r,e,t){let n=r;for(;e-- >ge;)n*=n,n%=t;return n}function uo(r,e){if(r===ge)throw new Error("invert: expected non-zero number");if(e<=ge)throw new Error("invert: expected positive modulus, got "+e);let t=ee(r,e),n=e,s=ge,o=oe,i=oe,a=ge;for(;t!==ge;){let u=n/t,f=n%t,l=s-i*u,d=o-a*u;n=t,t=f,s=i,o=a,i=l,a=d}if(n!==oe)throw new Error("invert: does not exist");return ee(s,e)}function A0(r){let e=(r-oe)/wr,t,n,s;for(t=r-oe,n=0;t%wr===ge;t/=wr,n++);for(s=wr;s<r&&E0(s,e,r)!==r-oe;s++)if(s>1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){let i=(r+oe)/Bc;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 o=(t+oe)/wr;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,s),t),l=a.pow(c,o),d=a.pow(c,t);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let h=1;for(let m=a.sqr(d);h<u&&!a.eql(m,a.ONE);h++)m=a.sqr(m);let p=a.pow(f,oe<<BigInt(u-h-1));f=a.sqr(p),l=a.mul(l,p),d=a.mul(d,f),u=h}return l}}function S0(r){if(r%Bc===b0){let e=(r+oe)/Bc;return function(n,s){let o=n.pow(s,e);if(!n.eql(n.sqr(o),s))throw new Error("Cannot find square root");return o}}if(r%Xf===Zf){let e=(r-Zf)/Xf;return function(n,s){let o=n.mul(s,wr),i=n.pow(o,e),a=n.mul(s,i),c=n.mul(n.mul(a,wr),i),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),s))throw new Error("Cannot find square root");return u}}return r%v0,A0(r)}var Yf=(r,e)=>(ee(r,e)&oe)===oe,_0=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cc(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=_0.reduce((n,s)=>(n[s]="function",n),e);return dt(r,t)}function B0(r,e,t){if(t<ge)throw new Error("invalid exponent, negatives unsupported");if(t===ge)return r.ONE;if(t===oe)return e;let n=r.ONE,s=e;for(;t>ge;)t&oe&&(n=r.mul(n,s)),s=r.sqr(s),t>>=oe;return n}function C0(r,e){let t=new Array(e.length),n=e.reduce((o,i,a)=>r.is0(i)?o:(t[a]=o,r.mul(o,i)),r.ONE),s=r.inv(n);return e.reduceRight((o,i,a)=>r.is0(i)?o:(t[a]=r.mul(o,t[a]),r.mul(o,i)),s),t}function Ic(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Yt(r,e,t=!1,n={}){if(r<=ge)throw new Error("invalid field: expected ORDER > 0, got "+r);let{nBitLength:s,nByteLength:o}=Ic(r,e);if(o>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let i,a=Object.freeze({ORDER:r,BITS:s,BYTES:o,MASK:Gn(s),ZERO:ge,ONE:oe,create:c=>ee(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&oe)===oe,neg:c=>ee(-c,r),eql:(c,u)=>c===u,sqr:c=>ee(c*c,r),add:(c,u)=>ee(c+u,r),sub:(c,u)=>ee(c-u,r),mul:(c,u)=>ee(c*u,r),pow:(c,u)=>B0(a,c,u),div:(c,u)=>ee(c*uo(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>uo(c,r),sqrt:n.sqrt||(c=>(i||(i=S0(r)),i(a,c))),invertBatch:c=>C0(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>t?gr(c,o):Xt(c,o),fromBytes:c=>{if(c.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+c.length);return t?Zt(c):It(c)}});return Object.freeze(a)}function Jf(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 kc(r){let e=Jf(r);return e+Math.ceil(e/2)}function Qf(r,e,t=!1){let n=r.length,s=Jf(e),o=kc(e);if(n<16||n<o||n>1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);let i=t?It(r):Zt(r),a=ee(i,e-oe)+oe;return t?gr(a,s):Xt(a,s)}var eh=BigInt(0),fo=BigInt(1);function Tc(r,e){let t=e.negate();return r?t:e}function th(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Lc(r,e){th(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1);return{windows:t,windowSize:n}}function k0(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,n)=>{if(!(t instanceof e))throw new Error("invalid point at index "+n)})}function T0(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,n)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+n)})}var Nc=new WeakMap,rh=new WeakMap;function Pc(r){return rh.get(r)||1}function ho(r,e){return{constTimeNegate:Tc,hasPrecomputes(t){return Pc(t)!==1},unsafeLadder(t,n,s=r.ZERO){let o=t;for(;n>eh;)n&fo&&(s=s.add(o)),o=o.double(),n>>=fo;return s},precomputeWindow(t,n){let{windows:s,windowSize:o}=Lc(n,e),i=[],a=t,c=a;for(let u=0;u<s;u++){c=a,i.push(c);for(let f=1;f<o;f++)c=c.add(a),i.push(c);a=c.double()}return i},wNAF(t,n,s){let{windows:o,windowSize:i}=Lc(t,e),a=r.ZERO,c=r.BASE,u=BigInt(2**t-1),f=2**t,l=BigInt(t);for(let d=0;d<o;d++){let h=d*i,p=Number(s&u);s>>=l,p>i&&(p-=f,s+=fo);let m=h,g=h+Math.abs(p)-1,w=d%2!==0,b=p<0;p===0?c=c.add(Tc(w,n[m])):a=a.add(Tc(b,n[g]))}return{p:a,f:c}},wNAFUnsafe(t,n,s,o=r.ZERO){let{windows:i,windowSize:a}=Lc(t,e),c=BigInt(2**t-1),u=2**t,f=BigInt(t);for(let l=0;l<i;l++){let d=l*a;if(s===eh)break;let h=Number(s&c);if(s>>=f,h>a&&(h-=u,s+=fo),h===0)continue;let p=n[d+Math.abs(h)-1];h<0&&(p=p.negate()),o=o.add(p)}return o},getPrecomputes(t,n,s){let o=Nc.get(n);return o||(o=this.precomputeWindow(n,t),t!==1&&Nc.set(n,s(o))),o},wNAFCached(t,n,s){let o=Pc(t);return this.wNAF(o,this.getPrecomputes(o,t,s),n)},wNAFCachedUnsafe(t,n,s,o){let i=Pc(t);return i===1?this.unsafeLadder(t,n,o):this.wNAFUnsafe(i,this.getPrecomputes(i,t,s),n,o)},setWindowSize(t,n){th(n,e),rh.set(t,n),Nc.delete(t)}}}function po(r,e,t,n){if(k0(t,r),T0(n,e),t.length!==n.length)throw new Error("arrays of points and scalars must have equal length");let s=r.ZERO,o=Sc(BigInt(t.length)),i=o>12?o-3:o>4?o-2:o?2:1,a=(1<<i)-1,c=new Array(a+1).fill(s),u=Math.floor((e.BITS-1)/i)*i,f=s;for(let l=u;l>=0;l-=i){c.fill(s);for(let h=0;h<n.length;h++){let p=n[h],m=Number(p>>BigInt(l)&BigInt(a));c[m]=c[m].add(t[h])}let d=s;for(let h=c.length-1,p=s;h>0;h--)p=p.add(c[h]),d=d.add(p);if(f=f.add(d),l!==0)for(let h=0;h<i;h++)f=f.double()}return f}function Wn(r){return Cc(r.Fp),dt(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Ic(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var ot=BigInt(0),$e=BigInt(1),mo=BigInt(2),L0=BigInt(8),N0={zip215:!0};function P0(r){let e=Wn(r);return dt(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function nh(r){let e=P0(r),{Fp:t,n,prehash:s,hash:o,randomBytes:i,nByteLength:a,h:c}=e,u=mo<<BigInt(a*8)-$e,f=t.create,l=Yt(e.n,e.nBitLength),d=e.uvRatio||((S,E)=>{try{return{isValid:!0,value:t.sqrt(S*t.inv(E))}}catch{return{isValid:!1,value:ot}}}),h=e.adjustScalarBytes||(S=>S),p=e.domain||((S,E,C)=>{if(st("phflag",C),E.length||C)throw new Error("Contexts/pre-hash are not supported");return S});function m(S,E){qe("coordinate "+S,E,ot,u)}function g(S){if(!(S instanceof y))throw new Error("ExtendedPoint expected")}let w=yr((S,E)=>{let{ex:C,ey:L,ez:M}=S,U=S.is0();E==null&&(E=U?L0:t.inv(M));let K=f(C*E),$=f(L*E),O=f(M*E);if(U)return{x:ot,y:$e};if(O!==$e)throw new Error("invZ was invalid");return{x:K,y:$}}),b=yr(S=>{let{a:E,d:C}=e;if(S.is0())throw new Error("bad point: ZERO");let{ex:L,ey:M,ez:U,et:K}=S,$=f(L*L),O=f(M*M),Q=f(U*U),ne=f(Q*Q),be=f($*E),xe=f(Q*f(be+O)),Ee=f(ne+f(C*f($*O)));if(xe!==Ee)throw new Error("bad point: equation left != right (1)");let Be=f(L*M),Ke=f(U*K);if(Be!==Ke)throw new Error("bad point: equation left != right (2)");return!0});class y{constructor(E,C,L,M){this.ex=E,this.ey=C,this.ez=L,this.et=M,m("x",E),m("y",C),m("z",L),m("t",M),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof y)throw new Error("extended point not allowed");let{x:C,y:L}=E||{};return m("x",C),m("y",L),new y(C,L,$e,f(C*L))}static normalizeZ(E){let C=t.invertBatch(E.map(L=>L.ez));return E.map((L,M)=>L.toAffine(C[M])).map(y.fromAffine)}static msm(E,C){return po(y,l,E,C)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){b(this)}equals(E){g(E);let{ex:C,ey:L,ez:M}=this,{ex:U,ey:K,ez:$}=E,O=f(C*$),Q=f(U*M),ne=f(L*$),be=f(K*M);return O===Q&&ne===be}is0(){return this.equals(y.ZERO)}negate(){return new y(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=e,{ex:C,ey:L,ez:M}=this,U=f(C*C),K=f(L*L),$=f(mo*f(M*M)),O=f(E*U),Q=C+L,ne=f(f(Q*Q)-U-K),be=O+K,xe=be-$,Ee=O-K,Be=f(ne*xe),Ke=f(be*Ee),De=f(ne*Ee),ht=f(xe*be);return new y(Be,Ke,ht,De)}add(E){g(E);let{a:C,d:L}=e,{ex:M,ey:U,ez:K,et:$}=this,{ex:O,ey:Q,ez:ne,et:be}=E;if(C===BigInt(-1)){let df=f((U-M)*(Q+O)),pf=f((U+M)*(Q-O)),rc=f(pf-df);if(rc===ot)return this.double();let mf=f(K*mo*be),gf=f($*mo*ne),yf=gf+mf,wf=pf+df,bf=gf-mf,Km=f(yf*rc),qm=f(wf*bf),$m=f(yf*bf),zm=f(rc*wf);return new y(Km,qm,zm,$m)}let xe=f(M*O),Ee=f(U*Q),Be=f($*L*be),Ke=f(K*ne),De=f((M+U)*(O+Q)-xe-Ee),ht=Ke-Be,xt=Ke+Be,Mn=f(Ee-C*xe),Om=f(De*ht),Fm=f(xt*Mn),Vm=f(De*Mn),Hm=f(ht*xt);return new y(Om,Fm,Hm,Vm)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,y.normalizeZ)}multiply(E){let C=E;qe("scalar",C,$e,n);let{p:L,f:M}=this.wNAF(C);return y.normalizeZ([L,M])[0]}multiplyUnsafe(E,C=y.ZERO){let L=E;return qe("scalar",L,ot,n),L===ot?A:this.is0()||L===$e?this:_.wNAFCachedUnsafe(this,L,y.normalizeZ,C)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return w(this,E)}clearCofactor(){let{h:E}=e;return E===$e?this:this.multiplyUnsafe(E)}static fromHex(E,C=!1){let{d:L,a:M}=e,U=t.BYTES;E=ae("pointHex",E,U),st("zip215",C);let K=E.slice(),$=E[U-1];K[U-1]=$&-129;let O=Zt(K),Q=C?u:t.ORDER;qe("pointHex.y",O,ot,Q);let ne=f(O*O),be=f(ne-$e),xe=f(L*ne-M),{isValid:Ee,value:Be}=d(be,xe);if(!Ee)throw new Error("Point.fromHex: invalid y coordinate");let Ke=(Be&$e)===$e,De=($&128)!==0;if(!C&&Be===ot&&De)throw new Error("Point.fromHex: x=0 and x_0=1");return De!==Ke&&(Be=f(-Be)),y.fromAffine({x:Be,y:O})}static fromPrivateKey(E){return k(E).point}toRawBytes(){let{x:E,y:C}=this.toAffine(),L=gr(C,t.BYTES);return L[L.length-1]|=E&$e?128:0,L}toHex(){return Ct(this.toRawBytes())}}y.BASE=new y(e.Gx,e.Gy,$e,f(e.Gx*e.Gy)),y.ZERO=new y(ot,$e,$e,ot);let{BASE:x,ZERO:A}=y,_=ho(y,a*8);function v(S){return ee(S,n)}function B(S){return v(Zt(S))}function k(S){let E=t.BYTES;S=ae("private key",S,E);let C=ae("hashed private key",o(S),2*E),L=h(C.slice(0,E)),M=C.slice(E,2*E),U=B(L),K=x.multiply(U),$=K.toRawBytes();return{head:L,prefix:M,scalar:U,point:K,pointBytes:$}}function J(S){return k(S).pointBytes}function H(S=new Uint8Array,...E){let C=kt(...E);return B(o(p(C,ae("context",S),!!s)))}function V(S,E,C={}){S=ae("message",S),s&&(S=s(S));let{prefix:L,scalar:M,pointBytes:U}=k(E),K=H(C.context,L,S),$=x.multiply(K).toRawBytes(),O=H(C.context,$,U,S),Q=v(K+O*M);qe("signature.s",Q,ot,n);let ne=kt($,gr(Q,t.BYTES));return ae("result",ne,t.BYTES*2)}let D=N0;function I(S,E,C,L=D){let{context:M,zip215:U}=L,K=t.BYTES;S=ae("signature",S,2*K),E=ae("message",E),C=ae("publicKey",C,K),U!==void 0&&st("zip215",U),s&&(E=s(E));let $=Zt(S.slice(K,2*K)),O,Q,ne;try{O=y.fromHex(C,U),Q=y.fromHex(S.slice(0,K),U),ne=x.multiplyUnsafe($)}catch{return!1}if(!U&&O.isSmallOrder())return!1;let be=H(M,Q.toRawBytes(),O.toRawBytes(),E);return Q.add(O.multiplyUnsafe(be)).subtract(ne).clearCofactor().equals(y.ZERO)}return x._setWindowSize(8),{CURVE:e,getPublicKey:J,sign:V,verify:I,ExtendedPoint:y,utils:{getExtendedPublicKey:k,randomPrivateKey:()=>i(t.BYTES),precompute(S=8,E=y.BASE){return E._setWindowSize(S),E.multiply(BigInt(3)),E}}}}var Dc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),sh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),mv=BigInt(0),D0=BigInt(1),oh=BigInt(2),gv=BigInt(3),R0=BigInt(5),M0=BigInt(8);function U0(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),s=BigInt(80),o=Dc,a=r*r%o*r%o,c=ie(a,oh,o)*a%o,u=ie(c,D0,o)*r%o,f=ie(u,R0,o)*u%o,l=ie(f,e,o)*f%o,d=ie(l,t,o)*l%o,h=ie(d,n,o)*d%o,p=ie(h,s,o)*h%o,m=ie(p,s,o)*h%o,g=ie(m,e,o)*f%o;return{pow_p_5_8:ie(g,oh,o)*r%o,b2:a}}function O0(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function F0(r,e){let t=Dc,n=ee(e*e*e,t),s=ee(n*n*e,t),o=U0(r*s).pow_p_5_8,i=ee(r*n*o,t),a=ee(e*i*i,t),c=i,u=ee(i*sh,t),f=a===r,l=a===ee(-r,t),d=a===ee(-r*sh,t);return f&&(i=c),(l||d)&&(i=u),Yf(i,t)&&(i=ee(-i,t)),{isValid:f||l,value:i}}var V0=Yt(Dc,void 0,!0),H0={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:V0,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:M0,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Gf,randomBytes:oo,adjustScalarBytes:O0,uvRatio:F0},jn=nh(H0);var go=32,yo=64,Rc=32;function ih(){let r=jn.utils.randomPrivateKey(),e=jn.getPublicKey(r);return{privateKey:K0(r,e),publicKey:e}}function ah(r,e){let t=r.subarray(0,Rc);return jn.sign(e instanceof Uint8Array?e:e.subarray(),t)}function ch(r,e,t){return jn.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function K0(r,e){let t=new Uint8Array(yo);for(let n=0;n<Rc;n++)t[n]=r[n],t[Rc+n]=e[n];return t}var Zn=class{type="Ed25519";raw;constructor(e){this.raw=bo(e,go)}toMultihash(){return _t.digest(pt(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return X.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}verify(e,t){return ch(this.raw,t,e)}},wo=class{type="Ed25519";raw;publicKey;constructor(e,t){this.raw=bo(e,yo),this.publicKey=new Zn(t)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}sign(e){return ah(this.raw,e)}};function Mc(r){return r=bo(r,go),new Zn(r)}async function uh(){let{privateKey:r,publicKey:e}=ih();return new wo(r,e)}function bo(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new R(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}function fe(r=0){return new Uint8Array(r)}function Ce(r=0){return new Uint8Array(r)}var q0=Math.pow(2,7),$0=Math.pow(2,14),z0=Math.pow(2,21),Uc=Math.pow(2,28),Oc=Math.pow(2,35),Fc=Math.pow(2,42),Vc=Math.pow(2,49),Y=128,Ie=127;function pe(r){if(r<q0)return 1;if(r<$0)return 2;if(r<z0)return 3;if(r<Uc)return 4;if(r<Oc)return 5;if(r<Fc)return 6;if(r<Vc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Hc(r,e,t=0){switch(pe(r)){case 8:e[t++]=r&255|Y,r/=128;case 7:e[t++]=r&255|Y,r/=128;case 6:e[t++]=r&255|Y,r/=128;case 5:e[t++]=r&255|Y,r/=128;case 4:e[t++]=r&255|Y,r>>>=7;case 3:e[t++]=r&255|Y,r>>>=7;case 2:e[t++]=r&255|Y,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function G0(r,e,t=0){switch(pe(r)){case 8:e.set(t++,r&255|Y),r/=128;case 7:e.set(t++,r&255|Y),r/=128;case 6:e.set(t++,r&255|Y),r/=128;case 5:e.set(t++,r&255|Y),r/=128;case 4:e.set(t++,r&255|Y),r>>>=7;case 3:e.set(t++,r&255|Y),r>>>=7;case 2:e.set(t++,r&255|Y),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Kc(r,e){let t=r[e],n=0;if(n+=t&Ie,t<Y||(t=r[e+1],n+=(t&Ie)<<7,t<Y)||(t=r[e+2],n+=(t&Ie)<<14,t<Y)||(t=r[e+3],n+=(t&Ie)<<21,t<Y)||(t=r[e+4],n+=(t&Ie)*Uc,t<Y)||(t=r[e+5],n+=(t&Ie)*Oc,t<Y)||(t=r[e+6],n+=(t&Ie)*Fc,t<Y)||(t=r[e+7],n+=(t&Ie)*Vc,t<Y))return n;throw new RangeError("Could not decode varint")}function W0(r,e){let t=r.get(e),n=0;if(n+=t&Ie,t<Y||(t=r.get(e+1),n+=(t&Ie)<<7,t<Y)||(t=r.get(e+2),n+=(t&Ie)<<14,t<Y)||(t=r.get(e+3),n+=(t&Ie)<<21,t<Y)||(t=r.get(e+4),n+=(t&Ie)*Uc,t<Y)||(t=r.get(e+5),n+=(t&Ie)*Oc,t<Y)||(t=r.get(e+6),n+=(t&Ie)*Fc,t<Y)||(t=r.get(e+7),n+=(t&Ie)*Vc,t<Y))return n;throw new RangeError("Could not decode varint")}function ke(r,e,t=0){return e==null&&(e=Ce(pe(r))),e instanceof Uint8Array?Hc(r,e,t):G0(r,e,t)}function it(r,e=0){return r instanceof Uint8Array?Kc(r,e):W0(r,e)}var qc=new Float32Array([-0]),Jt=new Uint8Array(qc.buffer);function fh(r,e,t){qc[0]=r,e[t]=Jt[0],e[t+1]=Jt[1],e[t+2]=Jt[2],e[t+3]=Jt[3]}function hh(r,e){return Jt[0]=r[e],Jt[1]=r[e+1],Jt[2]=r[e+2],Jt[3]=r[e+3],qc[0]}var $c=new Float64Array([-0]),Te=new Uint8Array($c.buffer);function dh(r,e,t){$c[0]=r,e[t]=Te[0],e[t+1]=Te[1],e[t+2]=Te[2],e[t+3]=Te[3],e[t+4]=Te[4],e[t+5]=Te[5],e[t+6]=Te[6],e[t+7]=Te[7]}function ph(r,e){return Te[0]=r[e],Te[1]=r[e+1],Te[2]=r[e+2],Te[3]=r[e+3],Te[4]=r[e+4],Te[5]=r[e+5],Te[6]=r[e+6],Te[7]=r[e+7],$c[0]}var j0=BigInt(Number.MAX_SAFE_INTEGER),Z0=BigInt(Number.MIN_SAFE_INTEGER),je=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<j0&&e>Z0)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,s=e-(n<<32n);return t&&(n=~n|0n,s=~s|0n,++s>mh&&(s=0n,++n>mh&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(e){if(e===0)return xr;let t=e<0;t&&(e=-e);let n=e>>>0,s=(e-n)/4294967296>>>0;return t&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}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 je(0,0);xr.toBigInt=function(){return 0n};xr.zzEncode=xr.zzDecode=function(){return this};xr.length=function(){return 1};var mh=4294967296n;function gh(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 yh(r,e,t){if(t-e<1)return"";let s,o=[],i=0,a;for(;e<t;)a=r[e++],a<128?o[i++]=a:a>191&&a<224?o[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,o[i++]=55296+(a>>10),o[i++]=56320+(a&1023)):o[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,o)),i=0);return s!=null?(i>0&&s.push(String.fromCharCode.apply(String,o.slice(0,i))),s.join("")):String.fromCharCode.apply(String,o.slice(0,i))}function zc(r,e,t){let n=t,s,o;for(let i=0;i<r.length;++i)s=r.charCodeAt(i),s<128?e[t++]=s:s<2048?(e[t++]=s>>6|192,e[t++]=s&63|128):(s&64512)===55296&&((o=r.charCodeAt(i+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++i,e[t++]=s>>18|240,e[t++]=s>>12&63|128,e[t++]=s>>6&63|128,e[t++]=s&63|128):(e[t++]=s>>12|224,e[t++]=s>>6&63|128,e[t++]=s&63|128);return t-n}function at(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function xo(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Gc=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 xo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw at(this,4);return xo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw at(this,4);let e=hh(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw at(this,4);let e=ph(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 yh(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 je(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=xo(this.buf,this.pos+=4),t=xo(this.buf,this.pos+=4);return new je(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=Kc(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 Wc(r){return new Gc(r instanceof Uint8Array?r:r.subarray())}function Me(r,e,t){let n=Wc(r);return e.decode(n,void 0,t)}var jc={};Re(jc,{base10:()=>X0});var X0=zt({prefix:"9",name:"base10",alphabet:"0123456789"});var Zc={};Re(Zc,{base16:()=>Y0,base16upper:()=>J0});var Y0=le({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),J0=le({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Xc={};Re(Xc,{base2:()=>Q0});var Q0=le({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Yc={};Re(Yc,{base256emoji:()=>sy});var bh=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}"),ey=bh.reduce((r,e,t)=>(r[t]=e,r),[]),ty=bh.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ry(r){return r.reduce((e,t)=>(e+=ey[t],e),"")}function ny(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let s=ty[n];if(s==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(s)}return new Uint8Array(e)}var sy=Xr({prefix:"\u{1F680}",name:"base256emoji",encode:ry,decode:ny});var el={};Re(el,{base64:()=>Jc,base64pad:()=>oy,base64url:()=>Qc,base64urlpad:()=>iy});var Jc=le({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),oy=le({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Qc=le({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),iy=le({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var tl={};Re(tl,{base8:()=>ay});var ay=le({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var rl={};Re(rl,{identity:()=>cy});var cy=Xr({prefix:"\0",name:"identity",encode:r=>Bf(r),decode:r=>_f(r)});var Zv=new TextEncoder,Xv=new TextDecoder;var ol={};Re(ol,{sha256:()=>on,sha512:()=>fy});function sl({name:r,code:e,encode:t}){return new nl(r,e,t)}var nl=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?tt(this.code,t):t.then(n=>tt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function vh(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var on=sl({name:"sha2-256",code:18,encode:vh("SHA-256")}),fy=sl({name:"sha2-512",code:19,encode:vh("SHA-512")});var Xn={...rl,...Xc,...tl,...jc,...Zc,...dc,...pc,...hc,...el,...Yc},c2={...ol,...yc};function Ah(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Eh=Ah("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),il=Ah("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=Ce(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),hy={utf8:Eh,"utf-8":Eh,hex:Xn.base16,latin1:il,ascii:il,binary:il,...Xn},vo=hy;function P(r,e="utf8"){let t=vo[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function al(r){let e=r??8192,t=e>>>1,n,s=e;return function(i){if(i<1||i>t)return Ce(i);s+i>e&&(n=Ce(e),s=0);let a=n.subarray(s,s+=i);return s&7&&(s=(s|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 cl(){}var ul=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},dy=al();function py(r){return globalThis.Buffer!=null?Ce(r):dy(r)}var Jn=class{len;head;tail;states;constructor(){this.len=0,this.head=new vr(cl,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 fl((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(Eo,10,je.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=je.fromBigInt(e);return this._push(Eo,t.length(),t)}uint64Number(e){return this._push(Hc,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=je.fromBigInt(e).zzEncode();return this._push(Eo,t.length(),t)}sint64Number(e){let t=je.fromNumber(e).zzEncode();return this._push(Eo,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(ll,1,e?1:0)}fixed32(e){return this._push(Yn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=je.fromBigInt(e);return this._push(Yn,4,t.lo)._push(Yn,4,t.hi)}fixed64Number(e){let t=je.fromNumber(e);return this._push(Yn,4,t.lo)._push(Yn,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(fh,4,e)}double(e){return this._push(dh,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(ll,1,0):this.uint32(t)._push(gy,t,e)}string(e){let t=gh(e);return t!==0?this.uint32(t)._push(zc,t,e):this._push(ll,1,0)}fork(){return this.states=new ul(this),this.head=this.tail=new vr(cl,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(cl,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=py(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function ll(r,e,t){e[t]=r&255}function my(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var fl=class extends vr{next;constructor(e,t){super(my,e,t),this.next=void 0}};function Eo(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 Yn(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 gy(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(Jn.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(yy,e,r),this},Jn.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(wy,e,r),this});function yy(r,e,t){e.set(r,t)}function wy(r,e,t){r.length<40?zc(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(P(r),t)}function hl(){return new Jn}function Ue(r,e){let t=hl();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var an;(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"})(an||(an={}));function Ao(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function dl(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(o,i){let a=e(o);i.int32(a)},n=function(o){let i=o.int32();return e(i)};return Ao("enum",an.VARINT,t,n)}function Oe(r,e){return Ao("message",an.LENGTH_DELIMITED,r,e)}var Er=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"},Qn=class extends Error{code="ERR_MAX_SIZE";name="MaxSizeError"};var ye;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(ye||(ye={}));var pl;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(pl||(pl={}));(function(r){r.codec=()=>dl(pl)})(ye||(ye={}));var mt;(function(r){let e;r.codec=()=>(e==null&&(e=Oe((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),ye.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let o={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{o.Type=ye.codec().decode(t);break}case 2:{o.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return o})),e),r.encode=t=>Ue(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(mt||(mt={}));var ml;(function(r){let e;r.codec=()=>(e==null&&(e=Oe((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),ye.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let o={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{o.Type=ye.codec().decode(t);break}case 2:{o.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return o})),e),r.encode=t=>Ue(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(ml||(ml={}));var us={};Re(us,{MAX_RSA_KEY_SIZE:()=>wi,generateRSAKeyPair:()=>kl,jwkToJWKKeyPair:()=>_d,jwkToPkcs1:()=>Uy,jwkToPkix:()=>Cl,jwkToRSAPrivateKey:()=>Sd,pkcs1ToJwk:()=>vd,pkcs1ToRSAPrivateKey:()=>Ad,pkixToJwk:()=>Ed,pkixToRSAPublicKey:()=>Il});function by(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function gl(r,...e){if(!by(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function yl(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 _h(r,e){gl(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}var Ar=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var _o=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ct=(r,e)=>r<<32-e|r>>>e;function xy(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function wl(r){return typeof r=="string"&&(r=xy(r)),gl(r),r}var So=class{clone(){return this._cloneInto()}};function Bh(r){let e=n=>r().update(wl(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Ch(r=32){if(Ar&&typeof Ar.getRandomValues=="function")return Ar.getRandomValues(new Uint8Array(r));if(Ar&&typeof Ar.randomBytes=="function")return Ar.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function vy(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(t>>s&o),a=Number(t&o),c=n?4:0,u=n?0:4;r.setUint32(e+c,i,n),r.setUint32(e+u,a,n)}var Ih=(r,e,t)=>r&e^~r&t,kh=(r,e,t)=>r&e^r&t^e&t,Bo=class extends So{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_o(this.buffer)}update(e){yl(this);let{view:t,buffer:n,blockLen:s}=this;e=wl(e);let o=e.length;for(let i=0;i<o;){let a=Math.min(s-this.pos,o-i);if(a===s){let c=_o(e);for(;s<=o-i;i+=s)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){yl(this),_h(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>s-i&&(this.process(n,0),i=0);for(let l=i;l<s;l++)t[l]=0;vy(n,s-8,BigInt(this.length*8),o),this.process(n,0);let a=_o(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],o)}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:s,finished:o,destroyed:i,pos:a}=this;return e.length=s,e.pos=a,e.finished=o,e.destroyed=i,s%t&&e.buffer.set(n),e}};var Ey=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]),Qt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),er=new Uint32Array(64),bl=class extends Bo{constructor(){super(64,32,8,!1),this.A=Qt[0]|0,this.B=Qt[1]|0,this.C=Qt[2]|0,this.D=Qt[3]|0,this.E=Qt[4]|0,this.F=Qt[5]|0,this.G=Qt[6]|0,this.H=Qt[7]|0}get(){let{A:e,B:t,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[e,t,n,s,o,i,a,c]}set(e,t,n,s,o,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=o|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)er[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let d=er[l-15],h=er[l-2],p=ct(d,7)^ct(d,18)^d>>>3,m=ct(h,17)^ct(h,19)^h>>>10;er[l]=m+er[l-7]+p+er[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let d=ct(a,6)^ct(a,11)^ct(a,25),h=f+d+Ih(a,c,u)+Ey[l]+er[l]|0,m=(ct(n,2)^ct(n,13)^ct(n,22))+kh(n,s,o)|0;f=u,u=c,c=a,a=i+h|0,i=o,o=s,s=n,n=h+m|0}n=n+this.A|0,s=s+this.B|0,o=o+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,s,o,i,a,c,u,f)}roundClean(){er.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Co=Bh(()=>new bl);var q=hr(Th());function Sr(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 tr(r,e,t=-1){let n=t,s=r,o=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),o=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),o=n}let u=new Uint8Array(c);for(let f=a-1;f>=0;f--){let l=Math.pow(2,f*e);u[o-f-1]=Math.floor(s/l),s-=u[o-f-1]*l}return c}i*=Math.pow(2,e)}return new ArrayBuffer(0)}function To(...r){let e=0,t=0;for(let o of r)e+=o.length;let n=new ArrayBuffer(e),s=new Uint8Array(n);for(let o of r)s.set(o,t),t+=o.length;return s}function vl(){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=Sr(t,8),s=new ArrayBuffer(this.valueHex.byteLength),o=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)o[a]=r[a];return o[0]&=127,Sr(o,8)-n}function Lh(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=tr(i,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=tr(e,8,n),o=new Uint8Array(s);if(o[0]&128){let i=s.slice(0),a=new Uint8Array(i);s=new ArrayBuffer(s.byteLength+1),o=new Uint8Array(s);for(let c=0;c<i.byteLength;c++)o[c+1]=a[c];o[0]=0}return s}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Nh(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}function ze(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,s=new Array(n);for(let i=0;i<n;i++)s[i]="0";return s.join("").concat(t)}var Y2=Math.log(2);function Lo(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function El(r){let e=0,t=0;for(let s=0;s<r.length;s++){let o=r[s];e+=o.byteLength}let n=new Uint8Array(e);for(let s=0;s<r.length;s++){let o=r[s];n.set(new Uint8Array(o),t),t+=o.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 ts=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return El(this.items)}},es=[new Uint8Array([1])],Ph="0123456789";var hn="",lt=new ArrayBuffer(0),Al=new Uint8Array(0),rs="EndOfContent",Rh="OCTET STRING",Mh="BIT STRING";function Rt(r){var e;return e=class extends r{constructor(...n){var s;super(...n);let o=n[0]||{};this.isHexOnly=(s=o.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=o.valueHex?q.BufferSourceConverter.toUint8Array(o.valueHex):Al}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,o){let i=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!Dt(this,i,s,o))return-1;let a=s+o;return this.valueHexView=i.subarray(s,a),this.valueHexView.length?(this.blockLength=o,a):(this.warnings.push("Zero buffer length"),s)}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:q.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Lt=class{constructor({blockLength:e=0,error:t=hn,warnings:n=[],valueBeforeDecode:s=Al}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=q.BufferSourceConverter.toUint8Array(s)}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:q.Convert.ToHex(this.valueBeforeDecodeView)}}};Lt.NAME="baseBlock";var Le=class extends Lt{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'")}};Le.NAME="valueBlock";var No=class extends Rt(Lt){constructor({idBlock:e={}}={}){var t,n,s,o;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?q.BufferSourceConverter.toUint8Array(e.valueHex):Al,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=e.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(o=e.isConstructed)!==null&&o!==void 0?o:!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 s=new Uint8Array(1);if(!e){let o=this.tagNumber;o&=31,t|=o,s[0]=t}return s.buffer}if(!this.isHexOnly){let s=tr(this.tagNumber,7),o=new Uint8Array(s),i=s.byteLength,a=new Uint8Array(i+1);if(a[0]=t|31,!e){for(let c=0;c<i-1;c++)a[c+1]=o[c]|128;a[i]=o[i-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let s=this.valueHexView;for(let o=0;o<s.length-1;o++)n[o+1]=s[o]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(e,t,n){let s=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;let o=s.subarray(t,t+n);if(o.length===0)return this.error="Zero buffer length",-1;switch(o[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=(o[0]&32)===32,this.isHexOnly=!1;let a=o[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,u=this.valueHexView=new Uint8Array(255),f=255;for(;o[c]&128;){if(u[c-1]=o[c]&127,c++,c>=o.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let d=new Uint8Array(f);for(let h=0;h<u.length;h++)d[h]=u[h];u=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,u[c-1]=o[c]&127;let l=new Uint8Array(c);for(let d=0;d<c;d++)l[d]=u[d];u=this.valueHexView=new Uint8Array(c),u.set(l),this.blockLength<=9?this.tagNumber=Sr(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}}};No.NAME="identificationBlock";var Po=class extends Lt{constructor({lenBlock:e={}}={}){var t,n,s;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=(s=e.length)!==null&&s!==void 0?s:0}fromBER(e,t,n){let s=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;let o=s.subarray(t,t+n);if(o.length===0)return this.error="Zero buffer length",-1;if(o[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=o[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(o[0]&128),this.longFormUsed===!1)return this.length=o[0],this.blockLength=1,t+this.blockLength;let i=o[0]&127;if(i>8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=s.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Sr(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 s=tr(this.length,8);if(s.byteLength>127)return this.error="Too big length",lt;if(t=new ArrayBuffer(s.byteLength+1),e)return t;let o=new Uint8Array(s);n=new Uint8Array(t),n[0]=s.byteLength|128;for(let i=0;i<s.byteLength;i++)n[i+1]=o[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}}};Po.NAME="lengthBlock";var T={},Ae=class extends Lt{constructor({name:e=hn,optional:t=!1,primitiveSchema:n,...s}={},o){super(s),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new No(s),this.lenBlock=new Po(s),this.valueBlock=o?new o(s):new Le(s)}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(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),s)}toBER(e,t){let n=t||new ts;t||Uh(this);let s=this.idBlock.toBER(e);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let o=this.valueBlock.toBER(e);this.lenBlock.length=o.byteLength;let i=this.lenBlock.toBER(e);n.write(i),n.write(o)}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():q.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${q.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 Nh(t,n)}};Ae.NAME="BaseBlock";function Uh(r){if(r instanceof T.Constructed)for(let e of r.valueBlock.value)Uh(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var Do=class extends Ae{constructor({value:e=hn,...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 s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(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),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};Do.NAME="BaseStringBlock";var Ro=class extends Rt(Le){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};Ro.NAME="PrimitiveValueBlock";var Oh,Mo=class extends Ae{constructor(e={}){super(e,Ro),this.idBlock.isConstructed=!1}};Oh=Mo;T.Primitive=Oh;Mo.NAME="PRIMITIVE";function Ly(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 gi(r,e=0,t=r.length){let n=e,s=new Ae({},Le),o=new Lt;if(!Dt(o,r,e,t))return s.error=o.error,{offset:-1,result:s};if(!r.subarray(e,e+t).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,e,t);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(e=a,t-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,e,t),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(e=a,t-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=Ae;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=T.EndOfContent;break;case 1:c=T.Boolean;break;case 2:c=T.Integer;break;case 3:c=T.BitString;break;case 4:c=T.OctetString;break;case 5:c=T.Null;break;case 6:c=T.ObjectIdentifier;break;case 10:c=T.Enumerated;break;case 12:c=T.Utf8String;break;case 13:c=T.RelativeObjectIdentifier;break;case 14:c=T.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=T.Sequence;break;case 17:c=T.Set;break;case 18:c=T.NumericString;break;case 19:c=T.PrintableString;break;case 20:c=T.TeletexString;break;case 21:c=T.VideotexString;break;case 22:c=T.IA5String;break;case 23:c=T.UTCTime;break;case 24:c=T.GeneralizedTime;break;case 25:c=T.GraphicString;break;case 26:c=T.VisibleString;break;case 27:c=T.GeneralString;break;case 28:c=T.UniversalString;break;case 29:c=T.CharacterString;break;case 30:c=T.BmpString;break;case 31:c=T.DATE;break;case 32:c=T.TimeOfDay;break;case 33:c=T.DateTime;break;case 34:c=T.Duration;break;default:{let u=s.idBlock.isConstructed?new T.Constructed:new T.Primitive;u.idBlock=s.idBlock,u.lenBlock=s.lenBlock,u.warnings=s.warnings,s=u}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?T.Constructed:T.Primitive}return s=Ly(s,c),a=s.fromBER(r,e,s.lenBlock.isIndefiniteForm?t:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Sl(r){if(!r.byteLength){let e=new Ae({},Le);return e.error="Input buffer has zero length",{offset:-1,result:e}}return gi(q.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Ny(r,e){return r?1:e}var gt=class extends Le{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let s=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;if(this.valueBeforeDecodeView=s.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let o=t;for(;Ny(this.isIndefiniteForm,n)>0;){let i=gi(s,o,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(o=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===rs)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===rs?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(e,t){let n=t||new ts;for(let s=0;s<this.value.length;s++)this.value[s].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}};gt.NAME="ConstructedValueBlock";var Fh,rr=class extends Ae{constructor(e={}){super(e,gt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(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),s)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
3
+ `).map(s=>` ${s}`).join(`
4
+ `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
5
+ ${e.join(`
6
+ `)}`:`${t} :`}};Fh=rr;T.Constructed=Fh;rr.NAME="CONSTRUCTED";var Uo=class extends Le{fromBER(e,t,n){return t}toBER(e){return lt}};Uo.override="EndOfContentValueBlock";var Vh,Oo=class extends Ae{constructor(e={}){super(e,Uo),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Vh=Oo;T.EndOfContent=Vh;Oo.NAME=rs;var Hh,ln=class extends Ae{constructor(e={}){super(e,Le),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 s=new Uint8Array(n);s[0]=5,s[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Hh=ln;T.Null=Hh;ln.NAME="NULL";var Fo=class extends Rt(Le){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=q.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 s=q.BufferSourceConverter.toUint8Array(e);return Dt(this,s,t,n)?(this.valueHexView=s.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,vl.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Fo.NAME="BooleanValueBlock";var Kh,Vo=class extends Ae{constructor(e={}){super(e,Fo),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}`}};Kh=Vo;T.Boolean=Kh;Vo.NAME="BOOLEAN";var Ho=class extends Rt(gt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=gt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let o=0;o<this.value.length;o++){let i=this.value[o].constructor.NAME;if(i===rs){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==Rh)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(e,t,n),this.blockLength=n;return s}toBER(e,t){return this.isConstructed?gt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Ho.NAME="OctetStringValueBlock";var qh,Ko=class r extends Ae{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},Ho),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 o=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(o.byteLength){let i=gi(o,0,o.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?rr.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${q.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 q.BufferSourceConverter.concat(e)}};qh=Ko;T.OctetString=qh;Ko.NAME=Rh;var qo=class extends Rt(gt){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 s=-1;if(this.isConstructed){if(s=gt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===rs){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Mh)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 s}let o=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,o,t,n))return-1;let i=o.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=gi(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 gt.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}}};qo.NAME="BitStringValueBlock";var $h,un=class extends Ae{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},qo),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 rr.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let s of t)e.push(s.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};$h=un;T.BitString=$h;un.NAME=Mh;var zh;function Py(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(e),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u=0,f=c<i?i:c,l=0;for(let d=f;d>=0;d--,l++){switch(!0){case l<a.length:u=o[i-l]+a[c-l]+t[0];break;default:u=o[i-l]+t[0]}switch(t[0]=u/10,!0){case l>=o.length:o=To(new Uint8Array([u%10]),o);break;default:o[i-l]=u%10}}return t[0]>0&&(o=To(t,o)),o}function Dh(r){if(r>=es.length)for(let e=es.length;e<=r;e++){let t=new Uint8Array([0]),n=es[e-1].slice(0);for(let s=n.length-1;s>=0;s--){let o=new Uint8Array([(n[s]<<1)+t[0]]);t[0]=o[0]/10,n[s]=o[0]%10}t[0]>0&&(n=To(t,n)),es.push(n)}return es[r]}function Dy(r,e){let t=0,n=new Uint8Array(r),s=new Uint8Array(e),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u,f=0;for(let l=c;l>=0;l--,f++)switch(u=o[i-f]-a[c-f]-t,!0){case u<0:t=1,o[i-f]=u+10;break;default:t=0,o[i-f]=u}if(t>0)for(let l=i-c+1;l>=0;l--,f++)if(u=o[i-f]-t,u<0)t=1,o[i-f]=u+10;else{t=0,o[i-f]=u;break}return o.slice()}var ns=class extends Rt(Le){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=vl.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Lh(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,s=0){let o=this.fromBER(e,t,n);if(o===-1)return o;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):s!==0&&i.length<s&&(s-i.length>1&&(s=i.length+1),this.valueHexView=i.subarray(s-i.length)),o}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 s=super.fromBER(e,t,n);return s===-1||this.setValueHex(),s}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,s,o=this.valueHexView,i="",a=!1;for(let c=o.byteLength-1;c>=0;c--){s=o[c];for(let u=0;u<8;u++){if((s&1)===1)switch(n){case e:t=Dy(Dh(n),t),i="-";break;default:t=Py(t,Dh(n))}n++,s>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(i+=Ph.charAt(t[c]));return a===!1&&(i+=Ph.charAt(0)),i}};zh=ns;ns.NAME="IntegerValueBlock";Object.defineProperty(zh.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var Gh,Se=class r extends Ae{constructor(e={}){super(e,ns),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Lo(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Lo();let t=BigInt(e),n=new ts,s=t.toString(16).replace(/^-/,""),o=new Uint8Array(q.Convert.FromHex(s));if(t<0){let a=new Uint8Array(o.length+(o[0]&128?1:0));a[0]|=128;let u=BigInt(`0x${q.Convert.ToHex(a)}`)+t,f=q.BufferSourceConverter.toUint8Array(q.Convert.FromHex(u.toString(16)));f[0]|=128,n.write(f)}else o[0]&128&&n.write(new Uint8Array([0])),n.write(o);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()}`}};Gh=Se;T.Integer=Gh;Se.NAME="INTEGER";var Wh,$o=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};Wh=$o;T.Enumerated=Wh;$o.NAME="ENUMERATED";var ss=class extends Rt(Le){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 s=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;let o=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[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,o[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=Sr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Lo();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(t.slice(s*7,s*7+7),2)+(s+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 s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let t=tr(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 s=new Uint8Array(t),o=t.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n}toString(){let e="";if(this.isHexOnly)e=q.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}}};ss.NAME="sidBlock";var zo=class extends Le{constructor({value:e=hn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let o=new ss;if(s=o.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.value.length===0&&(o.isFirstSid=!0),this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(e);if(s.byteLength===0)return this.error=this.value[n].error,lt;t.push(s)}return El(t)}fromString(e){this.value=[];let t=0,n=0,s="",o=!1;do if(n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1,o){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(s,10);if(isNaN(c))return;i.valueDec=c+a,o=!1}else{let i=new ss;if(s>Number.MAX_SAFE_INTEGER){Lo();let a=BigInt(s);i.valueBigInt=a}else if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,o=!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 s=this.value[n].toString();n!==0&&(e=`${e}.`),t?(s=`{${s}}`,this.value[n].isFirstSid?e=`2.{${s} - 80}`:e+=s):e+=s}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}};zo.NAME="ObjectIdentifierValueBlock";var jh,fn=class extends Ae{constructor(e={}){super(e,zo),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()}}};jh=fn;T.ObjectIdentifier=jh;fn.NAME="OBJECT IDENTIFIER";var os=class extends Rt(Lt){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let s=q.BufferSourceConverter.toUint8Array(e);if(!Dt(this,s,t,n))return-1;let o=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[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,o[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=Sr(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 s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let t=tr(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 s=new Uint8Array(t),o=t.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n.buffer}toString(){let e="";return this.isHexOnly?e=q.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};os.NAME="relativeSidBlock";var Go=class extends Le{constructor({value:e=hn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let o=new os;if(s=o.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(e,t){let n=[];for(let s=0;s<this.value.length;s++){let o=this.value[s].toBER(e);if(o.byteLength===0)return this.error=this.value[s].error,lt;n.push(o)}return El(n)}fromString(e){this.value=[];let t=0,n=0,s="";do{n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1;let o=new os;if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return!0;this.value.push(o)}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 s=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(s=`{${s}}`),e+=s}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}};Go.NAME="RelativeObjectIdentifierValueBlock";var Zh,Wo=class extends Ae{constructor(e={}){super(e,Go),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()}}};Zh=Wo;T.RelativeObjectIdentifier=Zh;Wo.NAME="RelativeObjectIdentifier";var Xh,Nt=class extends rr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};Xh=Nt;T.Sequence=Xh;Nt.NAME="SEQUENCE";var Yh,jo=class extends rr{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};Yh=jo;T.Set=Yh;jo.NAME="SET";var Zo=class extends Rt(Le){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=hn}toJSON(){return{...super.toJSON(),value:this.value}}};Zo.NAME="StringValueBlock";var Xo=class extends Zo{};Xo.NAME="SimpleStringValueBlock";var Fe=class extends Do{constructor({...e}={}){super(e,Xo)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,q.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);this.valueBlock.value=e}};Fe.NAME="SIMPLE STRING";var Yo=class extends Fe{fromBuffer(e){this.valueBlock.valueHexView=q.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=q.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=q.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(q.Convert.FromUtf8String(e)),this.valueBlock.value=e}};Yo.NAME="Utf8StringValueBlock";var Jh,Pt=class extends Yo{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};Jh=Pt;T.Utf8String=Jh;Pt.NAME="UTF8String";var Jo=class extends Fe{fromBuffer(e){this.valueBlock.value=q.Convert.ToUtf16String(e),this.valueBlock.valueHexView=q.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(q.Convert.FromUtf16String(e))}};Jo.NAME="BmpStringValueBlock";var Qh,Qo=class extends Jo{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};Qh=Qo;T.BmpString=Qh;Qo.NAME="BMPString";var ei=class extends Fe{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let s=0;s<t;s++){let o=tr(e.charCodeAt(s),8),i=new Uint8Array(o);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[s*4+c+a]=i[c]}this.valueBlock.value=e}};ei.NAME="UniversalStringValueBlock";var ed,ti=class extends ei{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};ed=ti;T.UniversalString=ed;ti.NAME="UniversalString";var td,ri=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};td=ri;T.NumericString=td;ri.NAME="NumericString";var rd,ni=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};rd=ni;T.PrintableString=rd;ni.NAME="PrintableString";var nd,si=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};nd=si;T.TeletexString=nd;si.NAME="TeletexString";var sd,oi=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};sd=oi;T.VideotexString=sd;oi.NAME="VideotexString";var od,ii=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};od=ii;T.IA5String=od;ii.NAME="IA5String";var id,ai=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};id=ai;T.GraphicString=id;ai.NAME="GraphicString";var ad,is=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};ad=is;T.VisibleString=ad;is.NAME="VisibleString";var cd,ci=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};cd=ci;T.GeneralString=cd;ci.NAME="GeneralString";var ld,li=class extends Fe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};ld=li;T.CharacterString=ld;li.NAME="CharacterString";var ud,as=class extends is{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 s=0;s<e.length;s++)this.valueBlock.valueHexView[s]=e.charCodeAt(s)}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,q.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);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 s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=ze(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=ze(this.month,2),t[2]=ze(this.day,2),t[3]=ze(this.hour,2),t[4]=ze(this.minute,2),t[5]=ze(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}}};ud=as;T.UTCTime=ud;as.NAME="UTCTime";var fd,ui=class extends as{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="",s="",o=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,d=n.indexOf("+"),h="";if(d===-1&&(d=n.indexOf("-"),l=-1),d!==-1){if(h=n.substring(d+1),n=n.substring(0,d),h.length!==2&&h.length!==4)throw new Error("Wrong input string for conversion");let p=parseInt(h.substring(0,2),10);if(isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*p,h.length===4){if(p=parseInt(h.substring(2,4),10),isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");c=l*p}}}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");o=l.valueOf(),s=n.substring(0,u)}else s=n;switch(!0){case s.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;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 s.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=1e3*o;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(s);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(ze(this.year,4)),t.push(ze(this.month,2)),t.push(ze(this.day,2)),t.push(ze(this.hour,2)),t.push(ze(this.minute,2)),t.push(ze(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(ze(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};fd=ui;T.GeneralizedTime=fd;ui.NAME="GeneralizedTime";var hd,fi=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};hd=fi;T.DATE=hd;fi.NAME="DATE";var dd,hi=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};dd=hi;T.TimeOfDay=dd;hi.NAME="TimeOfDay";var pd,di=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};pd=di;T.DateTime=pd;di.NAME="DateTime";var md,pi=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};md=pi;T.Duration=md;pi.NAME="Duration";var gd,mi=class extends Pt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};gd=mi;T.TIME=gd;mi.NAME="TIME";function te(r,e="utf8"){let t=vo[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}function dn(r){if(isNaN(r)||r<=0)throw new R("random bytes length must be a Number bigger than 0");return Ch(r)}var cs=class extends Error{constructor(e="An error occurred while signing a message"){super(e),this.name="SigningError"}},ls=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},yi=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var yd={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw new yi("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return e}};var nr=yd;async function wd(r){let e=await nr.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 My(e);return{privateKey:t[0],publicKey:t[1]}}async function bd(r,e){let t=await nr.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await nr.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function xd(r,e,t){let n=await nr.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return nr.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function My(r){if(r.privateKey==null||r.publicKey==null)throw new R("Private and public key are required");return Promise.all([nr.get().subtle.exportKey("jwk",r.privateKey),nr.get().subtle.exportKey("jwk",r.publicKey)])}function _l(r){if(r.kty!=="RSA")throw new R("invalid key type");if(r.n==null)throw new R("invalid key modulus");return P(r.n,"base64url").length*8}var pn=class{type="RSA";_key;_raw;_multihash;constructor(e,t){this._key=e,this._multihash=t}get raw(){return this._raw==null&&(this._raw=us.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return me.createV1(114,this._multihash)}toString(){return X.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}verify(e,t){return xd(this._key,t,e)}},fs=class{type="RSA";_key;_raw;publicKey;constructor(e,t){this._key=e,this.publicKey=t}get raw(){return this._raw==null&&(this._raw=us.jwkToPkcs1(this._key)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}sign(e){return bd(this._key,e)}};var wi=8192,Bl=18;function vd(r){let{result:e}=Sl(r),t=e.valueBlock.value;return{n:yt(t[1]),e:yt(t[2]),d:yt(t[3]),p:yt(t[4]),q:yt(t[5]),dp:yt(t[6]),dq:yt(t[7]),qi:yt(t[8]),kty:"RSA",alg:"RS256"}}function Uy(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 R("JWK was missing components");let t=new Nt({value:[new Se({value:0}),Se.fromBigInt(wt(P(r.n,"base64url"))),Se.fromBigInt(wt(P(r.e,"base64url"))),Se.fromBigInt(wt(P(r.d,"base64url"))),Se.fromBigInt(wt(P(r.p,"base64url"))),Se.fromBigInt(wt(P(r.q,"base64url"))),Se.fromBigInt(wt(P(r.dp,"base64url"))),Se.fromBigInt(wt(P(r.dq,"base64url"))),Se.fromBigInt(wt(P(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function Ed(r){let{result:e}=Sl(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:yt(t[0]),e:yt(t[1])}}function Cl(r){if(r.n==null||r.e==null)throw new R("JWK was missing components");let t=new Nt({value:[new Nt({value:[new fn({value:"1.2.840.113549.1.1.1"}),new ln]}),new un({valueHex:new Nt({value:[Se.fromBigInt(wt(P(r.n,"base64url"))),Se.fromBigInt(wt(P(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function yt(r){let e=r.valueBlock.valueHexView;for(;e[0]===0;)e=e.subarray(1);return te(e,"base64url")}function wt(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(""))}function Ad(r){let e=vd(r);return Sd(e)}function Il(r){let e=Ed(r);if(_l(e)>wi)throw new zr("Key size is too large");let t=Co(mt.encode({Type:ye.RSA,Data:r})),n=tt(Bl,t);return new pn(e,n)}function Sd(r){if(_l(r)>wi)throw new R("Key size is too large");let e=_d(r),t=Co(mt.encode({Type:ye.RSA,Data:Cl(e.publicKey)})),n=tt(Bl,t);return new fs(e.privateKey,new pn(e.publicKey,n))}async function kl(r){if(r>wi)throw new R("Key size is too large");let e=await wd(r),t=Co(mt.encode({Type:ye.RSA,Data:Cl(e.publicKey)})),n=tt(Bl,t);return new fs(e.privateKey,new pn(e.publicKey,n))}function _d(r){if(r==null)throw new R("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var Oy=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]),sr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),or=new Uint32Array(64),Tl=class extends nn{constructor(){super(64,32,8,!1),this.A=sr[0]|0,this.B=sr[1]|0,this.C=sr[2]|0,this.D=sr[3]|0,this.E=sr[4]|0,this.F=sr[5]|0,this.G=sr[6]|0,this.H=sr[7]|0}get(){let{A:e,B:t,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[e,t,n,s,o,i,a,c]}set(e,t,n,s,o,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=o|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)or[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let d=or[l-15],h=or[l-2],p=nt(d,7)^nt(d,18)^d>>>3,m=nt(h,17)^nt(h,19)^h>>>10;or[l]=m+or[l-7]+p+or[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let d=nt(a,6)^nt(a,11)^nt(a,25),h=f+d+qf(a,c,u)+Oy[l]+or[l]|0,m=(nt(n,2)^nt(n,13)^nt(n,22))+$f(n,s,o)|0;f=u,u=c,c=a,a=i+h|0,i=o,o=s,s=n,n=h+m|0}n=n+this.A|0,s=s+this.B|0,o=o+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,s,o,i,a,c,u,f)}roundClean(){or.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Bd=so(()=>new Tl);var bi=class extends rn{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Vf(e);let n=$n(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 s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?e.create().update(n).digest():n);for(let i=0;i<o.length;i++)o[i]^=54;this.iHash.update(o),this.oHash=e.create();for(let i=0;i<o.length;i++)o[i]^=106;this.oHash.update(o),o.fill(0)}update(e){return tn(this),this.iHash.update(e),this}digestInto(e){tn(this),en(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:s,destroyed:o,blockLen:i,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=o,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()}},Ll=(r,e,t)=>new bi(r,e).update(t).digest();Ll.create=(r,e)=>new bi(r,e);function Cd(r){r.lowS!==void 0&&st("lowS",r.lowS),r.prehash!==void 0&&st("prehash",r.prehash)}function Fy(r){let e=Wn(r);dt(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:s}=e;if(t){if(!n.eql(s,n.ZERO))throw new Error("invalid 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("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Vy,hexToBytes:Hy}=lo,Mt={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(r,e)=>{let{Err:t}=Mt;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,s=pr(n);if(s.length/2&128)throw new t("tlv.encode: long form length too big");let o=n>127?pr(s.length/2|128):"";return pr(r)+o+s+e},decode(r,e){let{Err:t}=Mt,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let s=e[n++],o=!!(s&128),i=0;if(!o)i=s;else{let c=s&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let u=e.subarray(n,n+c);if(u.length!==c)throw new t("tlv.decode: length bytes not complete");if(u[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let f of u)i=i<<8|f;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=Mt;if(r<Ut)throw new e("integer: negative integers are not allowed");let t=pr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=Mt;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Vy(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=Mt,s=typeof r=="string"?Hy(r):r;sn(s);let{v:o,l:i}=n.decode(48,s);if(i.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,o),{v:u,l:f}=n.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(u)}},hexFromSig(r){let{_tlv:e,_int:t}=Mt,n=e.encode(2,t.encode(r.r)),s=e.encode(2,t.encode(r.s)),o=n+s;return e.encode(48,o)}},Ut=BigInt(0),ve=BigInt(1),RE=BigInt(2),Id=BigInt(3),ME=BigInt(4);function Ky(r){let e=Fy(r),{Fp:t}=e,n=Yt(e.n,e.nBitLength),s=e.toBytes||((m,g,w)=>{let b=g.toAffine();return kt(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),o=e.fromBytes||(m=>{let g=m.subarray(1),w=t.fromBytes(g.subarray(0,t.BYTES)),b=t.fromBytes(g.subarray(t.BYTES,2*t.BYTES));return{x:w,y:b}});function i(m){let{a:g,b:w}=e,b=t.sqr(m),y=t.mul(b,m);return t.add(t.add(y,t.mul(m,g)),w)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return zn(m,ve,e.n)}function c(m){let{allowedPrivateKeyLengths:g,nByteLength:w,wrapPrivateKey:b,n:y}=e;if(g&&typeof m!="bigint"){if(jt(m)&&(m=Ct(m)),typeof m!="string"||!g.includes(m.length))throw new Error("invalid private key");m=m.padStart(w*2,"0")}let x;try{x=typeof m=="bigint"?m:It(ae("private key",m,w))}catch{throw new Error("invalid private key, expected hex or "+w+" bytes, got "+typeof m)}return b&&(x=ee(x,y)),qe("private key",x,ve,y),x}function u(m){if(!(m instanceof d))throw new Error("ProjectivePoint expected")}let f=yr((m,g)=>{let{px:w,py:b,pz:y}=m;if(t.eql(y,t.ONE))return{x:w,y:b};let x=m.is0();g==null&&(g=x?t.ONE:t.inv(y));let A=t.mul(w,g),_=t.mul(b,g),v=t.mul(y,g);if(x)return{x:t.ZERO,y:t.ZERO};if(!t.eql(v,t.ONE))throw new Error("invZ was invalid");return{x:A,y:_}}),l=yr(m=>{if(m.is0()){if(e.allowInfinityPoint&&!t.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:g,y:w}=m.toAffine();if(!t.isValid(g)||!t.isValid(w))throw new Error("bad point: x or y not FE");let b=t.sqr(w),y=i(g);if(!t.eql(b,y))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(g,w,b){if(this.px=g,this.py=w,this.pz=b,g==null||!t.isValid(g))throw new Error("x required");if(w==null||!t.isValid(w))throw new Error("y required");if(b==null||!t.isValid(b))throw new Error("z required");Object.freeze(this)}static fromAffine(g){let{x:w,y:b}=g||{};if(!g||!t.isValid(w)||!t.isValid(b))throw new Error("invalid affine point");if(g instanceof d)throw new Error("projective point not allowed");let y=x=>t.eql(x,t.ZERO);return y(w)&&y(b)?d.ZERO:new d(w,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let w=t.invertBatch(g.map(b=>b.pz));return g.map((b,y)=>b.toAffine(w[y])).map(d.fromAffine)}static fromHex(g){let w=d.fromAffine(o(ae("pointHex",g)));return w.assertValidity(),w}static fromPrivateKey(g){return d.BASE.multiply(c(g))}static msm(g,w){return po(d,n,g,w)}_setWindowSize(g){p.setWindowSize(this,g)}assertValidity(){l(this)}hasEvenY(){let{y:g}=this.toAffine();if(t.isOdd)return!t.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){u(g);let{px:w,py:b,pz:y}=this,{px:x,py:A,pz:_}=g,v=t.eql(t.mul(w,_),t.mul(x,y)),B=t.eql(t.mul(b,_),t.mul(A,y));return v&&B}negate(){return new d(this.px,t.neg(this.py),this.pz)}double(){let{a:g,b:w}=e,b=t.mul(w,Id),{px:y,py:x,pz:A}=this,_=t.ZERO,v=t.ZERO,B=t.ZERO,k=t.mul(y,y),J=t.mul(x,x),H=t.mul(A,A),V=t.mul(y,x);return V=t.add(V,V),B=t.mul(y,A),B=t.add(B,B),_=t.mul(g,B),v=t.mul(b,H),v=t.add(_,v),_=t.sub(J,v),v=t.add(J,v),v=t.mul(_,v),_=t.mul(V,_),B=t.mul(b,B),H=t.mul(g,H),V=t.sub(k,H),V=t.mul(g,V),V=t.add(V,B),B=t.add(k,k),k=t.add(B,k),k=t.add(k,H),k=t.mul(k,V),v=t.add(v,k),H=t.mul(x,A),H=t.add(H,H),k=t.mul(H,V),_=t.sub(_,k),B=t.mul(H,J),B=t.add(B,B),B=t.add(B,B),new d(_,v,B)}add(g){u(g);let{px:w,py:b,pz:y}=this,{px:x,py:A,pz:_}=g,v=t.ZERO,B=t.ZERO,k=t.ZERO,J=e.a,H=t.mul(e.b,Id),V=t.mul(w,x),D=t.mul(b,A),I=t.mul(y,_),N=t.add(w,b),S=t.add(x,A);N=t.mul(N,S),S=t.add(V,D),N=t.sub(N,S),S=t.add(w,y);let E=t.add(x,_);return S=t.mul(S,E),E=t.add(V,I),S=t.sub(S,E),E=t.add(b,y),v=t.add(A,_),E=t.mul(E,v),v=t.add(D,I),E=t.sub(E,v),k=t.mul(J,S),v=t.mul(H,I),k=t.add(v,k),v=t.sub(D,k),k=t.add(D,k),B=t.mul(v,k),D=t.add(V,V),D=t.add(D,V),I=t.mul(J,I),S=t.mul(H,S),D=t.add(D,I),I=t.sub(V,I),I=t.mul(J,I),S=t.add(S,I),V=t.mul(D,S),B=t.add(B,V),V=t.mul(E,S),v=t.mul(N,v),v=t.sub(v,V),V=t.mul(N,D),k=t.mul(E,k),k=t.add(k,V),new d(v,B,k)}subtract(g){return this.add(g.negate())}is0(){return this.equals(d.ZERO)}wNAF(g){return p.wNAFCached(this,g,d.normalizeZ)}multiplyUnsafe(g){let{endo:w,n:b}=e;qe("scalar",g,Ut,b);let y=d.ZERO;if(g===Ut)return y;if(this.is0()||g===ve)return this;if(!w||p.hasPrecomputes(this))return p.wNAFCachedUnsafe(this,g,d.normalizeZ);let{k1neg:x,k1:A,k2neg:_,k2:v}=w.splitScalar(g),B=y,k=y,J=this;for(;A>Ut||v>Ut;)A&ve&&(B=B.add(J)),v&ve&&(k=k.add(J)),J=J.double(),A>>=ve,v>>=ve;return x&&(B=B.negate()),_&&(k=k.negate()),k=new d(t.mul(k.px,w.beta),k.py,k.pz),B.add(k)}multiply(g){let{endo:w,n:b}=e;qe("scalar",g,ve,b);let y,x;if(w){let{k1neg:A,k1:_,k2neg:v,k2:B}=w.splitScalar(g),{p:k,f:J}=this.wNAF(_),{p:H,f:V}=this.wNAF(B);k=p.constTimeNegate(A,k),H=p.constTimeNegate(v,H),H=new d(t.mul(H.px,w.beta),H.py,H.pz),y=k.add(H),x=J.add(V)}else{let{p:A,f:_}=this.wNAF(g);y=A,x=_}return d.normalizeZ([y,x])[0]}multiplyAndAddUnsafe(g,w,b){let y=d.BASE,x=(_,v)=>v===Ut||v===ve||!_.equals(y)?_.multiplyUnsafe(v):_.multiply(v),A=x(this,w).add(x(g,b));return A.is0()?void 0:A}toAffine(g){return f(this,g)}isTorsionFree(){let{h:g,isTorsionFree:w}=e;if(g===ve)return!0;if(w)return w(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:w}=e;return g===ve?this:w?w(d,this):this.multiplyUnsafe(e.h)}toRawBytes(g=!0){return st("isCompressed",g),this.assertValidity(),s(d,this,g)}toHex(g=!0){return st("isCompressed",g),Ct(this.toRawBytes(g))}}d.BASE=new d(e.Gx,e.Gy,t.ONE),d.ZERO=new d(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,p=ho(d,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function qy(r){let e=Wn(r);return dt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function kd(r){let e=qy(r),{Fp:t,n}=e,s=t.BYTES+1,o=2*t.BYTES+1;function i(I){return ee(I,n)}function a(I){return uo(I,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:f,isWithinCurveOrder:l}=Ky({...e,toBytes(I,N,S){let E=N.toAffine(),C=t.toBytes(E.x),L=kt;return st("isCompressed",S),S?L(Uint8Array.from([N.hasEvenY()?2:3]),C):L(Uint8Array.from([4]),C,t.toBytes(E.y))},fromBytes(I){let N=I.length,S=I[0],E=I.subarray(1);if(N===s&&(S===2||S===3)){let C=It(E);if(!zn(C,ve,t.ORDER))throw new Error("Point is not on curve");let L=f(C),M;try{M=t.sqrt(L)}catch($){let O=$ instanceof Error?": "+$.message:"";throw new Error("Point is not on curve"+O)}let U=(M&ve)===ve;return(S&1)===1!==U&&(M=t.neg(M)),{x:C,y:M}}else if(N===o&&S===4){let C=t.fromBytes(E.subarray(0,t.BYTES)),L=t.fromBytes(E.subarray(t.BYTES,2*t.BYTES));return{x:C,y:L}}else{let C=s,L=o;throw new Error("invalid Point, expected length of "+C+", or uncompressed "+L+", got "+N)}}}),d=I=>Ct(Xt(I,e.nByteLength));function h(I){let N=n>>ve;return I>N}function p(I){return h(I)?i(-I):I}let m=(I,N,S)=>It(I.slice(N,S));class g{constructor(N,S,E){this.r=N,this.s=S,this.recovery=E,this.assertValidity()}static fromCompact(N){let S=e.nByteLength;return N=ae("compactSignature",N,S*2),new g(m(N,0,S),m(N,S,2*S))}static fromDER(N){let{r:S,s:E}=Mt.toSig(ae("DER",N));return new g(S,E)}assertValidity(){qe("r",this.r,ve,n),qe("s",this.s,ve,n)}addRecoveryBit(N){return new g(this.r,this.s,N)}recoverPublicKey(N){let{r:S,s:E,recovery:C}=this,L=_(ae("msgHash",N));if(C==null||![0,1,2,3].includes(C))throw new Error("recovery id invalid");let M=C===2||C===3?S+e.n:S;if(M>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let U=C&1?"03":"02",K=c.fromHex(U+d(M)),$=a(M),O=i(-L*$),Q=i(E*$),ne=c.BASE.multiplyAndAddUnsafe(K,O,Q);if(!ne)throw new Error("point at infinify");return ne.assertValidity(),ne}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return mr(this.toDERHex())}toDERHex(){return Mt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return mr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let w={isValidPrivateKey(I){try{return u(I),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let I=kc(e.n);return Qf(e.randomBytes(I),e.n)},precompute(I=8,N=c.BASE){return N._setWindowSize(I),N.multiply(BigInt(3)),N}};function b(I,N=!0){return c.fromPrivateKey(I).toRawBytes(N)}function y(I){let N=jt(I),S=typeof I=="string",E=(N||S)&&I.length;return N?E===s||E===o:S?E===2*s||E===2*o:I instanceof c}function x(I,N,S=!0){if(y(I))throw new Error("first arg must be private key");if(!y(N))throw new Error("second arg must be public key");return c.fromHex(N).multiply(u(I)).toRawBytes(S)}let A=e.bits2int||function(I){if(I.length>8192)throw new Error("input is too large");let N=It(I),S=I.length*8-e.nBitLength;return S>0?N>>BigInt(S):N},_=e.bits2int_modN||function(I){return i(A(I))},v=Gn(e.nBitLength);function B(I){return qe("num < 2^"+e.nBitLength,I,Ut,v),Xt(I,e.nByteLength)}function k(I,N,S=J){if(["recovered","canonical"].some(xe=>xe in S))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:C}=e,{lowS:L,prehash:M,extraEntropy:U}=S;L==null&&(L=!0),I=ae("msgHash",I),Cd(S),M&&(I=ae("prehashed msgHash",E(I)));let K=_(I),$=u(N),O=[B($),B(K)];if(U!=null&&U!==!1){let xe=U===!0?C(t.BYTES):U;O.push(ae("extraEntropy",xe))}let Q=kt(...O),ne=K;function be(xe){let Ee=A(xe);if(!l(Ee))return;let Be=a(Ee),Ke=c.BASE.multiply(Ee).toAffine(),De=i(Ke.x);if(De===Ut)return;let ht=i(Be*i(ne+De*$));if(ht===Ut)return;let xt=(Ke.x===De?0:2)|Number(Ke.y&ve),Mn=ht;return L&&h(ht)&&(Mn=p(ht),xt^=1),new g(De,Mn,xt)}return{seed:Q,k2sig:be}}let J={lowS:e.lowS,prehash:!1},H={lowS:e.lowS,prehash:!1};function V(I,N,S=J){let{seed:E,k2sig:C}=k(I,N,S),L=e;return _c(L.hash.outputLen,L.nByteLength,L.hmac)(E,C)}c.BASE._setWindowSize(8);function D(I,N,S,E=H){let C=I;N=ae("msgHash",N),S=ae("publicKey",S);let{lowS:L,prehash:M,format:U}=E;if(Cd(E),"strict"in E)throw new Error("options.strict was renamed to lowS");if(U!==void 0&&U!=="compact"&&U!=="der")throw new Error("format must be compact or der");let K=typeof C=="string"||jt(C),$=!K&&!U&&typeof C=="object"&&C!==null&&typeof C.r=="bigint"&&typeof C.s=="bigint";if(!K&&!$)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let O,Q;try{if($&&(O=new g(C.r,C.s)),K){try{U!=="compact"&&(O=g.fromDER(C))}catch(xt){if(!(xt instanceof Mt.Err))throw xt}!O&&U!=="der"&&(O=g.fromCompact(C))}Q=c.fromHex(S)}catch{return!1}if(!O||L&&O.hasHighS())return!1;M&&(N=e.hash(N));let{r:ne,s:be}=O,xe=_(N),Ee=a(be),Be=i(xe*Ee),Ke=i(ne*Ee),De=c.BASE.multiplyAndAddUnsafe(Q,Be,Ke)?.toAffine();return De?i(De.x)===ne:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:x,sign:V,verify:D,ProjectivePoint:c,Signature:g,utils:w}}function $y(r){return{hash:r,hmac:(e,...t)=>Ll(r,e,wc(...t)),randomBytes:oo}}function Td(r,e){let t=n=>kd({...r,...$y(n)});return Object.freeze({...t(e),create:t})}var Pd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ld=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),zy=BigInt(1),Nl=BigInt(2),Nd=(r,e)=>(r+e/Nl)/e;function Gy(r){let e=Pd,t=BigInt(3),n=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%e,f=u*u*r%e,l=ie(f,t,e)*f%e,d=ie(l,t,e)*f%e,h=ie(d,Nl,e)*u%e,p=ie(h,s,e)*h%e,m=ie(p,o,e)*p%e,g=ie(m,a,e)*m%e,w=ie(g,c,e)*g%e,b=ie(w,a,e)*m%e,y=ie(b,t,e)*f%e,x=ie(y,i,e)*p%e,A=ie(x,n,e)*u%e,_=ie(A,Nl,e);if(!Pl.eql(Pl.sqr(_),r))throw new Error("Cannot find square root");return _}var Pl=Yt(Pd,void 0,void 0,{sqrt:Gy}),Ye=Td({a:BigInt(0),b:BigInt(7),Fp:Pl,n:Ld,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Ld,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-zy*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=t,i=BigInt("0x100000000000000000000000000000000"),a=Nd(o*r,e),c=Nd(-n*r,e),u=ee(r-a*t-c*s,e),f=ee(-a*n-c*o,e),l=u>i,d=f>i;if(l&&(u=e-u),d&&(f=e-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:d,k2:f}}}},Bd),zE=BigInt(0);var GE=Ye.ProjectivePoint;function Ve(r,e){e==null&&(e=r.reduce((s,o)=>s+o.length,0));let t=Ce(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}function Dl(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Dd(r,e){let t=on.digest(e instanceof Uint8Array?e:e.subarray());if(Dl(t))return t.then(({digest:n})=>Ye.sign(n,r).toDERRawBytes()).catch(n=>{throw new cs(String(n))});try{return Ye.sign(t.digest,r).toDERRawBytes()}catch(n){throw new cs(String(n))}}function Rd(r,e,t){let n=on.digest(t instanceof Uint8Array?t:t.subarray());if(Dl(n))return n.then(({digest:s})=>Ye.verify(e,s,r)).catch(s=>{throw new ls(String(s))});try{return Ye.verify(e,n.digest,r)}catch(s){throw new ls(String(s))}}var hs=class{type="secp256k1";raw;_key;constructor(e){this._key=Od(e),this.raw=Md(this._key)}toMultihash(){return _t.digest(pt(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return X.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}verify(e,t){return Rd(this._key,t,e)}},xi=class{type="secp256k1";raw;publicKey;constructor(e,t){this.raw=Ud(e),this.publicKey=new hs(t??Fd(e))}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:ue(this.raw,e.raw)}sign(e){return Dd(this.raw,e)}};function Rl(r){return new hs(r)}async function Vd(){let r=Wy();return new xi(r)}function Md(r){return Ye.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Ud(r){try{return Ye.getPublicKey(r,!0),r}catch(e){throw new Un(String(e))}}function Od(r){try{return Ye.ProjectivePoint.fromHex(r),r}catch(e){throw new zr(String(e))}}function Fd(r){try{return Ye.getPublicKey(r,!0)}catch(e){throw new Un(String(e))}}function Wy(){return Ye.utils.randomPrivateKey()}async function Hd(r,e){if(r==="Ed25519")return uh();if(r==="secp256k1")return Vd();if(r==="RSA")return kl(e??2048);throw new $t}function mn(r){let{Type:e,Data:t}=mt.decode(r),n=t??new Uint8Array;switch(e){case ye.RSA:return Il(n);case ye.Ed25519:return Mc(n);case ye.secp256k1:return Rl(n);default:throw new $t}}function Kd(r){let{Type:e,Data:t}=mt.decode(r.digest),n=t??new Uint8Array;switch(e){case ye.Ed25519:return Mc(n);case ye.secp256k1:return Rl(n);default:throw new $t}}function pt(r){return mt.encode({Type:ye[r.type],Data:r.raw})}var qd=Symbol.for("nodejs.util.inspect.custom"),jy=114,ds=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[zs]=!0;toString(){return this.string==null&&(this.string=X.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return me.createV1(jy,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return ue(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return ue(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[qd](){return`PeerId(${this.toString()})`}},ps=class extends ds{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},ms=class extends ds{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},gs=class extends ds{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Zy=2336,ys=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=_t.digest(P(this.url))}[qd](){return`PeerId(${this.url})`}[zs]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return me.createV1(Zy,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=te(e)),e.toString()===this.toString())}};var Xy=114,$d=2336;function bt(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=rt(X.decode(`z${r}`));else{if(e==null)throw new R('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=rt(e.decode(r))}return gn(t)}function Ml(r){if(r.type==="Ed25519")return new ms({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new gs({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new ps({multihash:r.toCID().multihash,publicKey:r});throw new $t}function zd(r){return Ml(r.publicKey)}function gn(r){if(Jy(r))return new ps({multihash:r});if(Yy(r))try{let e=Kd(r);if(e.type==="Ed25519")return new ms({multihash:r,publicKey:e});if(e.type==="secp256k1")return new gs({multihash:r,publicKey:e})}catch{let t=te(r.digest);return new ys(new URL(t))}throw new Xs("Supplied PeerID Multihash is invalid")}function vi(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==Xy&&r.code!==$d)throw new Zs("Supplied PeerID CID is invalid");if(r.code===$d){let e=te(r.multihash.digest);return new ys(new URL(e))}return gn(r.multihash)}function Yy(r){return r.code===_t.code}function Jy(r){return r.code===on.code}var de=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Ol=hr(Wd(),1);var bs=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Fl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},jd=r=>globalThis.DOMException===void 0?new Fl(r):new DOMException(r),Zd=r=>{let e=r.reason===void 0?jd("This operation was aborted."):r.reason;return e instanceof Error?e:jd(e)};function xs(r,e){let{milliseconds:t,fallback:n,message:s,customTimers:o={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:d}=e;d.aborted&&f(Zd(d));let h=()=>{f(Zd(d))};d.addEventListener("abort",h,{once:!0}),r.finally(()=>{d.removeEventListener("abort",h)})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let l=new bs;i=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){f(d)}return}typeof r.cancel=="function"&&r.cancel(),s===!1?u():s instanceof Error?f(s):(l.message=s??`Promise timed out after ${t} milliseconds`,f(l))},t),(async()=>{try{u(await r)}catch(d){f(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,i),i=void 0},c}function Vl(r,e,t){let n=0,s=r.length;for(;s>0;){let o=Math.trunc(s/2),i=n+o;t(r[i],e)<=0?(n=++i,s-=o+1):s=o}return n}var vs=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 s=Vl(this.#e,n,(o,i)=>i.priority-o.priority);this.#e.splice(s,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 Ol.default{#e;#t;#o=0;#a;#c;#p=0;#n;#l;#r;#m;#s=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:vs,...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.#o<this.#a}get#x(){return this.#s<this.#u}#v(){this.#s--,this.#f(),this.emit("next")}#E(){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.#o=this.#e?this.#s:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},t)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#A;if(this.#b&&this.#x){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.#o===0&&this.#s===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#o=this.#e?this.#s: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#S(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,s)=>{this.#r.enqueue(async()=>{this.#s++,this.#o++;try{t.signal?.throwIfAborted();let o=e({signal:t.signal});t.timeout&&(o=xs(Promise.resolve(o),{milliseconds:t.timeout})),t.signal&&(o=Promise.race([o,this.#S(t.signal)]));let i=await o;n(i),this.emit("completed",i)}catch(o){if(o instanceof bs&&!t.throwOnTimeout){n();return}s(o),this.emit("error",o)}finally{this.#v()}},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.#s===0&&this.#r.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let s=()=>{t&&!t()||(this.off(e,s),n())};this.on(e,s)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#s}get isPaused(){return this.#i}};function Ai(r){let e=[Ze.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Hl=60;function Si(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:Ze[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Ze[e.type],TTL:e.TTL??e.ttl??Hl,data:e.data instanceof Uint8Array?te(e.data):e.data}))}}var tw=4;function Kl(r,e={}){let t=new ir({concurrency:e.queryConcurrency??tw});return async(n,s={})=>{let o=new URLSearchParams;o.set("name",n),Ai(s.types).forEach(a=>{o.append("type",Ze[a])}),s.onProgress?.(new de("dns:query",{detail:n}));let i=await t.add(async()=>{let a=await fetch(`${r}?${o}`,{headers:{accept:"application/dns-json"},signal:s?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=Si(await a.json());return s.onProgress?.(new de("dns:response",{detail:c})),c},{signal:s.signal});if(i==null)throw new Error("No DNS response received");return i}}function Xd(){return[Kl("https://cloudflare-dns.com/dns-query"),Kl("https://dns.google/resolve")]}var Qd=hr(Jd(),1);var ql=class{lru;constructor(e){this.lru=(0,Qd.default)(e)}get(e,t){let n=!0,s=[];for(let o of t){let i=this.getAnswers(e,o);if(i.length===0){n=!1;break}s.push(...i)}if(n)return Si({answers:s})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,s=this.lru.get(n);if(s!=null){let o=s.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:Ze[a.type]}));return o.length===0&&this.lru.remove(n),o}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,s=this.lru.get(n)??[];s.push({expires:Date.now()+(t.TTL??Hl)*1e3,value:t}),this.lru.set(n,s)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function ep(r){return new ql(r)}var rw=1e3,_i=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=ep(e.cacheSize??rw),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["."]=Xd())}async query(e,t={}){let n=Ai(t.types),s=t.cached!==!1?this.cache.get(e,n):void 0;if(s!=null)return t.onProgress?.(new de("dns:cache",{detail:s})),s;let o=`${e.split(".").pop()}.`,i=(this.resolvers[o]??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 de("dns:error",{detail:u}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Ze;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Ze||(Ze={}));function tp(r={}){return new _i(r)}var Bi=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,s){return this.readAtomically(()=>{let o=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let d=Number.parseInt(l,e);if(!Number.isNaN(d))return d});if(f===void 0)break;if(o*=e,o+=f,o>u||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:o})}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 s=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[s]=i[0],t[s+1]=i[1],t[s+2]=i[2],t[s+3]=i[3],[s+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[s,!1];t[s]=o>>8,t[s+1]=o&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,s]=e(t);if(n===16)return t;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),i=16-(n+2),[a]=e(o.subarray(0,i));return t.set(o.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var rp=45,nw=15,yn=new Bi;function Ci(r){if(!(r.length>nw))return yn.new(r).parseWith(()=>yn.readIPv4Addr())}function Ii(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rp))return yn.new(r).parseWith(()=>yn.readIPv6Addr())}function _r(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rp))return yn.new(r).parseWith(()=>yn.readIPAddr())}function np(r,e,t){let n=0;for(let s of r)if(!(n<e)){if(n>t)break;if(s!==255)return!1;n++}return!0}function sp(r,e,t,n){let s=0;for(let o of r)if(!(s<t)){if(s>n)break;if(o!==e[s])return!1;s++}return!0}function $l(r){switch(r.length){case Br:return r.join(".");case Cr:{let e=[];for(let t=0;t<r.length;t++)t%2===0&&e.push(r[t].toString(16).padStart(2,"0")+r[t+1].toString(16).padStart(2,"0"));return e.join(":")}default:throw new Error("Invalid ip length")}}function op(r){let e=0;for(let[t,n]of r.entries()){if(n===255){e+=8;continue}for(;n&128;)e++,n=n<<1;if(n&128)return-1;for(let s=t+1;s<r.length;s++)if(r[s]!=0)return-1;break}return e}function ip(r){let e="0x";for(let t of r)e+=(t>>4).toString(16)+(t&15).toString(16);return e}var Br=4,Cr=16,NS=parseInt("0xFFFF",16),sw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Es(r,e){e.length===Cr&&r.length===Br&&np(e,0,11)&&(e=e.slice(12)),e.length===Br&&r.length===Cr&&sp(r,sw,0,11)&&(r=r.slice(12));let t=r.length;if(t!=e.length)throw new Error("Failed to mask ip");let n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=r[s]&e[s];return n}function ap(r,e){if(typeof e=="string"&&(e=_r(e)),e==null)throw new Error("Invalid ip");if(e.length!==r.network.length)return!1;for(let t=0;t<e.length;t++)if((r.network[t]&r.mask[t])!==(e[t]&r.mask[t]))return!1;return!0}function zl(r){let[e,t]=r.split("/");if(!e||!t)throw new Error("Failed to parse given CIDR: "+r);let n=Br,s=Ci(e);if(s==null&&(n=Cr,s=Ii(e),s==null))throw new Error("Failed to parse given CIDR: "+r);let o=parseInt(t,10);if(Number.isNaN(o)||String(o).length!==t.length||o<0||o>n*8)throw new Error("Failed to parse given CIDR: "+r);let i=Gl(o,8*n);return{network:Es(s,i),mask:i}}function Gl(r,e){if(e!==8*Br&&e!==8*Cr)throw new Error("Invalid CIDR mask");if(r<0||r>e)throw new Error("Invalid CIDR mask");let t=e/8,n=new Uint8Array(t);for(let s=0;s<t;s++){if(r>=8){n[s]=255,r-=8;continue}n[s]=255-(255>>r),r=0}return n}var wn=class{constructor(e,t){if(t==null)({network:this.network,mask:this.mask}=zl(e));else{let n=_r(e);if(n==null)throw new Error("Failed to parse network");t=String(t);let s=parseInt(t,10);if(Number.isNaN(s)||String(s).length!==t.length||s<0||s>n.length*8){let o=_r(t);if(o==null)throw new Error("Failed to parse mask");this.mask=o}else this.mask=Gl(s,8*n.length);this.network=Es(n,this.mask)}}contains(e){return ap({network:this.network,mask:this.mask},e)}toString(){let e=op(this.mask),t=e!==-1?String(e):ip(this.mask);return $l(this.network)+"/"+t}};function ut(r){return!!Ci(r)}function bn(r){return!!Ii(r)}function ki(r){return!!_r(r)}var cp=ut,ow=bn,Wl=function(r){let e=0;if(r=r.toString().trim(),cp(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(ow(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let o=cp(t[n]),i;o&&(i=Wl(t[n]),t[n]=te(i.slice(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,te(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 o=[n,1];for(n=9-t.length;n>0;n--)o.push("0");t.splice.apply(t,o)}let s=new Uint8Array(e+16);for(n=0;n<t.length;n++){let o=parseInt(t[n],16);s[e++]=o>>8&255,s[e++]=o&255}return s}throw new Error("invalid ip address")},lp=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let s=[];for(let o=0;o<t;o++)s.push(r[e+o]);return s.join(".")}if(t===16){let s=[];for(let o=0;o<t;o+=2)s.push(n.getUint16(e+o).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xn={},jl={},aw=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];aw.forEach(r=>{let e=cw(...r);jl[e.code]=e,xn[e.name]=e});function cw(r,e,t,n,s){return{code:r,size:e,name:t,resolvable:!!n,path:!!s}}function W(r){if(typeof r=="number"){if(jl[r]!=null)return jl[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(xn[r]!=null)return xn[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var lw=W("ip4"),uw=W("ip6"),fw=W("ipcidr");function Jl(r,e){switch(W(r).code){case 4:case 41:return dw(e);case 42:return Yl(e);case 43:return te(e,"base10");case 6:case 273:case 33:case 132:return hp(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Yl(e);case 421:return yw(e);case 444:return fp(e);case 445:return fp(e);case 466:return gw(e);case 481:return globalThis.encodeURIComponent(Yl(e));default:return te(e,"base16")}}function Ql(r,e){switch(W(r).code){case 4:return up(e);case 41:return up(e);case 42:return Xl(e);case 43:return P(e,"base10");case 6:case 273:case 33:case 132:return tu(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Xl(e);case 421:return pw(e);case 444:return ww(e);case 445:return bw(e);case 466:return mw(e);case 481:return Xl(globalThis.decodeURIComponent(e));default:return P(e,"base16")}}function eu(r){let e,t;if(r.stringTuples().forEach(([n,s])=>{(n===lw.code||n===uw.code)&&(t=s),n===fw.code&&(e=s)}),e==null||t==null)throw new Error("Invalid multiaddr");return new wn(t,e)}var Zl=Object.values(Xn).map(r=>r.decoder),hw=function(){let r=Zl[0].or(Zl[1]);return Zl.slice(2).forEach(e=>r=r.or(e)),r}();function up(r){if(!ki(r))throw new Error("invalid ip address");return Wl(r)}function dw(r){let e=lp(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!ki(e))throw new Error("invalid ip address");return e}function tu(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function hp(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Xl(r){let e=P(r),t=Uint8Array.from(ke(e.length));return Ve([t,e],t.length+e.length)}function Yl(r){let e=it(r);if(r=r.slice(pe(e)),r.length!==e)throw new Error("inconsistent lengths");return te(r)}function pw(r){let e;r[0]==="Q"||r[0]==="1"?e=rt(X.decode(`z${r}`)).bytes:e=me.parse(r).multihash.bytes;let t=Uint8Array.from(ke(e.length));return Ve([t,e],t.length+e.length)}function mw(r){let e=hw.decode(r),t=Uint8Array.from(ke(e.length));return Ve([t,e],t.length+e.length)}function gw(r){let e=it(r),t=r.slice(pe(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+te(t,"base64url")}function yw(r){let e=it(r),t=r.slice(pe(e));if(t.length!==e)throw new Error("inconsistent lengths");return te(t,"base58btc")}function ww(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=We.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 s=tu(n);return Ve([t,s],t.length+s.length)}function bw(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=We.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 s=tu(n);return Ve([t,s],t.length+s.length)}function fp(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=te(e,"base32"),s=hp(t);return`${n}:${s}`}function dp(r){r=ru(r);let e=[],t=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<s.length;o++){let i=s[o],a=W(i);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(o++,o>=s.length)throw mp("invalid address: "+r);if(a.path===!0){n=ru(s.slice(o).join("/")),e.push([a.code,Ql(a.code,n)]),t.push([a.code,n]);break}let c=Ql(a.code,s[o]);e.push([a.code,c]),t.push([a.code,Jl(a.code,c)])}return{string:pp(t),bytes:su(e),tuples:e,stringTuples:t,path:n}}function nu(r){let e=[],t=[],n=null,s=0;for(;s<r.length;){let o=it(r,s),i=pe(o),a=W(o),c=xw(a,r.slice(s+i));if(c===0){e.push([o]),t.push([o]),s+=i;continue}let u=r.slice(s+i,s+i+c);if(s+=c+i,s>r.length)throw mp("Invalid address Uint8Array: "+te(r,"base16"));e.push([o,u]);let f=Jl(o,u);if(t.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:pp(t),tuples:e,stringTuples:t,path:n}}function pp(r){let e=[];return r.map(t=>{let n=W(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),ru(e.join("/"))}function su(r){return Ve(r.map(e=>{let t=W(e[0]),n=Uint8Array.from(ke(t.code));return e.length>1&&e[1]!=null&&(n=Ve([n,e[1]])),n}))}function xw(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 ru(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function mp(r){return new Error("Error parsing address: "+r)}var vw=Symbol.for("nodejs.util.inspect.custom"),iu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Ew=[W("dns").code,W("dns4").code,W("dns6").code,W("dnsaddr").code],ou=class extends Error{constructor(e="No available resolver"){super(e),this.name="NoAvailableResolverError"}},Ti=class r{bytes;#e;#t;#o;#a;[iu]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=nu(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=dp(e)}else if(ar(e))t=nu(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.#o=t.stringTuples,this.#a=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,s,o="",i=W("tcp"),a=W("udp"),c=W("ip4"),u=W("ip6"),f=W("dns6"),l=W("ip6zone");for(let[h,p]of this.stringTuples())h===l.code&&(o=`%${p??""}`),Ew.includes(h)&&(t=i.name,s=443,n=`${p??""}${o}`,e=h===f.code?6:4),(h===i.code||h===a.code)&&(t=W(h).name,s=parseInt(p??"")),(h===c.code||h===u.code)&&(t=W(h).name,n=`${p??""}${o}`,e=h===u.code?6:4);if(e==null||t==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:s}}protos(){return this.#t.map(([e])=>Object.assign({},W(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>W(e).name)}tuples(){return this.#t.map(([e,t])=>t==null?[e]:[e,t])}stringTuples(){return this.#o.map(([e,t])=>t==null?[e]:[e,t])}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),s=n.lastIndexOf(t);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,s))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(su(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,s])=>{n===xn.p2p.code&&e.push([n,s]),n===xn["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?te(X.decode(`z${n}`),"base58btc"):te(me.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return ue(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(o=>o.resolvable);if(t==null)return[this];let n=vn.get(t.name);if(n==null)throw new ou(`no available resolver for ${t.name}`);return(await n(this,e)).map(o=>j(o))}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)}[vw](){return`Multiaddr(${this.#e})`}};var vn=new Map;function ar(r){return!!r?.[iu]}function j(r){return new Ti(r)}var Aw=32,{code:Sw}=W("dnsaddr"),au=class extends Error{constructor(e="Max recursive depth reached"){super(e),this.name="RecursionLimitError"}},Ir=async function(e,t={}){let n=t.maxRecursiveDepth??Aw;if(n===0)throw new au("Max recursive depth reached");let[,s]=e.stringTuples().find(([u])=>u===Sw)??[],i=await(t?.dns??tp()).query(`_dnsaddr.${s}`,{signal:t?.signal,types:[Ze.TXT]}),a=e.getPeerId(),c=[];for(let u of i.Answer){let f=u.data.replace(/["']/g,"").trim().split("=")[1];if(f==null||a!=null&&!f.includes(a))continue;let l=j(f);if(f.startsWith("/dnsaddr")){let d=await l.resolve({...t,maxRecursiveDepth:n-1});c.push(...d.map(h=>h.toString()))}else c.push(l.toString())}return c};var Sp=hr(Ap(),1),Pi=Sp.default;var Tw={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{resolvers:{dnsaddr:Ir}},transportManager:{faultTolerance:Kt.FATAL_ALL}};async function _p(r){let e=Pi(Tw,r);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new R("Private network is enforced, but no protector was provided");return e}function Lw(r,e){try{if(typeof r=="string"&&r.length>0)return Nw(r);if(typeof r=="number"&&isFinite(r))return e?.long?Dw(r):Pw(r);throw new Error("Value is not a string or number.")}catch(t){let n=Rw(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Nw(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let 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)return NaN;let t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*315576e5;case"weeks":case"week":case"w":return t*6048e5;case"days":case"day":case"d":return t*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return t*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return t*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return t*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var Ri=Lw;function Pw(r){let e=Math.abs(r);return e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Dw(r){let e=Math.abs(r);return e>=864e5?Di(r,e,864e5,"day"):e>=36e5?Di(r,e,36e5,"hour"):e>=6e4?Di(r,e,6e4,"minute"):e>=1e3?Di(r,e,1e3,"second"):`${r} ms`}function Di(r,e,t,n){let s=e>=t*1.5;return`${Math.round(r/t)} ${n}${s?"s":""}`}function Rw(r){return typeof r=="object"&&r!==null&&"message"in r}function lu(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=s,t.enabled=i,t.humanize=Ri,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 d=0;d<f.length;d++)l=(l<<5)-l+f.charCodeAt(d),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(f){let l,d=null,h,p;function m(...g){if(!m.enabled)return;let w=m,b=Number(new Date),y=b-(l||b);w.diff=y,w.prev=l,w.curr=b,l=b,g[0]=t.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let x=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(_,v)=>{if(_==="%%")return"%";x++;let B=t.formatters[v];if(typeof B=="function"){let k=g[x];_=B.call(w,k),g.splice(x,1),x--}return _}),t.formatArgs.call(w,g),(w.log||t.log).apply(w,g)}return m.namespace=f,m.useColors=t.useColors(),m.color=t.selectColor(f),m.extend=n,m.destroy=t.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==t.namespaces&&(h=t.namespaces,p=t.enabled(f)),p),set:g=>{d=g}}),typeof t.init=="function"&&t.init(m),m}function n(f,l){let d=t(this.namespace+(typeof l>"u"?":":l)+f);return d.log=this.log,d}function s(f){t.save(f),t.namespaces=f,t.names=[],t.skips=[];let l,d=(typeof f=="string"?f:"").split(/[\s,]+/),h=d.length;for(l=0;l<h;l++)d[l]&&(f=d[l].replace(/\*/g,".*?"),f[0]==="-"?t.skips.push(new RegExp("^"+f.substr(1)+"$")):t.names.push(new RegExp("^"+f+"$")))}function o(){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,d;for(l=0,d=t.skips.length;l<d;l++)if(t.skips[l].test(f))return!1;for(l=0,d=t.names.length;l<d;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.setupFormatters(t.formatters),t.enable(t.load()),t}var Mi=Kw(),Mw=["#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 Uw(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function Ow(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ri(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,s=>{s!=="%%"&&(t++,s==="%c"&&(n=t))}),r.splice(n,0,e)}var Fw=console.debug??console.log??(()=>{});function Vw(r){try{r?Mi?.setItem("debug",r):Mi?.removeItem("debug")}catch{}}function Hw(){let r;try{r=Mi?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function Kw(){try{return localStorage}catch{}}function qw(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var Bp=lu({formatArgs:Ow,save:Vw,load:Hw,useColors:Uw,setupFormatters:qw,colors:Mw,storage:Mi,log:Fw});var Ge=Bp;Ge.formatters.b=r=>r==null?"undefined":X.baseEncode(r);Ge.formatters.t=r=>r==null?"undefined":We.baseEncode(r);Ge.formatters.m=r=>r==null?"undefined":Jc.baseEncode(r);Ge.formatters.p=r=>r==null?"undefined":r.toString();Ge.formatters.c=r=>r==null?"undefined":r.toString();Ge.formatters.k=r=>r==null?"undefined":r.toString();Ge.formatters.a=r=>r==null?"undefined":r.toString();Ge.formatters.e=r=>r==null?"undefined":Cp(r.stack)??Cp(r.message)??r.toString();function $w(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 Ui(){return{forComponent(r){return zw(r)}}}function zw(r){let e=$w(`${r}:trace`);return Ge.enabled(`${r}:trace`)&&Ge.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=Ge(`${r}:trace`)),Object.assign(Ge(r),{error:Ge(`${r}:error`),trace:e})}function Cp(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}function kr(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:e(s)}}};return t}function Oi(r){let e=rt(X.decode(`z${r}`));return gn(e)}var Ot=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),{key:t,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return kr(this.map.entries(),e=>[e[1].key,e[1].value])}forEach(e){this.map.forEach((t,n)=>{e(t.value,t.key,this)})}get(e){return this.map.get(e.toString())?.value}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),{key:e,value:t})}keys(){return kr(this.map.values(),e=>e.key)}values(){return kr(this.map.values(),e=>e.value)}get size(){return this.map.size}};var Tr=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 kr(this.set.entries(),e=>{let t=Oi(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=Oi(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return kr(this.set.values(),e=>Oi(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 Np=Symbol.for("@achingbrain/uint8arraylist");function Lp(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let s=t+n.byteLength;if(e<s)return{buf:n,index:e-t};t=s}throw new RangeError("index is out of bounds")}function Vi(r){return!!r?.[Np]}var we=class r{bufs;length;[Np]=!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(Vi(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(Vi(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=Lp(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Lp(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(Vi(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:s}=this._subList(e,t);return Ve(n,s)}subarray(e,t){let{bufs:n,length:s}=this._subList(e,t);return n.length===1?n[0]:Ve(n,s)}sublist(e,t){let{bufs:n,length:s}=this._subList(e,t),o=new r;return o.length=s,o.bufs=[...n],o}_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=[],s=0;for(let o=0;o<this.bufs.length;o++){let i=this.bufs[o],a=s,c=a+i.byteLength;if(s=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(!Vi(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 s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let o=256,i=new Int32Array(o);for(let l=0;l<o;l++)i[l]=-1;for(let l=0;l<s;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 d=u;d>=0;d--){let h=this.get(l+d);if(n[d]!==h){f=Math.max(1,d-a[h]);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=Ce(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 s=fe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,t,n),this.write(s,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 s=fe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,t,n),this.write(s,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 s=fe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,t,n),this.write(s,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=Ce(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 s=fe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,t,n),this.write(s,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 s=fe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,t,n),this.write(s,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 s=fe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,t,n),this.write(s,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 s=fe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,t,n),this.write(s,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 s=fe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,t,n),this.write(s,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(!ue(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((s,o)=>s+o.byteLength,0)),n.length=t,n}};var uu=64,ft=class{fp;h;seed;constructor(e,t,n,s=2){if(s>uu)throw new TypeError("Invalid Fingerprint Size");let o=t.hashV(e,n),i=fe(s);for(let a=0;a<i.length;a++)i[a]=o[a];i.length===0&&(i[0]=7),this.fp=i,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?ue(this.fp,e.fp):!1}};function Lr(r,e){return Math.floor(Math.random()*(e-r))+r}var Nr=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof ft))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof ft))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof ft))throw new TypeError("Invalid Fingerprint");let t=Lr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof ft))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var fu={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Pp={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Dp=new globalThis.TextEncoder;function Gw(r,e){let t=fu[e],n=Pp[e];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(e,n*t);return n}function Ww(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=fu[e],s=Pp[e],o=r;for(;o.length>0;){let i=Dp.encodeInto(o,t);o=o.slice(i.read);for(let a=0;a<i.written;a++)s^=BigInt(t[a]),s=BigInt.asUintN(e,s*n)}return s}function hu(r,{size:e=32,utf8Buffer:t}={}){if(!fu[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return Ww(r,e,t);r=Dp.encode(r)}return Gw(r,e)}var jw=hr(Tp(),1);var Ss={hash:r=>Number(hu(r,{size:32})),hashV:(r,e)=>Zw(Ss.hash(r,e))};function Zw(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),P(e,"base16")}var Xw=500,_s=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??Ss,this.seed=e.seed??Lr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=P(e));let t=new ft(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new Nr(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new Nr(this.bucketSize)),this.buckets[n].add(t)||this.buckets[s].add(t))return this.count++,!0;let o=[n,s],i=o[Lr(0,o.length-1)];this.buckets[i]==null&&(this.buckets[i]=new Nr(this.bucketSize));for(let a=0;a<Xw;a++){let c=this.buckets[i].swap(t);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new Nr(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=P(e));let t=new ft(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.has(t)??!1;if(s)return s;let o=(n^t.hash())%this.filterSize;return this.buckets[o]?.has(t)??!1}remove(e){typeof e=="string"&&(e=P(e));let t=new ft(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.remove(t)??!1;if(s)return this.count--,s;let o=(n^t.hash())%this.filterSize,i=this.buckets[o]?.remove(t)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Yw={1:.5,2:.84,4:.95,8:.98};function Jw(r=.001){return r>.002?2:r>1e-5?4:8}function Rp(r,e=.001){let t=Jw(e),n=Yw[t],s=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),uu);return{filterSize:s,bucketSize:t,fingerprintSize:o}}var Hi=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??Ss,this.seed=e.seed??Lr(0,Math.pow(2,10)),this.filterSeries=[new _s({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=P(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new _s({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=P(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=P(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Bs(r,e=.001,t){return new Hi({...Rp(r,e),...t??{}})}var Cs;(function(r){let e;r.codec=()=>(e==null&&(e=Oe((t,n,s={})=>{s.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)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let o={publicKey:fe(0),payloadType:fe(0),payload:fe(0),signature:fe(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>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(a&7);break}}}return o})),e),r.encode=t=>Ue(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Cs||(Cs={}));var Ki=class extends Error{constructor(e="Invalid signature"){super(e),this.name="InvalidSignatureError"}};var Sn=class r{static createFromProtobuf=async e=>{let t=Cs.decode(e),n=mn(t.publicKey);return new r({publicKey:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t==null)throw new Error("Missing private key");let n=e.domain,s=e.codec,o=e.marshal(),i=Mp(n,s,o),a=await t.sign(i.subarray());return new r({publicKey:t.publicKey,payloadType:s,payload:o,signature:a})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new Ki("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(e){let{publicKey:t,payloadType:n,payload:s,signature:o}=e;this.publicKey=t,this.payloadType=n,this.payload=s,this.signature=o}marshal(){return this.marshaled==null&&(this.marshaled=Cs.encode({publicKey:pt(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return ue(this.marshal(),e.marshal())}async validate(e){let t=Mp(e,this.payloadType,this.payload);return this.publicKey.verify(t.subarray(),this.signature)}},Mp=(r,e,t)=>{let n=P(r),s=ke(n.byteLength),o=ke(e.length),i=ke(t.length);return new we(s,n,o,e,i,t)};function Up(r,e){let t=(n,s)=>n.toString().localeCompare(s.toString());return r.length!==e.length?!1:(e.sort(t),r.sort(t).every((n,s)=>e[s].equals(n)))}var Op="libp2p-peer-record",Fp=Uint8Array.from([3,1]);var Is;(function(r){let e;(function(n){let s;n.codec=()=>(s==null&&(s=Oe((o,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),o.multiaddr!=null&&o.multiaddr.byteLength>0&&(i.uint32(10),i.bytes(o.multiaddr)),a.lengthDelimited!==!1&&i.ldelim()},(o,i,a={})=>{let c={multiaddr:fe(0)},u=i==null?o.len:o.pos+i;for(;o.pos<u;){let f=o.uint32();switch(f>>>3){case 1:{c.multiaddr=o.bytes();break}default:{o.skipType(f&7);break}}}return c})),s),n.encode=o=>Ue(o,n.codec()),n.decode=(o,i)=>Me(o,n.codec(),i)})(e=r.AddressInfo||(r.AddressInfo={}));let t;r.codec=()=>(t==null&&(t=Oe((n,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(s.uint32(10),s.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(s.uint32(16),s.uint64(n.seq)),n.addresses!=null)for(let i of n.addresses)s.uint32(26),r.AddressInfo.codec().encode(i,s);o.lengthDelimited!==!1&&s.ldelim()},(n,s,o={})=>{let i={peerId:fe(0),seq:0n,addresses:[]},a=s==null?n.len:n.pos+s;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{i.peerId=n.bytes();break}case 2:{i.seq=n.uint64();break}case 3:{if(o.limits?.addresses!=null&&i.addresses.length===o.limits.addresses)throw new Er('Decode error - map field "addresses" had too many elements');i.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:o.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return i})),t),r.encode=n=>Ue(n,r.codec()),r.decode=(n,s)=>Me(n,r.codec(),s)})(Is||(Is={}));var Pr=class r{static createFromProtobuf=e=>{let t=Is.decode(e),n=gn(rt(t.peerId)),s=(t.addresses??[]).map(i=>j(i.multiaddr)),o=t.seq;return new r({peerId:n,multiaddrs:s,seqNumber:o})};static DOMAIN=Op;static CODEC=Fp;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(e){let{peerId:t,multiaddrs:n,seqNumber:s}=e;this.peerId=t,this.multiaddrs=n??[],this.seqNumber=s??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Is.encode({peerId:this.peerId.toMultihash().bytes,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||!Up(this.multiaddrs,e.multiaddrs))}};function Qw(r){return r[Symbol.asyncIterator]!=null}function eb(r){if(Qw(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 ks=eb;var cr={},_n=r=>{r.addEventListener("message",e=>{_n.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{_n.dispatchEvent("message",r,e)})};_n.addEventListener=(r,e)=>{cr[r]==null&&(cr[r]=[]),cr[r].push(e)};_n.removeEventListener=(r,e)=>{cr[r]!=null&&(cr[r]=cr[r].filter(t=>t===e))};_n.dispatchEvent=function(r,e,t){cr[r]!=null&&cr[r].forEach(n=>n(e,t))};var du=_n;var pu="lock:worker:request-read",mu="lock:worker:release-read",gu="lock:master:grant-read",yu="lock:worker:request-write",wu="lock:worker:release-write",bu="lock:master:grant-write";var Vp=(r=21)=>Math.random().toString().substring(2);var Hp=(r,e,t,n,s)=>(o,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()=>{o.postMessage({type:s,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=f=>{if(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&&(o.removeEventListener("message",u),c())};o.addEventListener("message",u)})}}}))},Kp=(r,e,t,n)=>async()=>{let s=Vp();return globalThis.postMessage({type:e,identifier:s,name:r}),new Promise(o=>{let i=a=>{if(a?.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===s&&(globalThis.removeEventListener("message",i),o(()=>{globalThis.postMessage({type:n,identifier:s,name:r})}))};globalThis.addEventListener("message",i)})},tb={singleProcess:!1},qp=r=>{if(r=Object.assign({},tb,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return du.addEventListener("message",Hp(t,"requestReadLock",pu,mu,gu)),du.addEventListener("message",Hp(t,"requestWriteLock",yu,wu,bu)),t}return{isWorker:!0,readLock:t=>Kp(t,pu,gu,mu),writeLock:t=>Kp(t,yu,bu,wu)}};var Dr={},lr;async function xu(r,e){let t,n=new Promise(s=>{t=s});return r.add(async()=>xs((async()=>{await new Promise(s=>{t(()=>{s()})})})(),{milliseconds:e.timeout})),n}var rb=(r,e)=>{if(lr.isWorker===!0)return{readLock:lr.readLock(r,e),writeLock:lr.writeLock(r,e)};let t=new ir({concurrency:1}),n;return{async readLock(){if(n!=null)return xu(n,e);n=new ir({concurrency:e.concurrency,autoStart:!1});let s=n,o=xu(n,e);return t.add(async()=>{s.start(),await s.onIdle().then(()=>{n===s&&(n=null)})}),o},async writeLock(){return n=null,xu(t,e)}}},nb={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function vu(r){let e=Object.assign({},nb,r);return lr==null&&(lr=qp(e),lr.isWorker!==!0&&(lr.addEventListener("requestReadLock",t=>{Dr[t.data.name]!=null&&Dr[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),lr.addEventListener("requestWriteLock",async t=>{Dr[t.data.name]!=null&&Dr[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Dr[e.name]==null&&(Dr[e.name]=rb(e.name,e)),Dr[e.name]}var Bn;(function(r){let e;(function(s){let o;s.codec=()=>(o==null&&(o=Oe((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,c={})=>{let u={key:"",value:fe(0)},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{u.key=i.string();break}case 2:{u.value=i.bytes();break}default:{i.skipType(l&7);break}}}return u})),o),s.encode=i=>Ue(i,s.codec()),s.decode=(i,a)=>Me(i,s.codec(),a)})(e=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let t;(function(s){let o;s.codec=()=>(o==null&&(o=Oe((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),$i.codec().encode(i.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(i,a,c={})=>{let u={key:""},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{u.key=i.string();break}case 2:{u.value=$i.codec().decode(i,i.uint32(),{limits:c.limits?.value});break}default:{i.skipType(l&7);break}}}return u})),o),s.encode=i=>Ue(i,s.codec()),s.decode=(i,a)=>Me(i,s.codec(),a)})(t=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Oe((s,o,i={})=>{if(i.lengthDelimited!==!1&&o.fork(),s.addresses!=null)for(let a of s.addresses)o.uint32(10),qi.codec().encode(a,o);if(s.protocols!=null)for(let a of s.protocols)o.uint32(18),o.string(a);if(s.publicKey!=null&&(o.uint32(34),o.bytes(s.publicKey)),s.peerRecordEnvelope!=null&&(o.uint32(42),o.bytes(s.peerRecordEnvelope)),s.metadata!=null&&s.metadata.size!==0)for(let[a,c]of s.metadata.entries())o.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},o);if(s.tags!=null&&s.tags.size!==0)for(let[a,c]of s.tags.entries())o.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},o);i.lengthDelimited!==!1&&o.ldelim()},(s,o,i={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:{if(i.limits?.addresses!=null&&a.addresses.length===i.limits.addresses)throw new Er('Decode error - map field "addresses" had too many elements');a.addresses.push(qi.codec().decode(s,s.uint32(),{limits:i.limits?.addresses$}));break}case 2:{if(i.limits?.protocols!=null&&a.protocols.length===i.limits.protocols)throw new Er('Decode error - map field "protocols" had too many elements');a.protocols.push(s.string());break}case 4:{a.publicKey=s.bytes();break}case 5:{a.peerRecordEnvelope=s.bytes();break}case 6:{if(i.limits?.metadata!=null&&a.metadata.size===i.limits.metadata)throw new Qn('Decode error - map field "metadata" had too many elements');let f=r.Peer$metadataEntry.codec().decode(s,s.uint32());a.metadata.set(f.key,f.value);break}case 7:{if(i.limits?.tags!=null&&a.tags.size===i.limits.tags)throw new Qn('Decode error - map field "tags" had too many elements');let f=r.Peer$tagsEntry.codec().decode(s,s.uint32(),{limits:{value:i.limits?.tags$value}});a.tags.set(f.key,f.value);break}default:{s.skipType(u&7);break}}}return a})),n),r.encode=s=>Ue(s,r.codec()),r.decode=(s,o)=>Me(s,r.codec(),o)})(Bn||(Bn={}));var qi;(function(r){let e;r.codec=()=>(e==null&&(e=Oe((t,n,s={})=>{s.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)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let o={multiaddr:fe(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{o.multiaddr=t.bytes();break}case 2:{o.isCertified=t.bool();break}default:{t.skipType(a&7);break}}}return o})),e),r.encode=t=>Ue(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(qi||(qi={}));var $i;(function(r){let e;r.codec=()=>(e==null&&(e=Oe((t,n,s={})=>{s.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)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let o={value:0},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{o.value=t.uint32();break}case 2:{o.expiry=t.uint64();break}default:{t.skipType(a&7);break}}}return o})),e),r.encode=t=>Ue(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})($i||($i={}));function Cn(r,e){let t=Bn.decode(e);if(t.publicKey!=null&&r.publicKey==null){let o=mn(t.publicKey);r=Ml(o)}let n=new Map,s=BigInt(Date.now());for(let[o,i]of t.tags.entries())i.expiry!=null&&i.expiry<s||n.set(o,i);return{...t,id:r,addresses:t.addresses.map(({multiaddr:o,isCertified:i})=>({multiaddr:j(o),isCertified:i??!1})),metadata:t.metadata,peerRecordEnvelope:t.peerRecordEnvelope??void 0,tags:n}}var Ft="/",$p=new TextEncoder().encode(Ft),zi=$p[0],Rr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=P(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]!==zi)throw new Error("Invalid key")}toString(e="utf8"){return te(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=$p),this._buf[0]!==zi){let e=new Uint8Array(this._buf.byteLength+1);e.fill(zi,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===zi;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let s=0;s<t.length;s++){if(n.length<s+1)return!1;let o=t[s],i=n[s];if(o<i)return!0;if(o>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 sb(this.baseNamespace())}name(){return ob(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(),...ib(e.map(t=>t.namespaces()))])}};function sb(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ob(r){let e=r.split(":");return e[e.length-1]}function ib(r){return[].concat(...r)}var Eu="/peers/";function In(r){if(!Gs(r)||r.type==null)throw new R("Invalid PeerId");let e=r.toCID().toString();return new Rr(`${Eu}${e}`)}async function zp(r,e,t){let n=new Map;for(let s of t){if(s==null)continue;if(s.multiaddr instanceof Uint8Array&&(s.multiaddr=j(s.multiaddr)),!ar(s.multiaddr))throw new R("Multiaddr was invalid");if(!await e(r,s.multiaddr))continue;let o=s.isCertified??!1,i=s.multiaddr.toString(),a=n.get(i);a!=null?s.isCertified=a.isCertified||o:n.set(i,{multiaddr:s.multiaddr,isCertified:o})}return[...n.values()].sort((s,o)=>s.multiaddr.toString().localeCompare(o.multiaddr.toString())).map(({isCertified:s,multiaddr:o})=>({isCertified:s,multiaddr:o.bytes}))}async function Wi(r,e,t,n){if(e==null)throw new R("Invalid PeerData");if(e.publicKey!=null&&r.publicKey!=null&&!e.publicKey.equals(r.publicKey))throw new R("publicKey bytes do not match peer id publicKey bytes");let s=n.existingPeer;if(s!=null&&!r.equals(s.id))throw new R("peer id did not match existing peer id");let o=s?.addresses??[],i=new Set(s?.protocols??[]),a=s?.metadata??new Map,c=s?.tags??new Map,u=s?.peerRecordEnvelope;if(t==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(o=[],e.multiaddrs!=null&&o.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&o.push(...e.addresses)),e.protocols!=null&&(i=new Set(e.protocols)),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Gi(d,{validate:Gp})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Gi(d,{validate:Wp,map:jp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(t==="merge"){if(e.multiaddrs!=null&&o.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&o.push(...e.addresses),e.protocols!=null&&(i=new Set([...i,...e.protocols])),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,p]of d)p==null?a.delete(h):a.set(h,p);a=Gi([...a.entries()],{validate:Gp})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[p,m]of d)m==null?h.delete(p):h.set(p,m);c=Gi([...h.entries()],{validate:Wp,map:jp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let f;s?.id.publicKey!=null?f=pt(s.id.publicKey):e.publicKey!=null?f=pt(e.publicKey):r.publicKey!=null&&(f=pt(r.publicKey));let l={addresses:await zp(r,n.addressFilter??(async()=>!0),o),protocols:[...i.values()].sort((d,h)=>d.localeCompare(h)),metadata:a,tags:c,publicKey:f,peerRecordEnvelope:u};return r.type!=="RSA"&&delete l.publicKey,l}function Gi(r,e){let t=new Map;for(let[n,s]of r)s!=null&&e.validate(n,s);for(let[n,s]of r.sort(([o],[i])=>o.localeCompare(i)))s!=null&&t.set(n,e.map?.(n,s)??s);return t}function Gp(r,e){if(typeof r!="string")throw new R("Metadata key must be a string");if(!(e instanceof Uint8Array))throw new R("Metadata value must be a Uint8Array")}function Wp(r,e){if(typeof r!="string")throw new R("Tag name must be a string");if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new R("Tag value must be an integer");if(e.value<0||e.value>100)throw new R("Tag value must be between 0-100")}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new R("Tag ttl must be an integer");if(e.ttl<0)throw new R("Tag ttl must be between greater than 0")}}function jp(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 ji(r,e){let t=r.toString().split("/")[2],n=me.parse(t,We),s=vi(n);return Cn(s,e)}function ab(r){return r==null?{}:{prefix:Eu,filters:(r.filters??[]).map(e=>({key:t,value:n})=>e(ji(t,n))),orders:(r.orders??[]).map(e=>(t,n)=>e(ji(t.key,t.value),ji(n.key,n.value)))}}var Zi=class{peerId;datastore;lock;addressFilter;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.lock=vu({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(In(e))}async delete(e){if(this.peerId.equals(e))throw new R("Cannot delete self peer");await this.datastore.delete(In(e))}async load(e){let t=await this.datastore.get(In(e));return Cn(e,t)}async save(e,t){let{existingBuf:n,existingPeer:s}=await this.#e(e),o=await Wi(e,t,"patch",{addressFilter:this.addressFilter});return this.#t(e,o,n,s)}async patch(e,t){let{existingBuf:n,existingPeer:s}=await this.#e(e),o=await Wi(e,t,"patch",{addressFilter:this.addressFilter,existingPeer:s});return this.#t(e,o,n,s)}async merge(e,t){let{existingBuf:n,existingPeer:s}=await this.#e(e),o=await Wi(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:s});return this.#t(e,o,n,s)}async*all(e){for await(let{key:t,value:n}of this.datastore.query(ab(e??{}))){let s=ji(t,n);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let t=await this.datastore.get(In(e)),n=Cn(e,t);return{existingBuf:t,existingPeer:n}}catch(t){t.name!=="NotFoundError"&&this.log.error("invalid peer data found in peer store - %e",t)}return{}}async#t(e,t,n,s){let o=Bn.encode(t);return n!=null&&ue(o,n)?{peer:Cn(e,o),previous:s,updated:!1}:(await this.datastore.put(In(e),o),{peer:Cn(e,o),previous:s,updated:!0})}};var Au=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 Zi(e,t)}[Symbol.toStringTag]="@libp2p/peer-store";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 s of this.store.all(t))e(s)}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 ks(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 s=await this.store.save(e,t);return this.#e(e,s),s.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 s=await this.store.patch(e,t);return this.#e(e,s),s.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 s=await this.store.merge(e,t);return this.#e(e,s),s.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,t){let n=await Sn.openAndCertify(e,Pr.DOMAIN),s=vi(n.publicKey.toCID());if(t?.equals(s)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",t,s),!1;let o=Pr.createFromProtobuf(n.payload),i;try{i=await this.get(s)}catch(a){if(a.name!=="NotFoundError")throw a}if(i?.peerRecordEnvelope!=null){let a=await Sn.createFromProtobuf(i.peerRecordEnvelope),c=Pr.createFromProtobuf(a.payload);if(c.seqNumber>=o.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,o.seqNumber),!1}return await this.patch(o.peerId,{peerRecordEnvelope:e,addresses:o.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!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 Zp(r,e={}){return new Au(r,e)}var Xi=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};function cb(r){return r[Symbol.asyncIterator]!=null}function lb(r){if(cb(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Su=lb;function ub(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:s=>{n.push(s)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Xp=ub;function fb(r){return r[Symbol.asyncIterator]!=null}function hb(r,e){let t=0;if(fb(r))return async function*(){for await(let c of r)await e(c,t++)&&(yield c)}();let n=Xp(r),{value:s,done:o}=n.next();if(o===!0)return function*(){}();let i=e(s,t++);if(typeof i.then=="function")return async function*(){await i&&(yield s);for await(let c of n)await e(c,t++)&&(yield c)}();let a=e;return function*(){i===!0&&(yield s);for(let c of n)a(c,t++)&&(yield c)}()}var Mr=hb;function db(r){return r[Symbol.asyncIterator]!=null}function pb(r,e){return db(r)?async function*(){yield*(await ks(r)).sort(e)}():function*(){yield*ks(r).sort(e)}()}var _u=pb;function mb(r){return r[Symbol.asyncIterator]!=null}function gb(r,e){return mb(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 Bu=gb;var Yi=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:s}of e)await this.put(n,s,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,s){e.push({key:n,value:s})},delete(n){t.push(n)},commit:async n=>{await Su(this.putMany(e,n)),e=[],await Su(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 s=e.prefix;n=Mr(n,o=>o.key.toString().startsWith(s))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((s,o)=>Mr(s,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((s,o)=>_u(s,o),n)),e.offset!=null){let s=0,o=e.offset;n=Mr(n,()=>s++>=o)}return e.limit!=null&&(n=Bu(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let s=e.prefix;n=Mr(n,o=>o.toString().startsWith(s))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((s,o)=>Mr(s,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((s,o)=>_u(s,o),n)),e.offset!=null){let s=e.offset,o=0;n=Mr(n,()=>o++>=s)}return e.limit!=null&&(n=Bu(n,e.limit)),n}};var Ji=class extends Yi{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 new Xi;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 Rr(e),value:t}}*_allKeys(){for(let e of this.data.keys())yield new Rr(e)}};function Yp(r,e){let t,n=function(){let s=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(s,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Qp=hr(Jp(),1),yb=["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"],wb=yb.map(r=>new Qp.Netmask(r));function Cu(r){for(let e of wb)if(e.contains(r))return!0;return!1}function bb(r){return/^::ffff:([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})$/.test(r)}function xb(r){let e=r.split(":");if(e.length<2)return!1;let t=e[e.length-1].padStart(4,"0"),n=e[e.length-2].padStart(4,"0"),s=`${parseInt(n.substring(0,2),16)}.${parseInt(n.substring(2),16)}.${parseInt(t.substring(0,2),16)}.${parseInt(t.substring(2),16)}`;return Cu(s)}function vb(r){return/^::ffff:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)}function Eb(r){let e=r.split(":"),t=e[e.length-1];return Cu(t)}function Ab(r){return/^::$/.test(r)||/^::1$/.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 kn(r){return ut(r)?Cu(r):bb(r)?xb(r):vb(r)?Eb(r):bn(r)?Ab(r):void 0}var em=864e13;var Sb=448,Iu=449,_b=53,Bb=54,Cb=55,Ib=56,Qi=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:dns-mappings"),this.mappings=new Map}has(e){let t=this.findHost(e);for(let n of this.mappings.values())if(n.domain===t)return!0;return!1}add(e,t){t.forEach(n=>{this.log("add DNS mapping %s to %s",n,e);let s=kn(n)===!0;this.mappings.set(n,{domain:e,verified:s,expires:s?em-Date.now():0,lastVerified:s?em-Date.now():void 0})})}remove(e){let t=this.findHost(e),n=!1;for(let[s,o]of this.mappings.entries())o.domain===t&&(this.log("removing %s to %s DNS mapping %e",s,o.domain,new Error("where")),this.mappings.delete(s),n=n||o.verified);return n}getAll(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n].multiaddr.stringTuples(),i=o[0][1];if(i!=null)for(let[a,c]of this.mappings.entries()){if(i!==a)continue;this.maybeAddSNITuple(o,c.domain)&&(e.splice(n,1),n--,t.push({multiaddr:j(`/${o.map(f=>[W(f[0]).name,f[1]].join("/")).join("/")}`),verified:c.verified,type:"dns-mapping",expires:c.expires,lastVerified:c.lastVerified}))}}return t}maybeAddSNITuple(e,t){for(let n=0;n<e.length;n++)if(e[n][0]===Sb&&e[n+1]?.[0]!==Iu)return e.splice(n+1,0,[Iu,t]),!0;return!1}confirm(e,t){let n=this.findHost(e),s=!1;for(let[o,i]of this.mappings.entries())i.domain===n&&(this.log("marking %s to %s DNS mapping as verified",o,i.domain),s=i.verified,i.verified=!0,i.expires=Date.now()+t,i.lastVerified=Date.now());return s}unconfirm(e,t){let n=this.findHost(e),s=!1;for(let[o,i]of this.mappings.entries())i.domain===n&&(this.log("removing verification of %s to %s DNS mapping",o,i.domain),s=s||i.verified,i.verified=!1,i.expires=Date.now()+t);return s}findHost(e){for(let t of e.stringTuples())if(t[0]===Iu||t[0]===_b||t[0]===Bb||t[0]===Cb||t[0]===Ib)return t[1]}};var ku=4,Tu=41,Lu=6,kb=273,ea=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:ip-mappings"),this.mappings=new Map}has(e){let t=e.stringTuples();for(let n of this.mappings.values())for(let s of n)if(s.externalIp===t[0][1])return!0;return!1}add(e,t,n,s=t,o="tcp"){let i=`${e}-${t}-${o}`,a=this.mappings.get(i)??[],c={internalIp:e,internalPort:t,externalIp:n,externalPort:s,externalFamily:ut(n)?4:6,protocol:o,verified:!1,expires:0};a.push(c),this.mappings.set(i,a)}remove(e){let t=e.stringTuples(),n=t[0][1]??"",s=t[1][0]===Lu?"tcp":"udp",o=parseInt(t[1][1]??"0"),i=!1;for(let[a,c]of this.mappings.entries()){for(let u=0;u<c.length;u++){let f=c[u];f.externalIp===n&&f.externalPort===o&&f.protocol===s&&(this.log("removing %s:%s to %s:%s %s IP mapping",f.externalIp,f.externalPort,n,o,s),i=i||f.verified,c.splice(u,1),u--)}c.length===0&&this.mappings.delete(a)}return i}getAll(e){let t=[];for(let{multiaddr:n}of e){let s=n.stringTuples(),o;if((s[0][0]===ku||s[0][0]===Tu)&&s[1][0]===Lu?o=`${s[0][1]}-${s[1][1]}-tcp`:(s[0][0]===ku||s[0][0]===Tu)&&s[1][0]===kb&&(o=`${s[0][1]}-${s[1][1]}-udp`),o==null)continue;let i=this.mappings.get(o);if(i!=null)for(let a of i)s[0][0]=a.externalFamily===4?ku:Tu,s[0][1]=a.externalIp,s[1][1]=`${a.externalPort}`,t.push({multiaddr:j(`/${s.map(c=>[W(c[0]).name,c[1]].join("/")).join("/")}`),verified:a.verified,type:"ip-mapping",expires:a.expires,lastVerified:a.lastVerified})}return t}confirm(e,t){let s=e.stringTuples()[0][1],o=!1;for(let i of this.mappings.values())for(let a of i)a.externalIp===s&&(this.log("marking %s to %s IP mapping as verified",a.internalIp,a.externalIp),o=a.verified,a.verified=!0,a.expires=Date.now()+t,a.lastVerified=Date.now());return o}unconfirm(e,t){let n=e.stringTuples(),s=n[0][1]??"",o=n[1][0]===Lu?"tcp":"udp",i=parseInt(n[1][1]??"0"),a=!1;for(let c of this.mappings.values())for(let u=0;u<c.length;u++){let f=c[u];f.externalIp===s&&f.externalPort===i&&f.protocol===o&&(this.log("removing verification of %s:%s to %s:%s %s IP mapping",f.externalIp,f.externalPort,s,i,o),a=a||f.verified,f.verified=!1,f.expires=Date.now()+t)}return a}};function tm(r){try{let[[e,t]]=r.stringTuples();if(t==null)return!1;if(e===4)return t.startsWith("169.254.");if(e===41)return t.toLowerCase().startsWith("fe80")}catch{}return!1}var Tb=4,Lb=41,Nb=53,Pb=54,Db=55,Rb=56;function Ur(r){try{let[[e,t]]=r.stringTuples();if(t==null)return!0;if(e===Nb||e===Pb||e===Db||e===Rb)return!1;if(e===Tb||e===Lb)return kn(t)??!1}catch{}return!0}var Mb={maxObservedAddresses:10},ta=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=new Map,this.maxObservedAddresses=t.maxObservedAddresses??Mb.maxObservedAddresses}has(e){return this.addresses.has(e.toString())}removePrefixed(e){for(let t of this.addresses.keys())t.toString().startsWith(e)&&this.addresses.delete(t)}add(e){this.addresses.size!==this.maxObservedAddresses&&(Ur(e)||tm(e)||(this.log("adding observed address %a",e),this.addresses.set(e.toString(),{verified:!1,expires:0})))}getAll(){return Array.from(this.addresses).map(([e,t])=>({multiaddr:j(e),verified:t.verified,type:"observed",expires:t.expires,lastVerified:t.lastVerified}))}remove(e){let t=this.addresses.get(e.toString())?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(e.toString()),t}confirm(e,t){let n=e.toString(),s=this.addresses.get(n)??{verified:!1,expires:Date.now()+t,lastVerified:Date.now()},o=s.verified;return s.verified=!0,s.lastVerified=Date.now(),this.log("marking observed address %a as verified",n),this.addresses.set(n,s),o}};var Ub={maxObservedAddresses:10},ra=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=new Map,this.maxObservedAddresses=t.maxObservedAddresses??Ub.maxObservedAddresses}get(e,t){if(Ur(e))return{multiaddr:e,verified:!0,type:"transport",expires:Date.now()+t,lastVerified:Date.now()};let n=this.toKey(e),s=this.addresses.get(n);return s==null&&(s={verified:!1,expires:0},this.addresses.set(n,s)),{multiaddr:e,verified:s.verified,type:"transport",expires:s.expires,lastVerified:s.lastVerified}}has(e){let t=this.toKey(e);return this.addresses.has(t)}remove(e){let t=this.toKey(e),n=this.addresses.get(t)?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(t),n}confirm(e,t){let n=this.toKey(e),s=this.addresses.get(n)??{verified:!1,expires:0,lastVerified:0},o=s.verified;return s.verified=!0,s.expires=Date.now()+t,s.lastVerified=Date.now(),this.addresses.set(n,s),o}unconfirm(e,t){let n=this.toKey(e),s=this.addresses.get(n)??{verified:!1,expires:0},o=s.verified;return s.verified=!1,s.expires=Date.now()+t,this.addresses.set(n,s),o}toKey(e){let t=e.toOptions();return`${t.host}-${t.port}-${t.transport}`}};var rm=6e4,nm={maxObservedAddresses:10,addressVerificationTTL:rm*10,addressVerificationRetry:rm*5},Ob=r=>r;function Nu(r,e){let t=r.getPeerId();return t!=null&&bt(t).equals(e)&&(r=r.decapsulate(j(`/p2p/${e.toString()}`))),r}var na=class{log;components;listen;announce;appendAnnounce;announceFilter;observed;dnsMappings;ipMappings;transportAddresses;observedAddressFilter;addressVerificationTTL;addressVerificationRetry;constructor(e,t={}){let{listen:n=[],announce:s=[],appendAnnounce:o=[]}=t;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(i=>i.toString()),this.announce=new Set(s.map(i=>i.toString())),this.appendAnnounce=new Set(o.map(i=>i.toString())),this.observed=new ta(e,t),this.dnsMappings=new Qi(e,t),this.ipMappings=new ea(e,t),this.transportAddresses=new ra(e,t),this.announceFilter=t.announceFilter??Ob,this.observedAddressFilter=Bs(1024),this.addressVerificationTTL=t.addressVerificationTTL??nm.addressVerificationTTL,this.addressVerificationRetry=t.addressVerificationRetry??nm.addressVerificationRetry,this._updatePeerStoreAddresses=Yp(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}[Symbol.toStringTag]="@libp2p/address-manager";_updatePeerStoreAddresses(){let e=this.getAddresses().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=>j(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>j(e))}getAppendAnnounceAddrs(){return Array.from(this.appendAnnounce).map(e=>j(e))}getObservedAddrs(){return this.observed.getAll().map(e=>e.multiaddr)}addObservedAddr(e){let t=e.stringTuples(),n=`${t[0][1]}:${t[1][1]}`;this.observedAddressFilter.has(n)||(this.observedAddressFilter.add(n),e=Nu(e,this.components.peerId),!this.ipMappings.has(e)&&(this.dnsMappings.has(e)||this.observed.add(e)))}confirmObservedAddr(e,t){e=Nu(e,this.components.peerId);let n=!0;this.observed.has(e)&&(n=this.observed.confirm(e,t?.ttl??this.addressVerificationTTL)),this.transportAddresses.has(e)&&(n=this.transportAddresses.confirm(e,t?.ttl??this.addressVerificationTTL)),this.dnsMappings.has(e)&&(n=this.dnsMappings.confirm(e,t?.ttl??this.addressVerificationTTL)),this.ipMappings.has(e)&&(n=this.ipMappings.confirm(e,t?.ttl??this.addressVerificationTTL)),n||this._updatePeerStoreAddresses()}removeObservedAddr(e,t){e=Nu(e,this.components.peerId);let n=!1;this.observed.has(e)&&(n=this.observed.remove(e)),this.transportAddresses.has(e)&&(n=this.transportAddresses.unconfirm(e,t?.ttl??this.addressVerificationRetry)),this.dnsMappings.has(e)&&(n=this.dnsMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)),this.ipMappings.has(e)&&(n=this.ipMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)),n&&this._updatePeerStoreAddresses()}getAddresses(){let e=new Set,t=this.getAddressesWithMetadata().filter(n=>{if(!n.verified)return!1;let s=n.multiaddr.toString();return e.has(s)?!1:(e.add(s),!0)}).map(n=>n.multiaddr);return this.announceFilter(t.map(n=>{let s=j(n);return s.protos().pop()?.path===!0||s.getPeerId()===this.components.peerId.toString()?s:s.encapsulate(`/p2p/${this.components.peerId.toString()}`)}))}getAddressesWithMetadata(){let e=this.getAnnounceAddrs();if(e.length>0)return e.map(n=>({multiaddr:n,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()}));let t=[];return t=t.concat(this.components.transportManager.getAddrs().map(n=>this.transportAddresses.get(n,this.addressVerificationTTL))),t=t.concat(this.getAppendAnnounceAddrs().map(n=>({multiaddr:n,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()}))),t=t.concat(this.observed.getAll()),t=t.concat(this.ipMappings.getAll(t)),t=t.concat(this.dnsMappings.getAll(t)),t}addDNSMapping(e,t){this.dnsMappings.add(e,t)}removeDNSMapping(e){this.dnsMappings.remove(j(`/dns/${e}`))&&this._updatePeerStoreAddresses()}addPublicAddressMapping(e,t,n,s=t,o="tcp"){this.ipMappings.add(e,t,n,s,o),this.observed.removePrefixed(`/ip${ut(n)?4:6}/${n}/${o}/${s}`)}removePublicAddressMapping(e,t,n,s=t,o="tcp"){this.ipMappings.remove(j(`/ip${ut(n)?4:6}/${n}/${o}/${s}`))&&this._updatePeerStoreAddresses()}};var sm;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.NOT_FOUND="Not found"})(sm||(sm={}));var sa=class extends Error{constructor(e="Missing service"){super(e),this.name="MissingServiceError"}},oa=class extends Error{constructor(e="Unmet service dependencies"){super(e),this.name="UnmetServiceDependenciesError"}},Tn=class extends Error{constructor(e="No content routers available"){super(e),this.name="NoContentRoutersError"}},Ls=class extends Error{constructor(e="No peer routers available"){super(e),this.name="NoPeerRoutersError"}},ia=class extends Error{constructor(e="Should not try to find self"){super(e),this.name="QueriedForSelfError"}},aa=class extends Error{constructor(e="Unhandled protocol error"){super(e),this.name="UnhandledProtocolError"}},ca=class extends Error{constructor(e="Duplicate protocol handler error"){super(e),this.name="DuplicateProtocolHandlerError"}},Ns=class extends Error{constructor(e="Dial denied error"){super(e),this.name="DialDeniedError"}},Or=class extends Error{constructor(e="No valid addresses"){super(e),this.name="NoValidAddressesError"}},la=class extends Error{constructor(e="Connection intercepted"){super(e),this.name="ConnectionInterceptedError"}},ua=class extends Error{constructor(e="Connection denied"){super(e),this.name="ConnectionDeniedError"}},Fr=class extends Error{constructor(e="Stream is not multiplexed"){super(e),this.name="MuxerUnavailableError"}},Vr=class extends Error{constructor(e="Encryption failed"){super(e),this.name="EncryptionFailedError"}},fa=class extends Error{constructor(e="Transport unavailable"){super(e),this.name="TransportUnavailableError"}};var Pu=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=Ui())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(t=>to(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")}},Vb=["metrics","connectionProtector","dns"],Hb=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function om(r={}){let e=new Pu(r);return new Proxy(e,{get(n,s,o){if(typeof s=="string"&&!Hb.includes(s)){let i=e.components[s];if(i==null&&!Vb.includes(s))throw new sa(`${s} not set`);return i}return Reflect.get(n,s,o)},set(n,s,o){return typeof s=="string"?e.components[s]=o:Reflect.set(n,s,o),!0}})}function im(r){let e={};for(let t of Object.values(r.components))for(let n of Kb(t))e[n]=!0;for(let t of Object.values(r.components))for(let n of qb(t))if(e[n]!==!0)throw new oa(`Service "${$b(t)}" required capability "${n}" but it was not provided by any component, you may need to add additional configuration when creating your node.`)}function Kb(r){return Array.isArray(r?.[Fn])?r[Fn]:[]}function qb(r){return Array.isArray(r?.[ac])?r[ac]:[]}function $b(r){return r?.[Symbol.toStringTag]??r?.toString()??"unknown"}var zb=r=>r.toString().split("/").slice(1),Ln=r=>({match:e=>e.length<1?!1:r(e[0])?e.slice(1):!1,pattern:"fn"}),z=r=>({match:e=>Ln(t=>t===r).match(e),pattern:r}),Hr=()=>({match:r=>Ln(e=>typeof e=="string").match(r),pattern:"{string}"}),Ps=()=>({match:r=>Ln(e=>!isNaN(parseInt(e))).match(r),pattern:"{number}"}),re=()=>({match:r=>{if(r.length<2||r[0]!=="p2p"&&r[0]!=="ipfs")return!1;if(r[1].startsWith("Q")||r[1].startsWith("1"))try{X.decode(`z${r[1]}`)}catch{return!1}else return!1;return r.slice(2)},pattern:"/p2p/{peerid}"}),Ds=()=>({match:r=>{if(r.length<2||r[0]!=="certhash")return!1;try{Qc.decode(r[1])}catch{return!1}return r.slice(2)},pattern:"/certhash/{certhash}"}),Z=r=>({match:e=>{let t=r.match(e);return t===!1?e:t},pattern:`optional(${r.pattern})`}),Pe=(...r)=>({match:e=>{let t;for(let n of r){let s=n.match(e);s!==!1&&(t==null||s.length<t.length)&&(t=s)}return t??!1},pattern:`or(${r.map(e=>e.pattern).join(", ")})`}),G=(...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 ce(...r){function e(s){let o=zb(s);for(let i of r){let a=i.match(o);if(a===!1)return!1;o=a}return o}function t(s){return e(s)!==!1}function n(s){let o=e(s);return o===!1?!1:o.length===0}return{matchers:r,matches:t,exactMatch:n}}var da=G(z("dns4"),Hr()),pa=G(z("dns6"),Hr()),ma=G(z("dnsaddr"),Hr()),Ru=G(z("dns"),Hr()),w4=ce(da,Z(re())),b4=ce(pa,Z(re())),x4=ce(ma,Z(re())),v4=ce(Pe(Ru,ma,da,pa),Z(re())),am=G(z("ip4"),Ln(ut)),cm=G(z("ip6"),Ln(bn)),Mu=Pe(am,cm),Vt=Pe(Mu,Ru,da,pa,ma),E4=ce(Pe(Mu,G(Pe(Ru,ma,da,pa),Z(re())))),A4=ce(am),S4=ce(cm),_4=ce(Mu),Uu=G(Vt,z("tcp"),Ps()),Rs=G(Vt,z("udp"),Ps()),Ou=ce(G(Uu,Z(re()))),B4=ce(Rs),Fu=G(Rs,z("quic"),Z(re())),ga=G(Rs,z("quic-v1"),Z(re())),Gb=Pe(Fu,ga),C4=ce(Fu),I4=ce(ga),Du=Pe(Vt,Uu,Rs,Fu,ga),lm=Pe(G(Du,z("ws"),Z(re()))),Ms=ce(lm),um=Pe(G(Du,z("wss"),Z(re())),G(Du,z("tls"),Z(G(z("sni"),Hr())),z("ws"),Z(re()))),Vu=ce(um),fm=G(Rs,z("webrtc-direct"),Z(Ds()),Z(Ds()),Z(re())),Hu=ce(fm),hm=G(ga,z("webtransport"),Z(Ds()),Z(Ds()),Z(re())),Ku=ce(hm),ha=Pe(lm,um,G(Uu,Z(re())),G(Gb,Z(re())),G(Vt,Z(re())),fm,hm,re()),k4=ce(ha),Wb=G(ha,z("p2p-circuit"),re()),Us=ce(Wb),jb=Pe(G(ha,z("p2p-circuit"),z("webrtc"),Z(re())),G(ha,z("webrtc"),Z(re())),G(z("webrtc"),Z(re()))),qu=ce(jb),Zb=Pe(G(Vt,z("tcp"),Ps(),z("http"),Z(re())),G(Vt,z("http"),Z(re()))),T4=ce(Zb),Xb=Pe(G(Vt,z("tcp"),Pe(G(z("443"),z("http")),G(Ps(),z("https"))),Z(re())),G(Vt,z("tls"),z("http"),Z(re())),G(Vt,z("https"),Z(re()))),L4=ce(Xb),Yb=Pe(G(z("memory"),Hr(),Z(re()))),N4=ce(Yb);var Jb=4,Qb=41;function dm(r={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{if(Ms.matches(e))return!1;let t=e.stringTuples();return t[0][0]===Jb||t[0][0]===Qb?!!kn(`${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 pm=()=>{let r=new Error("Delay aborted");return r.name="AbortError",r},ex=new WeakMap;function tx({clearTimeout:r,setTimeout:e}={}){return(t,{value:n,signal:s}={})=>{if(s?.aborted)return Promise.reject(pm());let o,i,a,c=r??clearTimeout,u=()=>{c(o),a(pm())},f=()=>{s&&s.removeEventListener("abort",u)},l=new Promise((d,h)=>{i=()=>{f(),d(n)},a=h,o=(e??setTimeout)(i,t)});return s&&s.addEventListener("abort",u,{once:!0}),ex.set(l,()=>{c(o),o=null,i()}),l}}var rx=tx(),mm=rx;var ya=class extends Error{remainingPoints;msBeforeNext;consumedPoints;isFirstInDuration;constructor(e="Rate limit exceeded",t){super(e),this.name="RateLimitError",this.remainingPoints=t.remainingPoints,this.msBeforeNext=t.msBeforeNext,this.consumedPoints=t.consumedPoints,this.isFirstInDuration=t.isFirstInDuration}},wa=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var ba=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 $u}async consume(e,t=1,n={}){let s=this.getKey(e),o=this._getKeySecDuration(n),i=this.memoryStorage.incrby(s,t,o);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(s,i.consumedPoints,this.blockDuration)),new ya("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 mm(a)}return i}penalty(e,t=1,n={}){let s=this.getKey(e),o=this._getKeySecDuration(n),i=this.memoryStorage.incrby(s,t,o);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let s=this.getKey(e),o=this._getKeySecDuration(n),i=this.memoryStorage.incrby(s,-t,o);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,s=this.points+1;return this.memoryStorage.set(this.getKey(e),s,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:s,isFirstInDuration:!1}}set(e,t,n=0){let s=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:s===0?-1:s,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)}},$u=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let s=this.storage.get(e);if(s!=null){let o=s.expiresAt!=null?s.expiresAt.getTime()-new Date().getTime():-1;return s.expiresAt==null||o>0?(s.value+=t,{remainingPoints:0,msBeforeNext:o,consumedPoints:s.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let s=n*1e3,o=this.storage.get(e);o!=null&&clearTimeout(o.timeoutId);let i={value:t,expiresAt:s>0?new Date(Date.now()+s):void 0};return this.storage.set(e,i),s>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},s),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:s===0?-1:s,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 xa(r){if(Gs(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:bt(t),r.forEach(n=>{if(!ar(n))throw new qt("Invalid multiaddr");let s=n.getPeerId();if(s==null){if(e!=null)throw new R("Multiaddrs must all have the same peer id or have no peer id")}else{let o=bt(s);if(e?.equals(o)!==!0)throw new R("Multiaddrs must all have the same peer id or have no peer id")}})}return{peerId:e,multiaddrs:r}}var nx=["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/libp2p/autonat/1.0.0","/libp2p/dcutr"];async function gm(r,e){let t=r?.streams?.map(s=>s.protocol)??[],n=e?.closableProtocols??nx;if(!(t.filter(s=>s!=null&&!n.includes(s)).length>0))try{await r?.close(e)}catch(s){r?.abort(s)}}var ym="last-dial-failure",wm="last-dial-success";var va=100,Ea=50;async function bm(r,e){let t=!1;for(let s of vn.keys())if(t=r.protoNames().includes(s),t)break;if(!t)return[r];let n=await r.resolve(e);return e.log("resolved %s to",r,n.map(s=>s.toString())),n}function Os(r){try{let e;if(typeof r=="string"?e=j(r):e=r,!e.protoNames().includes("ipcidr")){let n=e.protoNames().includes("ip6")?"/ipcidr/128":"/ipcidr/32";e=e.encapsulate(n)}return eu(e)}catch{throw new Error(`Can't convert to IpNet, Invalid multiaddr format: ${r}`)}}var sx={maxConnections:va,allow:[]},Aa=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,t={}){this.maxConnections=t.maxConnections??sx.maxConnections,this.allow=(t.allow??[]).map(n=>Os(n)),this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),this.maybePruneConnections=this.maybePruneConnections.bind(this)}start(){this.events.addEventListener("connection:open",this.maybePruneConnections)}stop(){this.events.removeEventListener("connection:open",this.maybePruneConnections)}maybePruneConnections(){this._maybePruneConnections().catch(e=>{this.log.error("error while pruning connections %e",e)})}async _maybePruneConnections(){let e=this.connectionManager.getConnections(),t=e.length;if(this.log("checking max connections limit %d/%d",t,this.maxConnections),t<=this.maxConnections)return;let n=new Ot;for(let a of e){let c=a.remotePeer;if(!n.has(c)){n.set(c,0);try{let u=await this.peerStore.get(c);n.set(c,[...u.tags.values()].reduce((f,l)=>f+l.value,0))}catch(u){u.name!=="NotFoundError"&&this.log.error("error loading peer tags",u)}}}let s=this.sortConnections(e,n),o=Math.max(t-this.maxConnections,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=>u.contains(a.remoteAddr.nodeAddress().address))||i.push(a),i.length===o)break;await Promise.all(i.map(async a=>{await gm(a,{signal:AbortSignal.timeout(1e3)})})),this.events.safeDispatchEvent("connection:prune",{detail:i})}sortConnections(e,t){return e.sort((n,s)=>{let o=n.timeline.open,i=s.timeline.open;return o<i?1:o>i?-1:0}).sort((n,s)=>n.direction==="outbound"&&s.direction==="inbound"?1:n.direction==="inbound"&&s.direction==="outbound"?-1:0).sort((n,s)=>n.streams.length>s.streams.length?1:n.streams.length<s.streams.length?-1:0).sort((n,s)=>{let o=t.get(n.remotePeer)??0,i=t.get(s.remotePeer)??0;return o>i?1:o<i?-1:0})}};function he(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Sa=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}},Nn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Sa(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 Sa(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 zu=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function _a(r={}){return ox(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 ox(r,e){e=e??{};let t=e.onEnd,n=new Nn,s,o,i,a=he(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((g,w)=>{o=b=>{o=null,n.push(b);try{g(r(n))}catch(y){w(y)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=he()})}},u=g=>o!=null?o(g):(n.push(g),s),f=g=>(n=new Nn,o!=null?o({error:g}):(n.push({error:g}),s)),l=g=>{if(i)return s;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},d=g=>i?s:(i=!0,g!=null?f(g):u({done:!0})),h=()=>(n=new Nn,d(),{done:!0}),p=g=>(d(g),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:h,throw:p,push:l,end:d,get readableLength(){return n.size},onEmpty:async g=>{let w=g?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let b,y;w!=null&&(b=new Promise((x,A)=>{y=()=>{A(new zu)},w.addEventListener("abort",y)}));try{await Promise.race([a.promise,b])}finally{y!=null&&w!=null&&w?.removeEventListener("abort",y)}}},t==null)return s;let m=s;return s={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(g){return m.throw(g),t!=null&&(t(g),t=void 0),{done:!0}},return(){return m.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(g){return m.end(g),t!=null&&(t(g),t=void 0),s},get readableLength(){return m.readableLength},onEmpty:g=>m.onEmpty(g)},s}var Gu=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 Pn(r,e,t,n){let s=new Gu(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(s):new Promise((o,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(d){a(),i(d);return}a(),o(l)},u=l=>{a(),i(l.detail)},f=()=>{a(),i(s)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,u)})}var Ba=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function ur(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Ba(t?.errorMessage,t?.errorCode,t?.errorName));let n,s=new Ba(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((o,i)=>{n=()=>{i(s)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Ca=class{deferred;signal;constructor(e){this.signal=e,this.deferred=he(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new et)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function ix(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ia=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=ix(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,se(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 et),this.cleanup())}async join(e={}){let t=new Ca(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 ur(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)})}};var Dn=class extends Et{concurrency;maxSize;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??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.sort=e.sort,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){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new wa;let n=new Ia(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),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 o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new et)}),this.clear()}async onEmpty(e){this.size!==0&&await Pn(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Pn(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Pn(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=_a({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},s=c=>{c.detail!=null&&t.push(c.detail)},o=c=>{n(c.detail)},i=()=>{n()},a=()=>{n(new et("Queue aborted"))};this.addEventListener("completed",s),this.addEventListener("error",o),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",s),this.removeEventListener("error",o),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var ka=class extends Dn{constructor(e={}){super({...e,sort:(t,n)=>t.options.priority>n.options.priority?-1:t.options.priority<n.options.priority?1:0})}};function Ht(r){let e=new globalThis.AbortController;function t(){e.abort();for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}for(let o of r){if(o?.aborted===!0){t();break}o?.addEventListener!=null&&o.addEventListener("abort",t)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}let s=e.signal;return s.clear=n,s}function ax(r,e){let t=Ou.exactMatch(r.multiaddr),n=Ou.exactMatch(e.multiaddr);if(t&&!n)return-1;if(!t&&n)return 1;let s=Vu.exactMatch(r.multiaddr),o=Vu.exactMatch(e.multiaddr);if(s&&!o)return-1;if(!s&&o)return 1;let i=Ms.exactMatch(r.multiaddr),a=Ms.exactMatch(e.multiaddr);if(i&&!a)return-1;if(!i&&a)return 1;let c=qu.exactMatch(r.multiaddr),u=qu.exactMatch(e.multiaddr);if(c&&!u)return-1;if(!c&&u)return 1;let f=Hu.exactMatch(r.multiaddr),l=Hu.exactMatch(e.multiaddr);if(f&&!l)return-1;if(!f&&l)return 1;let d=Ku.exactMatch(r.multiaddr),h=Ku.exactMatch(e.multiaddr);return d&&!h?-1:!d&&h?1:0}function cx(r,e){let t=Ur(r.multiaddr),n=Ur(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function lx(r,e){return r.isCertified&&!e.isCertified?-1:!r.isCertified&&e.isCertified?1:0}function ux(r,e){let t=Us.exactMatch(r.multiaddr),n=Us.exactMatch(e.multiaddr);return t&&!n?1:!t&&n?-1:0}function xm(r){return r.sort(ax).sort(lx).sort(ux).sort(cx)}var Ta={maxParallelDials:Ea,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:5e3,resolvers:{dnsaddr:Ir}},La=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;shutDownController;connections;log;constructor(e,t={}){this.addressSorter=t.addressSorter,this.maxPeerAddrsToDial=t.maxPeerAddrsToDial??Ta.maxPeerAddrsToDial,this.maxDialQueueLength=t.maxDialQueueLength??Ta.maxDialQueueLength,this.dialTimeout=t.dialTimeout??Ta.dialTimeout,this.connections=t.connections??new Ot,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.shutDownController=new AbortController,se(1/0,this.shutDownController.signal);for(let[n,s]of Object.entries(t.resolvers??{}))vn.set(n,s);this.queue=new ka({concurrency:t.maxParallelDials??Ta.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("error",n=>{n.detail.name!==et.name&&this.log.error("error in dial queue - %e",n.detail)})}start(){this.shutDownController=new AbortController,se(1/0,this.shutDownController.signal)}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,t={}){let{peerId:n,multiaddrs:s}=xa(e),o=Array.from(this.connections.values()).flat().find(a=>t.force===!0?!1:a.remotePeer.equals(n)?!0:s.find(c=>c.equals(a.remoteAddr)));if(o?.status==="open")return this.log("already connected to %a",o.remoteAddr),t.onProgress?.(new de("dial-queue:already-connected")),o;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 s)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 s)i.options.multiaddrs.add(a.toString());return t.onProgress?.(new de("dial-queue:already-in-dial-queue")),i.join(t)}if(this.queue.size>=this.maxDialQueueLength)throw new jr("Dial queue is full");return this.log("creating dial target for %p",n,s.map(a=>a.toString())),t.onProgress?.(new de("dial-queue:add-to-dial-queue")),this.queue.add(async a=>{a?.onProgress?.(new de("dial-queue:start-dial"));let c=Ht([this.shutDownController.signal,a.signal]);se(1/0,c);let u;try{u=await this.calculateMultiaddrs(n,a?.multiaddrs,{...a,signal:c}),a?.onProgress?.(new de("dial-queue:calculated-addresses",u)),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 d of u){if(f===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",f,n),new jr("Peer had more than maxPeerAddrsToDial");f++;try{let h=await this.components.transportManager.dial(d.multiaddr,{...a,signal:c});this.log("dial to %a succeeded",d.multiaddr);try{await this.components.peerStore.merge(h.remotePeer,{multiaddrs:[h.remoteAddr],metadata:{[wm]:P(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}return h}catch(h){if(this.log.error("dial failed to %a",d.multiaddr,h),n!=null)try{await this.components.peerStore.merge(n,{metadata:{[ym]:P(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}if(c.aborted)throw new Js(h.message);l.push(h)}}throw l.length===1?l[0]:new AggregateError(l,"All multiaddr dials failed")}finally{c.clear()}},{peerId:n,priority:t.priority??Xu,multiaddrs:new Set(s.map(a=>a.toString())),signal:t.signal??AbortSignal.timeout(this.dialTimeout),onProgress:t.onProgress})}async calculateMultiaddrs(e,t=new Set,n={}){let s=[...t].map(l=>({multiaddr:j(l),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new jr("Tried to dial self");if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new Ns("The dial request is blocked by gater.allowDialPeer");if(s.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.components.peerStore.get(e);s.push(...l.addresses),this.log("loaded multiaddrs for %p",e,s.map(({multiaddr:d})=>d.toString()))}catch(l){if(l.name!=="NotFoundError")throw l}}if(s.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,s.map(({multiaddr:d})=>d.toString())),s.push(...l.multiaddrs.map(d=>({multiaddr:d,isCertified:!1})))}catch(l){l.name!=="NoPeerRoutersError"&&this.log.error("looking up multiaddrs for %p in the peer routing failed",e,l)}}}let o=(await Promise.all(s.map(async l=>{let d=await bm(l.multiaddr,{dns:this.components.dns,...n,log:this.log});return d.length===1&&d[0].equals(l.multiaddr)?l:d.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;o=o.map(d=>d.multiaddr.protos().pop()?.path===!0?d:d.multiaddr.getPeerId()==null?{multiaddr:d.multiaddr.encapsulate(l),isCertified:d.isCertified}:d)}let i=o.filter(l=>{if(this.components.transportManager.dialTransportForMultiaddr(l.multiaddr)==null)return!1;let d=l.multiaddr.getPeerId();return e!=null&&d!=null?e.equals(d):!0}),a=new Map;for(let l of i){let d=l.multiaddr.toString(),h=a.get(d);if(h!=null){h.isCertified=h.isCertified||l.isCertified||!1;continue}a.set(d,l)}let c=[...a.values()];if(c.length===0)throw new Or("The dial request has 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=this.addressSorter==null?xm(u):u.sort(this.addressSorter);if(f.length===0)throw new Ns("The connection gater denied all addresses in the dial request");return this.log.trace("addresses for %p before filtering",e??"unknown peer",o.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(s=>s.toString())),t);return t.runOnLimitedConnection===!1?n.find(s=>!Us.matches(s.multiaddr))!=null:!0}catch(n){this.log.trace("error calculating if multiaddr(s) were dialable",n)}return!1}};var Na=class extends Dn{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var Cm=hr(_m(),1);var hx=Object.prototype.toString,dx=r=>hx.call(r)==="[object Error]",px=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function Yu(r){return r&&dx(r)&&r.name==="TypeError"&&typeof r.message=="string"?r.message==="Load failed"?r.stack===void 0:px.has(r.message):!1}var Ju=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},Bm=(r,e,t)=>{let n=t.retries-(e-1);return r.attemptNumber=e,r.retriesLeft=n,r};async function Qu(r,e){return new Promise((t,n)=>{e={...e},e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.retries??=10;let s=Cm.default.operation(e),o=()=>{s.stop(),n(e.signal?.reason)};e.signal&&!e.signal.aborted&&e.signal.addEventListener("abort",o,{once:!0});let i=()=>{e.signal?.removeEventListener("abort",o),s.stop()};s.attempt(async a=>{try{let c=await r(a);i(),t(c)}catch(c){try{if(!(c instanceof Error))throw new TypeError(`Non-error was thrown: "${c}". You should only throw errors.`);if(c instanceof Ju)throw c.originalError;if(c instanceof TypeError&&!Yu(c))throw c;if(Bm(c,a,e),await e.shouldRetry(c)||(s.stop(),n(c)),await e.onFailedAttempt(c),!s.retry(c))throw s.mainError()}catch(u){Bm(u,a,e),i(),n(u)}}})})}var Pa=class{log;queue;started;peerStore;retries;retryInterval;backoffFactor;connectionManager;events;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:reconnect-queue"),this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.queue=new Na({concurrency:t.maxParallelReconnects??5,metricName:"libp2p_reconnect_queue",metrics:e.metrics}),this.started=!1,this.retries=t.retries??5,this.backoffFactor=t.backoffFactor,this.retryInterval=t.retryInterval,this.events=e.events,e.events.addEventListener("peer:disconnect",n=>{this.maybeReconnect(n.detail).catch(s=>{this.log.error("failed to maybe reconnect to %p - %e",n.detail,s)})})}async maybeReconnect(e){if(!this.started)return;let t=await this.peerStore.get(e);Im(t)&&(this.queue.has(e)||this.queue.add(async n=>{await Qu(async s=>{if(this.started)try{await this.connectionManager.openConnection(e,{signal:n?.signal})}catch(o){throw this.log("reconnecting to %p attempt %d of %d failed - %e",e,s,this.retries,o),o}},{signal:n?.signal,retries:this.retries,factor:this.backoffFactor,minTimeout:this.retryInterval})},{peerId:e}).catch(async n=>{this.log.error("failed to reconnect to %p - %e",e,n);let s={};[...t.tags.keys()].forEach(o=>{o.startsWith(ic)&&(s[o]=void 0)}),await this.peerStore.merge(e,{tags:s}),this.events.safeDispatchEvent("peer:reconnect-failure",{detail:e})}).catch(async n=>{this.log.error("failed to remove keep-alive tag from %p - %e",e,n)}))}start(){this.started=!0}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[t=>Im(t)]});await Promise.all(e.map(async t=>{await this.connectionManager.openConnection(t.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)})}stop(){this.started=!1,this.queue.abort()}};function Im(r){for(let e of r.tags.keys())if(e.startsWith(ic))return!0;return!1}var Xu=50,ef={maxConnections:va,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},Da=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;outboundPendingConnections;maxConnections;dialQueue;reconnectQueue;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;peerId;constructor(e,t={}){if(this.maxConnections=t.maxConnections??ef.maxConnections,this.maxConnections<1)throw new R("Connection Manager maxConnections must be greater than 0");this.connections=new Ot,this.started=!1,this.peerId=e.peerId,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.allow=(t.allow??[]).map(n=>Os(n)),this.deny=(t.deny??[]).map(n=>Os(n)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=t.maxIncomingPendingConnections??ef.maxIncomingPendingConnections,this.outboundPendingConnections=0,this.inboundConnectionRateLimiter=new ba({points:t.inboundConnectionThreshold??ef.inboundConnectionThreshold,duration:1}),this.connectionPruner=new Aa({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:t.allow?.map(n=>j(n))}),this.dialQueue=new La(e,{addressSorter:t.addressSorter,maxParallelDials:t.maxParallelDials??Ea,maxDialQueueLength:t.maxDialQueueLength??500,maxPeerAddrsToDial:t.maxPeerAddrsToDial??25,dialTimeout:t.dialTimeout??5e3,resolvers:t.resolvers??{dnsaddr:Ir},connections:this.connections}),this.reconnectQueue=new Pa({events:e.events,peerStore:e.peerStore,logger:e.logger,connectionManager:this},{retries:t.reconnectRetries,retryInterval:t.reconnectRetryInterval,backoffFactor:t.reconnectBackoffFactor,maxParallelReconnects:t.maxParallelReconnects})}[Symbol.toStringTag]="@libp2p/connection-manager";async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,"inbound pending":this.incomingPendingConnections,outbound:0,"outbound pending":this.outboundPendingConnections};for(let t of this.connections.values())for(let n of t)e[n.direction]++;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 s of n.streams){let o=`${s.direction} ${s.protocol??"unnegotiated"}`;e[o]=(e[o]??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 s of n){let o={};for(let i of s.streams){let a=`${i.direction} ${i.protocol??"unnegotiated"}`;o[a]=(o[a]??0)+1}for(let[i,a]of Object.entries(o))e[i]=e[i]??[],e[i].push(a)}let t={};for(let[n,s]of Object.entries(e)){s=s.sort((i,a)=>i-a);let o=Math.floor(s.length*.9);t[n]=s[o]}return t}}),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),await Ef(this.dialQueue,this.reconnectQueue,this.connectionPruner),this.started=!0,this.log("started")}async stop(){this.events.removeEventListener("connection:open",this.onConnect),this.events.removeEventListener("connection:close",this.onDisconnect),await Af(this.reconnectQueue,this.dialQueue,this.connectionPruner);let e=[];for(let t of this.connections.values())for(let n of t)e.push((async()=>{try{await n.close()}catch(s){this.log.error(s)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}getMaxConnections(){return this.maxConnections}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}if(t.status!=="open")return;let n=t.remotePeer,s=!this.connections.has(n),o=this.connections.get(n)??[];o.push(t),this.connections.set(n,o),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,n=t.remotePeer,o=(this.connections.get(n)??[]).filter(i=>i.id!==t.id);this.connections.set(n,o),o.length===0&&(this.log("onDisconnect remove all connections for peer %p",n),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.started)throw new vt("Not started");this.outboundPendingConnections++;try{t.signal?.throwIfAborted();let{peerId:n}=xa(e);if(this.peerId.equals(n))throw new Wr("Can not dial self");if(n!=null&&t.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>c.limits==null);if(a!=null)return this.log("had an existing non-limited connection to %p",n),t.onProgress?.(new de("dial-queue:already-connected")),a}let s=await this.dialQueue.dial(e,{...t,priority:t.priority??Xu});if(s.status!=="open")throw new Gr("Remote closed connection during opening");let o=this.connections.get(s.remotePeer);o==null&&(o=[],this.connections.set(s.remotePeer,o));let i=!1;for(let a of o)if(a.id===s.id&&(i=!0),t.force!==!0&&a.id!==s.id&&a.remoteAddr.equals(s.remoteAddr))return s.abort(new qt("Duplicate multiaddr connection")),a;return i||o.push(s),s}finally{this.outboundPendingConnections--}}async closeConnections(e,t={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async s=>{try{await s.close(t)}catch(o){s.abort(o)}}))}async acceptIncomingConnection(e){if(this.deny.some(s=>s.contains(e.remoteAddr.nodeAddress().address)))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(s=>s.contains(e.remoteAddr.nodeAddress().address)))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 s=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(s,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,s),!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=>j(n))}))}async isDialable(e,t={}){return this.dialQueue.isDialable(e,t)}};var Rn=class{movingAverage;variance;deviation;forecast;timespan;previousTime;constructor(e){this.timespan=e,this.movingAverage=0,this.variance=0,this.deviation=0,this.forecast=0}alpha(e,t){return 1-Math.exp(-(e-t)/this.timespan)}push(e,t=Date.now()){if(this.previousTime!=null){let n=this.alpha(t,this.previousTime),s=e-this.movingAverage,o=n*s;this.movingAverage=n*e+(1-n)*this.movingAverage,this.variance=(1-n)*(this.variance+s*o),this.deviation=Math.sqrt(this.variance),this.forecast=this.movingAverage+n*s}else this.movingAverage=e;this.previousTime=t}};var yx=1.2,wx=2,bx=2e3,Ra=class{success;failure;next;metric;timeoutMultiplier;failureMultiplier;minTimeout;constructor(e={}){this.success=new Rn(e.interval??5e3),this.failure=new Rn(e.interval??5e3),this.next=new Rn(e.interval??5e3),this.failureMultiplier=e.failureMultiplier??wx,this.timeoutMultiplier=e.timeoutMultiplier??yx,this.minTimeout=e.minTimeout??bx,e.metricName!=null&&(this.metric=e.metrics?.registerMetricGroup(e.metricName))}getTimeoutSignal(e={}){let t=Math.max(Math.round(this.next.movingAverage*(e.timeoutFactor??this.timeoutMultiplier)),this.minTimeout),n=AbortSignal.timeout(t),s=Ht([e.signal,n]);return se(1/0,s,n),s.start=Date.now(),s.timeout=t,s}cleanUp(e){let t=Date.now()-e.start;e.aborted?(this.failure.push(t),this.next.push(t*this.failureMultiplier),this.metric?.update({failureMovingAverage:this.failure.movingAverage,failureDeviation:this.failure.deviation,failureForecast:this.failure.forecast,failureVariance:this.failure.variance,failure:t})):(this.success.push(t),this.next.push(t),this.metric?.update({successMovingAverage:this.success.movingAverage,successDeviation:this.success.deviation,successForecast:this.success.forecast,successVariance:this.success.variance,success:t}))}};var tf=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=he(),this.haveNext=he()}[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=he(),e}async throw(e){return this.ended=!0,e!=null&&(this.haveNext.promise.catch(()=>{}),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");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=he(),await ur(this.readNext.promise,t?.signal,t)}};function km(){return new tf}var Ma=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var rf=class extends Error{code;constructor(e,t){super(e),this.code=t}},nf=class extends rf{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Ua(r,e){let t=km();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 s=new we;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new nf("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:d}=await Promise.race([n.next(),u]);return l===!0?new we:d}for(;s.byteLength<i;){let{value:l,done:d}=await Promise.race([n.next(),u]);if(d===!0)throw new Ma("unexpected end of input");s.append(l)}let f=s.sublist(0,i);return s.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(s.byteLength>0){let i=r.source;r.source=async function*(){e?.yieldBytes===!1?yield s:yield*s,yield*i}()}return r}}}var xx=1e4,vx="1.0.0",Ex="ping",Ax="ipfs",Tm=32,Sx=!0,Oa=class{protocol;components;log;heartbeatInterval;pingIntervalMs;abortController;timeout;abortConnectionOnPingFailure;constructor(e,t={}){this.components=e,this.protocol=`/${t.protocolPrefix??Ax}/${Ex}/${vx}`,this.log=e.logger.forComponent("libp2p:connection-monitor"),this.pingIntervalMs=t.pingInterval??xx,this.abortConnectionOnPingFailure=t.abortConnectionOnPingFailure??Sx,this.timeout=new Ra({...t.pingTimeout??{},metrics:e.metrics,metricName:"libp2p_connection_monitor_ping_time_milliseconds"})}[Symbol.toStringTag]="@libp2p/connection-monitor";[Fn]=["@libp2p/connection-monitor"];start(){this.abortController=new AbortController,se(1/0,this.abortController.signal),this.heartbeatInterval=setInterval(()=>{this.components.connectionManager.getConnections().forEach(e=>{Promise.resolve().then(async()=>{let t=Date.now();try{let n=this.timeout.getTimeoutSignal({signal:this.abortController?.signal}),s=await e.newStream(this.protocol,{signal:n,runOnLimitedConnection:!0}),o=Ua(s);t=Date.now(),await Promise.all([o.write(dn(Tm),{signal:n}),o.read(Tm,{signal:n})]),e.rtt=Date.now()-t,await o.unwrap().close({signal:n})}catch(n){if(n.name!=="UnsupportedProtocolError")throw n;e.rtt=(Date.now()-t)/2}}).catch(t=>{this.log.error("error during heartbeat",t),this.abortConnectionOnPingFailure?(this.log.error("aborting connection due to ping failure"),e.abort(t)):this.log("connection ping failed, but not aborting due to abortConnectionOnPingFailure flag")})})},this.pingIntervalMs)}stop(){this.abortController?.abort(),this.heartbeatInterval!=null&&clearInterval(this.heartbeatInterval)}};function _x(r){return r[Symbol.asyncIterator]!=null}function Bx(...r){let e=[];for(let t of r)_x(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=_a({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let s of n)t.push(s)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var Fs=Bx;var Fa=class{routers;started;components;constructor(e,t){this.routers=t.routers??[],this.started=!1,this.components=e}[Symbol.toStringTag]="@libp2p/content-routing";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 Tn("No content routers available");let n=this,s=new Tr;for await(let o of Fs(...n.routers.map(i=>i.findProviders(e,t))))o!=null&&(o.multiaddrs.length>0&&await this.components.peerStore.merge(o.id,{multiaddrs:o.multiaddrs}),!s.has(o.id)&&(s.add(o.id),yield o))}async provide(e,t={}){if(this.routers.length===0)throw new Tn("No content routers available");await Promise.all(this.routers.map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){if(this.routers.length===0)throw new Tn("No content routers available");await Promise.all(this.routers.map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){if(!this.isStarted())throw new vt;await Promise.all(this.routers.map(async s=>{await s.put(e,t,n)}))}async get(e,t){if(!this.isStarted())throw new vt;return Promise.any(this.routers.map(async n=>n.get(e,t)))}};var Va=globalThis.CustomEvent??Event;async function*sf(r,e={}){let t=e.concurrency??1/0;t<1&&(t=1/0);let n=e.ordered==null?!1:e.ordered,s=new EventTarget,o=[],i=he(),a=he(),c=!1,u,f=!1;s.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let p of r){if(o.length===t&&(i=he(),await i.promise),f)break;let m={done:!1};o.push(m),p().then(g=>{m.done=!0,m.ok=!0,m.value=g,s.dispatchEvent(new Va("task-complete"))},g=>{m.done=!0,m.err=g,s.dispatchEvent(new Va("task-complete"))})}c=!0,s.dispatchEvent(new Va("task-complete"))}catch(p){u=p,s.dispatchEvent(new Va("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(p=>p.done)}function*d(){for(;o.length>0&&o[0].done;){let p=o[0];if(o.shift(),p.ok)yield p.value;else throw f=!0,i.resolve(),p.err;i.resolve()}}function*h(){for(;l();)for(let p=0;p<o.length;p++)if(o[p].done){let m=o[p];if(o.splice(p,1),p--,m.ok)yield m.value;else throw f=!0,i.resolve(),m.err;i.resolve()}}for(;;){if(l()||(a=he(),await a.promise),u!=null)throw u;if(n?yield*d():yield*h(),c&&o.length===0)break}}var Ha=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??[]}[Symbol.toStringTag]="@libp2p/peer-routing";async findPeer(e,t){if(this.routers.length===0)throw new Ls("No peer routers available");if(e.toString()===this.peerId.toString())throw new ia("Should not try to find self");let n=this,s=Fs(...this.routers.map(o=>async function*(){try{yield await o.findPeer(e,t)}catch(i){n.log.error(i)}}()));for await(let o of s)if(o!=null)return o.multiaddrs.length>0&&await this.peerStore.merge(o.id,{multiaddrs:o.multiaddrs}),o;throw new js}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Ls("No peer routers available");let n=this,s=Bs(1024);for await(let o of sf(async function*(){let i=Fs(...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}}()))o!=null&&(o.multiaddrs.length>0&&await this.peerStore.merge(o.id,{multiaddrs:o.multiaddrs}),!s.has(o.id.toMultihash().bytes)&&(s.add(o.id.toMultihash().bytes),yield o))}};var Ka=class extends Et{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,se(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/random-walk";start(){this.shutdownController=new AbortController,se(1/0,this.shutdownController.signal)}stop(){this.shutdownController.abort()}async*walk(e){this.walking||this.startWalk(),this.walkers++;let t=Ht([this.shutdownController.signal,e?.signal]);se(1/0,t);try{for(;;)this.needNext?.resolve(),this.needNext=he(),yield(await Pn(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,se(1/0,this.walkController.signal);let e=Ht([this.walkController.signal,this.shutdownController.signal]);se(1/0,e);let t=Date.now(),n=0;Promise.resolve().then(async()=>{for(this.log("start walk");this.walkers>0;)try{let s=dn(32),o=Date.now();for await(let i of this.peerRouting.getClosestPeers(s,{signal:e}))e.aborted&&this.log("aborting walk"),e.throwIfAborted(),this.log("found peer %p after %dms for %d walkers",i.id,Date.now()-o,this.walkers),n++,this.safeDispatchEvent("walk:peer",{detail:i}),this.walkers===1&&this.needNext!=null&&(this.log("wait for need next"),await ur(this.needNext.promise,e)),o=Date.now();this.log("walk iteration for %b and %d walkers finished, found %d peers",s,this.walkers,n)}catch(s){this.log.error("randomwalk errored",s),this.safeDispatchEvent("walk:error",{detail:s})}this.log("no walkers left, ended walk")}).catch(s=>{this.log.error("randomwalk errored",s)}).finally(()=>{this.log("finished walk, found %d peers after %dms",n,Date.now()-t),this.walking=!1})}};var of=32,af=64,qa=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)}[Symbol.toStringTag]="@libp2p/registrar";getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let t=this.handlers.get(e);if(t==null)throw new aa(`No handler registered for protocol ${e}`);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 ca(`Handler already registered for protocol ${e}`);let s=Pi.bind({ignoreUndefined:!0})({maxInboundStreams:of,maxOutboundStreams:af},n);this.handlers.set(e,{handler:t,options:s}),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 R("invalid topology");let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,s=this.topologies.get(e);return s==null&&(s=new Map,this.topologies.set(e,s)),s.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 s of n.protocols){let o=this.topologies.get(s);if(o!=null)for(let i of o.values())i.filter?.has(t)!==!1&&(i.filter?.remove(t),i.onDisconnect?.(t))}}).catch(n=>{n.name!=="NotFoundError"&&this.log.error("could not inform topologies of disconnecting peer %p",t,n)})}_onPeerUpdate(e){let{peer:t,previous:n}=e.detail,s=(n?.protocols??[]).filter(o=>!t.protocols.includes(o));for(let o of s){let i=this.topologies.get(o);if(i!=null)for(let a of i.values())a.filter?.has(t.id)!==!1&&(a.filter?.remove(t.id),a.onDisconnect?.(t.id))}}_onPeerIdentify(e){let t=e.detail.protocols,n=e.detail.connection,s=e.detail.peerId;for(let o of t){let i=this.topologies.get(o);if(i!=null)for(let a of i.values())n.limits!=null&&a.notifyOnLimitedConnection!==!0||a.filter?.has(s)!==!0&&(a.filter?.add(s),a.onConnect?.(s,n))}}};var cf=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 Lm(r){let{name:e,metrics:t}=r,n;return t!=null?n=new cf({name:e,metrics:t}):n=new Map,n}var $a=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=Lm({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=t.faultTolerance??Kt.FATAL_ALL}[Symbol.toStringTag]="@libp2p/transport-manager";add(e){let t=e[Symbol.toStringTag];if(t==null)throw new R("Transport must have a valid tag");if(this.transports.has(t))throw new R(`There is already a transport with the tag ${t}`);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 s=n.pop();s!=null&&e.push(s.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 fa(`No transport available for address ${String(e)}`);return t?.onProgress?.(new de("transport-manager:selected-transport",n[Symbol.toStringTag])),n.dial(e,{...t,upgrader:this.components.upgrader})}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 vt("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,s]of this.transports.entries()){let o=s.listenFilter(e),i=[];for(let u of o){this.log("creating listener for %s on %a",n,u);let f=s.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 d=l.findIndex(h=>h===f);l.splice(d,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!==Kt.NO_FATAL)throw new Or(`Transport (${n}) could not listen on any available address`)}if(t.length===this.transports.size){let n=`no valid addresses were provided for transports [${t.join(", ")}]`;if(this.faultTolerance===Kt.FATAL_ALL)throw new Or(n);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 s=t.pop();s!=null&&n.push(s.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 _e="/multistream/1.0.0";var za=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ga=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Wa=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Vs(r,e={}){let t=Ua(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=pe(e.maxDataLength));let n=e?.lengthDecoder??it,s=e?.lengthEncoder??ke;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(a<0)throw new za("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Wa("message length length too long");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Ga("message length too long");return t.read(a,i)},write:async(i,a)=>{await t.write(new we(s(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new we(...i.flatMap(u=>[s(u.byteLength),u]));await t.write(c,a)},unwrap:()=>t.unwrap()}}var Cx=P(`
7
+ `);async function qr(r,e,t){await r.write(e,t)}async function Nm(r,e,t){await r.writeV(e,t)}async function Ix(r,e){let t=await r.read(e);if(t.byteLength===0||t.get(t.byteLength-1)!==Cx[0])throw e.log.error("Invalid mss message - missing newline",t),new Ys("Missing newline");return t.sublist(0,-1)}async function fr(r,e){let t=await Ix(r,e);return te(t.subarray())}async function Hs(r,e,t){if(e=Array.isArray(e)?[...e]:[e],e.length===1&&t.negotiateFully===!1)return kx(r,e[0],t);let n=Vs(r,{...t,maxDataLength:1024}),s=e.shift();if(s==null)throw new Error("At least one protocol must be specified");t.log.trace('select: write ["%s", "%s"]',_e,s);let o=P(`${_e}
8
+ `),i=P(`${s}
9
+ `);await Nm(n,[o,i],t),t.log.trace("select: reading multistream-select header");let a=await fr(n,t);if(t.log.trace('select: read "%s"',a),a===_e&&(t.log.trace("select: reading protocol response"),a=await fr(n,t),t.log.trace('select: read "%s"',a)),a===s)return{stream:n.unwrap(),protocol:s};for(let c of e){t.log.trace('select: write "%s"',c),await qr(n,P(`${c}
10
+ `),t),t.log.trace("select: reading protocol response");let u=await fr(n,t);if(t.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new On("protocol selection failed")}function kx(r,e,t){let n=r.sink.bind(r),s=r.source,o=!1,i=!1,a=he(),c=!1,u=!1,f=he(),l=!1,d=!1,h=he(),p=Vs({sink:n,source:s},{...t,maxDataLength:1024});r.sink=async b=>{let{sink:y}=p.unwrap();await y(async function*(){let x=!1;for await(let A of b){if(u&&await f.promise,c)yield A;else{u=!0,t.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',_e,e,A.byteLength);let _=`${e}
11
+ `;yield new we(Uint8Array.from([19]),P(`${_e}
12
+ `),ke(_.length),P(_),A).subarray(),t.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',_e,e,A.byteLength),c=!0,u=!1,f.resolve(),m().catch(v=>{t.log.error("could not finish optimistic protocol negotiation of %s",e,v)})}x=!0}x||await m()}())};async function m(){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 g()),l||(t.log.trace("optimistic: doing read protocol for %s stream",e),await w())}finally{i=!1,o=!0,a.resolve()}}async function g(){if(u){await f.promise;return}u=!0;try{t.log.trace('optimistic: write ["%s", "%s", data] in source',_e,e),await p.writeV([P(`${_e}
13
+ `),P(`${e}
14
+ `)]),t.log.trace('optimistic: wrote ["%s", "%s", data] in source',_e,e)}finally{c=!0,u=!1,f.resolve()}}async function w(){if(d){await h.promise;return}d=!0;try{t.log.trace("optimistic: reading multistream select header");let b=await fr(p,t);if(t.log.trace('optimistic: read multistream select header "%s"',b),b===_e&&(b=await fr(p,t)),t.log.trace('optimistic: read protocol "%s", expecting "%s"',b,e),b!==e)throw new On("protocol selection failed")}finally{l=!0,d=!1,h.resolve()}}if(r.source=async function*(){await m(),t.log.trace('optimistic: reading data from "%s" stream',e),yield*p.unwrap().source}(),r.closeRead!=null){let b=r.closeRead.bind(r);r.closeRead=async y=>{o||await m().catch(x=>{t.log.error("could not negotiate protocol before close read",x)}),await b(y)}}if(r.closeWrite!=null){let b=r.closeWrite.bind(r);r.closeWrite=async y=>{o||await m().catch(x=>{t.log.error("could not negotiate protocol before close write",x)}),await b(y)}}if(r.close!=null){let b=r.close.bind(r);r.close=async y=>{let x=[];u&&x.push(f.promise),d&&x.push(h.promise),x.length>0?await ur(Promise.all(x),y?.signal):(o=!0,i=!1,a.resolve()),await b(y)}}return{stream:r,protocol:e}}function ja(r){return r[Symbol.asyncIterator]!=null}var Za=r=>{let e=pe(r),t=Ce(e);return ke(r,t),Za.bytes=e,t};Za.bytes=0;function Xa(r,e){e=e??{};let t=e.lengthEncoder??Za;function*n(s){let o=t(s.byteLength);o instanceof Uint8Array?yield o:yield*o,s instanceof Uint8Array?yield s:yield*s}return ja(r)?async function*(){for await(let s of r)yield*n(s)}():function*(){for(let s of r)yield*n(s)}()}Xa.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Za;return new we(t(r.byteLength),r)};var Ya=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ja=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Qa=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Ks=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var Tx=8,Lx=1024*1024*4,$r;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})($r||($r={}));var ff=r=>{let e=it(r);return ff.bytes=pe(e),e};ff.bytes=0;function uf(r,e){let t=new we,n=$r.LENGTH,s=-1,o=e?.lengthDecoder??ff,i=e?.maxLengthLength??Tx,a=e?.maxDataLength??Lx;function*c(){for(;t.byteLength>0;){if(n===$r.LENGTH)try{if(s=o(t),s<0)throw new Ya("Invalid message length");if(s>a)throw new Ja("Message length too long");let u=o.bytes;t.consume(u),e?.onLength!=null&&e.onLength(s),n=$r.DATA}catch(u){if(u instanceof RangeError){if(t.byteLength>i)throw new Qa("Message length length too long");break}throw u}if(n===$r.DATA){if(t.byteLength<s)break;let u=t.sublist(0,s);t.consume(s),e?.onData!=null&&e.onData(u),yield u,n=$r.LENGTH}}}return ja(r)?async function*(){for await(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw new Ks("Unexpected end of input")}():function*(){for(let u of r)t.append(u),yield*c();if(t.byteLength>0)throw new Ks("Unexpected end of input")}()}uf.fromReader=(r,e)=>{let t=1,n=async function*(){for(;;)try{let{done:o,value:i}=await r.next(t);if(o===!0)return;i!=null&&(yield i)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{t=1}}();return uf(n,{...e??{},onLength:o=>{t=o}})};async function qs(r,e,t){e=Array.isArray(e)?e:[e],t.log.trace("handle: available protocols %s",e);let n=Vs(r,{...t,maxDataLength:1024,maxLengthLength:2});for(;;){t.log.trace("handle: reading incoming string");let s=await fr(n,t);if(t.log.trace('handle: read "%s"',s),s===_e){t.log.trace('handle: respond with "%s" for "%s"',_e,s),await qr(n,P(`${_e}
15
+ `),t),t.log.trace('handle: responded with "%s" for "%s"',_e,s);continue}if(e.includes(s))return t.log.trace('handle: respond with "%s" for "%s"',s,s),await qr(n,P(`${s}
16
+ `),t),t.log.trace('handle: responded with "%s" for "%s"',s,s),{stream:n.unwrap(),protocol:s};if(s==="ls"){let o=new we(...e.map(i=>Xa.single(P(`${i}
17
17
  `))),P(`
18
- `));e.log.trace('handle: respond with "%s" for %s',t,o),await Fr(n,s,e),e.log.trace('handle: responded with "%s" for %s',t,o);continue}e.log.trace('handle: respond with "na" for "%s"',o),await Fr(n,P(`na
19
- `),e),e.log('handle: responded with "na" for "%s"',o)}}var ax=500,Xu=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;limits;log;tags;_newStream;_close;_abort;_getStreams;constructor(t){let{remoteAddr:e,remotePeer:n,newStream:o,close:s,abort:i,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=e,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.limits=t.limits,this.log=t.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";[sf]=!0;get streams(){return this._getStreams()}async newStream(t,e){if(this.status==="closing")throw new Fo("the connection is being closed");if(this.status==="closed")throw new Kr("the connection is closed");if(Array.isArray(t)||(t=[t]),this.limits!=null&&e?.runOnLimitedConnection!==!0)throw new zr("Cannot open protocol stream on limited connection");let n=await this._newStream(t,e);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){if(this.log("closing connection to %a",this.remoteAddr),this.status="closing",t.signal==null){let e=AbortSignal.timeout(ax);ot(1/0,e),t={...t,signal:e}}try{this.log.trace("closing underlying transport"),await this._close(t),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(e){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,e),this.abort(e)}}}abort(t){this.status!=="closed"&&(this.log.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this._abort(t),this.status="closed",this.timeline.close=Date.now())}};function dm(r){return new Xu(r)}function ux(r,t){try{let{options:e}=t.getHandler(r);return e.maxInboundStreams}catch(e){if(e.name!=="UnhandledProtocolError")throw e}return $u}function fx(r,t,e={}){try{let{options:n}=t.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.name!=="UnhandledProtocolError")throw n}return e.maxOutboundStreams??zu}function pm(r,t,e){let n=0;return e.streams.forEach(o=>{o.direction===t&&o.protocol===r&&n++}),n}var qa=class{components;connectionEncrypters;streamMuxers;inboundUpgradeTimeout;outboundUpgradeTimeout;inboundStreamProtocolNegotiationTimeout;outboundStreamProtocolNegotiationTimeout;events;metrics;constructor(t,e){this.components=t,this.connectionEncrypters=new Map,e.connectionEncrypters.forEach(n=>{this.connectionEncrypters.set(n.protocol,n)}),this.streamMuxers=new Map,e.streamMuxers.forEach(n=>{this.streamMuxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=e.inboundUpgradeTimeout??3e3,this.outboundUpgradeTimeout=e.outboundUpgradeTimeout??3e3,this.inboundStreamProtocolNegotiationTimeout=e.inboundStreamProtocolNegotiationTimeout??2e3,this.outboundStreamProtocolNegotiationTimeout=e.outboundStreamProtocolNegotiationTimeout??2e3,this.events=t.events,this.metrics={dials:t.metrics?.registerCounterGroup("libp2p_connection_manager_dials_total"),errors:t.metrics?.registerCounterGroup("libp2p_connection_manager_dial_errors_total")}}[Symbol.toStringTag]="@libp2p/upgrader";async shouldBlockConnection(t,...e){let n=this.components.connectionGater[t];if(n==null)return;if(await n.apply(this.components.connectionGater,e)===!0)throw new Yi(`The multiaddr connection is blocked by gater.${t}`)}async upgradeInbound(t,e={}){let n=!1;try{if(this.metrics.dials?.increment({inbound:!0}),n=await this.components.connectionManager.acceptIncomingConnection(t),!n)throw new Ji("Connection denied");await this.shouldBlockConnection("denyInboundConnection",t),await this._performUpgrade(t,"inbound",e)}catch(o){throw this.metrics.errors?.increment({inbound:!0}),o}finally{n&&this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,e={}){try{this.metrics.dials?.increment({outbound:!0});let n=t.remoteAddr.getPeerId(),o;return n!=null&&(o=we(n),await this.shouldBlockConnection("denyOutboundConnection",o,t)),await this._performUpgrade(t,"outbound",e)}catch(n){throw this.metrics.errors?.increment({outbound:!0}),n}}async _performUpgrade(t,e,n){let o,s,i,a,c,u=AbortSignal.timeout(e==="inbound"?this.inboundUpgradeTimeout:this.outboundUpgradeTimeout),f=Ve([u,n.signal]);ot(1/0,u,f),n.signal=f,this.components.metrics?.trackMultiaddrConnection(t),t.log.trace("starting the %s connection upgrade",e);let l=t;if(n?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(t.log("protecting the %s connection",e),l=await d.protect(t,n))}try{if(o=l,n?.skipEncryption!==!0){n?.onProgress?.(new dt(`upgrader:encrypt-${e}-connection`)),{conn:o,remotePeer:s,protocol:c}=await(e==="inbound"?this._encryptInbound(l,{...n,signal:f}):this._encryptOutbound(l,{...n,signal:f}));let d={...l,...o};await this.shouldBlockConnection(e==="inbound"?"denyInboundEncryptedConnection":"denyOutboundEncryptedConnection",s,d)}else{let d=t.remoteAddr.getPeerId();if(d==null)throw new Ke(`${e} connection that skipped encryption must have a peer id`);let h=we(d);c="native",s=h}if(s.equals(this.components.peerId)){let d=new qr("Can not dial self");throw t.abort(d),d}if(i=o,n?.muxerFactory!=null)a=n.muxerFactory;else if(this.streamMuxers.size>0){n?.onProgress?.(new dt(`upgrader:multiplex-${e}-connection`));let d=await(e==="inbound"?this._multiplexInbound({...l,...o},this.streamMuxers,n):this._multiplexOutbound({...l,...o},this.streamMuxers,n));a=d.muxerFactory,i=d.stream}}catch(d){throw t.log.error("failed to upgrade inbound connection %s %a - %e",e==="inbound"?"from":"to",t.remoteAddr,d),d}finally{f.clear()}return await this.shouldBlockConnection(e==="inbound"?"denyInboundUpgradedConnection":"denyOutboundUpgradedConnection",s,t),t.log("successfully upgraded %s connection",e),this._createConnection({cryptoProtocol:c,direction:e,maConn:t,upgradedConn:i,muxerFactory:a,remotePeer:s,limits:n?.limits})}_createConnection(t){let{cryptoProtocol:e,direction:n,maConn:o,upgradedConn:s,remotePeer:i,muxerFactory:a,limits:c}=t,u,f,l;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:p=>{l!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),g=AbortSignal.timeout(this.inboundStreamProtocolNegotiationTimeout);ot(1/0,g);let{stream:w,protocol:b}=await Ro(p,m,{signal:g,log:p.log,yieldBytes:!1});if(l==null)return;l.log("incoming stream opened on %s",b);let y=ux(b,this.components.registrar);if(pm(b,"inbound",l)===y){let A=new zo(`Too many inbound protocol streams for protocol "${b}" - limit ${y}`);throw p.abort(A),A}p.source=w.source,p.sink=w.sink,p.protocol=b,w.closeWrite!=null&&(p.closeWrite=w.closeWrite),w.closeRead!=null&&(p.closeRead=w.closeRead),w.close!=null&&(p.close=w.close),await this.components.peerStore.merge(i,{protocols:[b]}),this.components.metrics?.trackProtocolStream(p,l),this._onStream({connection:l,stream:p,protocol:b})}).catch(async m=>{l.log.error("error handling incoming stream id %s - %e",p.id,m),p.timeline.close==null&&await p.close()})}}),f=async(p,m={})=>{if(u==null)throw new Rr("Connection is not multiplexed");l.log.trace("starting new stream for protocols %s",p);let g=await u.newStream();l.log.trace("started new stream %s for protocols %s",g.id,p);try{if(m.signal==null){g.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",p);let A=AbortSignal.timeout(this.outboundStreamProtocolNegotiationTimeout);ot(1/0,A),m={...m,signal:A}}g.log.trace("selecting protocol from protocols %s",p);let{stream:w,protocol:b}=await Po(g,p,{...m,log:g.log,yieldBytes:!0});g.log.trace("selected protocol %s",b);let y=fx(b,this.components.registrar,m),x=pm(b,"outbound",l);if(x>=y){let A=new Go(`Too many outbound protocol streams for protocol "${b}" - ${x}/${y}`);throw g.abort(A),A}return await this.components.peerStore.merge(i,{protocols:[b]}),g.source=w.source,g.sink=w.sink,g.protocol=b,w.closeWrite!=null&&(g.closeWrite=w.closeWrite),w.closeRead!=null&&(g.closeRead=w.closeRead),w.close!=null&&(g.close=w.close),this.components.metrics?.trackProtocolStream(g,l),g}catch(w){throw l.log.error("could not create new outbound stream on connection %s %a for protocols %s - %e",n==="inbound"?"from":"to",t.maConn.remoteAddr,p,w),g.timeline.close==null&&g.abort(w),w}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(p=>{l.log.error("error piping data through muxer - %e",p)}));let d=o.timeline;o.timeline=new Proxy(d,{set:(...p)=>(p[1]==="close"&&p[2]!=null&&d.close==null&&(async()=>{try{l.status==="open"&&await l.close()}catch(m){l.log.error("error closing connection after timeline close %e",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:l})}})().catch(m=>{l.log.error("error thrown while dispatching connection:close event %e",m)}),Reflect.set(...p))}),o.timeline.upgraded=Date.now();let h=()=>{throw new Rr("Connection is not multiplexed")};return l=dm({remoteAddr:o.remoteAddr,remotePeer:i,status:"open",direction:n,timeline:o.timeline,multiplexer:u?.protocol,encryption:e,limits:c,logger:this.components.logger,newStream:f??h,getStreams:()=>u?.streams??[],close:async p=>{await u?.close(p),await o.close(p)},abort:p=>{o.abort(p),u?.abort(p)}}),this.events.safeDispatchEvent("connection:open",{detail:l}),l.__maConnTimeline=d,l}_onStream(t){let{connection:e,stream:n,protocol:o}=t,{handler:s,options:i}=this.components.registrar.getHandler(o);if(e.limits!=null&&i.runOnLimitedConnection!==!0)throw new zr("Cannot open protocol stream on limited connection");s({connection:e,stream:n})}async _encryptInbound(t,e){let n=Array.from(this.connectionEncrypters.keys());try{let{stream:o,protocol:s}=await Ro(t,n,{...e,log:t.log}),i=this.connectionEncrypters.get(s);if(i==null)throw new Mr(`no crypto module found for ${s}`);return t.log("encrypting inbound connection to %a using %s",t.remoteAddr,s),{...await i.secureInbound(o,e),protocol:s}}catch(o){throw t.log.error("encrypting inbound connection from %a failed",t.remoteAddr,o),new Mr(o.message)}}async _encryptOutbound(t,e){let n=Array.from(this.connectionEncrypters.keys());try{t.log.trace("selecting encrypter from %s",n);let{stream:o,protocol:s}=await Po(t,n,{...e,log:t.log,yieldBytes:!0}),i=this.connectionEncrypters.get(s);if(i==null)throw new Mr(`no crypto module found for ${s}`);return t.log("encrypting outbound connection to %a using %s",t.remoteAddr,s),{...await i.secureOutbound(o,e),protocol:s}}catch(o){throw t.log.error("encrypting outbound connection to %a failed",t.remoteAddr,o),new Mr(o.message)}}async _multiplexOutbound(t,e,n){let o=Array.from(e.keys());t.log("outbound selecting muxer %s",o);try{t.log.trace("selecting stream muxer from %s",o);let{stream:s,protocol:i}=await Po(t,o,{...n,log:t.log,yieldBytes:!0});t.log("selected %s as muxer protocol",i);let a=e.get(i);return{stream:s,muxerFactory:a}}catch(s){throw t.log.error("error multiplexing outbound connection",s),new Rr(String(s))}}async _multiplexInbound(t,e,n){let o=Array.from(e.keys());t.log("inbound handling muxers %s",o);try{let{stream:s,protocol:i}=await Ro(t,o,{...n,log:t.log}),a=e.get(i);return{stream:s,muxerFactory:a}}catch(s){throw t.log.error("error multiplexing inbound connection",s),new Rr(String(s))}}};var mm="2.3.1-406b3916c",gm="js-libp2p";var $a=class extends ve{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(t){super(),this.status="stopped";let e=new ve,n=e.dispatchEvent.bind(e);e.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new CustomEvent(a.type,{detail:a.detail}));return c||u},ot(1/0,e),this.peerId=t.peerId,this.logger=t.logger??Ci(),this.log=this.logger.forComponent("libp2p"),this.services={};let o=this.components=Rp({peerId:t.peerId,privateKey:t.privateKey,nodeInfo:t.nodeInfo??{name:gm,version:mm},logger:this.logger,events:e,datastore:t.datastore??new Ki,connectionGater:zp(t.connectionGater),dns:t.dns});this.peerStore=this.configureComponent("peerStore",Lp(o,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.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})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(o)),this.components.upgrader=new qa(this.components,{connectionEncrypters:(t.connectionEncrypters??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),streamMuxers:(t.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:t.connectionManager?.inboundUpgradeTimeout,outboundUpgradeTimeout:t.connectionManager?.outboundUpgradeTimeout}),this.configureComponent("transportManager",new Pa(this.components,t.transportManager)),this.configureComponent("connectionManager",new Aa(this.components,t.connectionManager)),t.connectionMonitor?.enabled!==!1&&this.configureComponent("connectionMonitor",new Ca(this.components,t.connectionMonitor)),this.configureComponent("registrar",new Na(this.components)),this.configureComponent("addressManager",new zi(this.components,t.addresses));let s=(t.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ta(this.components,{routers:s}));let i=(t.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ia(this.components,{routers:i})),this.configureComponent("randomWalk",new La(this.components)),(t.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",f=>{this.#t(f)})}),t.transports?.forEach((a,c)=>{this.components.transportManager.add(this.configureComponent(`transport-${c}`,a(this.components)))}),t.services!=null)for(let a of Object.keys(t.services)){let c=t.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[Ga]!=null&&(this.log("registering service %s for content routing",a),i.push(u[Ga])),u[ja]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[ja])),u[Wa]!=null&&(this.log("registering service %s for peer discovery",a),u[Wa].addEventListener?.("peer",f=>{this.#t(f)}))}Mp(o)}configureComponent(t,e){return e==null&&this.log.error("component %s was null or undefined",t),this.components[t]=e,e}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(t){throw this.log.error("An error occurred starting libp2p",t),this.status="started",await this.stop(),t}}}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(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new Cr;for(let e of this.components.connectionManager.getConnections())t.add(e.remotePeer);return Array.from(t)}async dial(t,e={}){return this.components.connectionManager.openConnection(t,{priority:75,...e})}async dialProtocol(t,e,n={}){if(e==null)throw new R("no protocols were provided to open a stream");if(e=Array.isArray(e)?e:[e],e.length===0)throw new R("no protocols were provided to open a stream");return(await this.dial(t,n)).newStream(e,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,e={}){ar(t)&&(t=we(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,e)}async getPublicKey(t,e={}){if(this.log("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;try{let i=await this.peerStore.get(t);if(i.id.publicKey!=null)return i.id.publicKey}catch(i){if(i.name!=="NotFoundError")throw i}let n=Vt([P("/pk/"),t.toMultihash().bytes]),o=await this.contentRouting.get(n,e),s=fn(o);return await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,e,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async o=>{await this.components.registrar.handle(o,e,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async e=>{await this.components.registrar.unhandle(e)}))}async register(t,e){return this.components.registrar.register(t,e)}unregister(t){this.components.registrar.unregister(t)}async isDialable(t,e={}){return this.components.connectionManager.isDialable(t,e)}#t(t){let{detail:e}=t;if(e.id.toString()===this.peerId.toString()){this.log.error("peer discovery mechanism discovered self");return}this.components.peerStore.merge(e.id,{multiaddrs:e.multiaddrs}).catch(n=>{this.log.error(n)})}};async function dx(r={}){r.privateKey??=await Bd("Ed25519");let t=new $a({...await ap(r),peerId:Td(r.privateKey)});return r.start!==!1&&await t.start(),t}return Tm(px);})();
18
+ `));t.log.trace('handle: respond with "%s" for %s',e,s),await qr(n,o,t),t.log.trace('handle: responded with "%s" for %s',e,s);continue}t.log.trace('handle: respond with "na" for "%s"',s),await qr(n,P(`na
19
+ `),t),t.log('handle: responded with "na" for "%s"',s)}}var Px=500,hf=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;limits;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:t,remotePeer:n,newStream:s,close:o,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.limits=e.limits,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=s,this._close=o,this._abort=i,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[vf]=!0;get streams(){return this._getStreams()}async newStream(e,t){if(this.status==="closing")throw new Ws("the connection is being closed");if(this.status==="closed")throw new Gr("the connection is closed");if(Array.isArray(e)||(e=[e]),this.limits!=null&&t?.runOnLimitedConnection!==!0)throw new Zr("Cannot open protocol stream on limited 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(Px);se(1/0,t),e={...e,signal:t}}try{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.status!=="closed"&&(this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this._abort(e),this.status="closed",this.timeline.close=Date.now())}};function Dm(r){return new hf(r)}function Mx(r,e){try{let{options:t}=e.getHandler(r);return t.maxInboundStreams}catch(t){if(t.name!=="UnhandledProtocolError")throw t}return of}function Ux(r,e,t={}){try{let{options:n}=e.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.name!=="UnhandledProtocolError")throw n}return t.maxOutboundStreams??af}function Rm(r,e,t){let n=0;return t.streams.forEach(s=>{s.direction===e&&s.protocol===r&&n++}),n}var ec=class{components;connectionEncrypters;streamMuxers;inboundUpgradeTimeout;outboundUpgradeTimeout;inboundStreamProtocolNegotiationTimeout;outboundStreamProtocolNegotiationTimeout;events;metrics;constructor(e,t){this.components=e,this.connectionEncrypters=new Map,t.connectionEncrypters.forEach(n=>{this.connectionEncrypters.set(n.protocol,n)}),this.streamMuxers=new Map,t.streamMuxers.forEach(n=>{this.streamMuxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=t.inboundUpgradeTimeout??3e3,this.outboundUpgradeTimeout=t.outboundUpgradeTimeout??3e3,this.inboundStreamProtocolNegotiationTimeout=t.inboundStreamProtocolNegotiationTimeout??2e3,this.outboundStreamProtocolNegotiationTimeout=t.outboundStreamProtocolNegotiationTimeout??2e3,this.events=e.events,this.metrics={dials:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_total"),errors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dial_errors_total")}}[Symbol.toStringTag]="@libp2p/upgrader";async shouldBlockConnection(e,...t){let n=this.components.connectionGater[e];if(n==null)return;if(await n.apply(this.components.connectionGater,t)===!0)throw new la(`The multiaddr connection is blocked by gater.${e}`)}async upgradeInbound(e,t={}){let n=!1;try{if(this.metrics.dials?.increment({inbound:!0}),n=await this.components.connectionManager.acceptIncomingConnection(e),!n)throw new ua("Connection denied");await this.shouldBlockConnection("denyInboundConnection",e),await this._performUpgrade(e,"inbound",t)}catch(s){throw this.metrics.errors?.increment({inbound:!0}),s}finally{n&&this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t={}){try{this.metrics.dials?.increment({outbound:!0});let n=e.remoteAddr.getPeerId(),s;return n!=null&&(s=bt(n),await this.shouldBlockConnection("denyOutboundConnection",s,e)),await this._performUpgrade(e,"outbound",t)}catch(n){throw this.metrics.errors?.increment({outbound:!0}),n}}async _performUpgrade(e,t,n){let s,o,i,a,c,u=AbortSignal.timeout(t==="inbound"?this.inboundUpgradeTimeout:this.outboundUpgradeTimeout),f=Ht([u,n.signal]);se(1/0,u,f),n.signal=f,this.components.metrics?.trackMultiaddrConnection(e),e.log.trace("starting the %s connection upgrade",t);let l=e;if(n?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(e.log("protecting the %s connection",t),l=await d.protect(e,n))}try{if(s=l,n?.skipEncryption!==!0){n?.onProgress?.(new de(`upgrader:encrypt-${t}-connection`)),{conn:s,remotePeer:o,protocol:c}=await(t==="inbound"?this._encryptInbound(l,{...n,signal:f}):this._encryptOutbound(l,{...n,signal:f}));let d={...l,...s};await this.shouldBlockConnection(t==="inbound"?"denyInboundEncryptedConnection":"denyOutboundEncryptedConnection",o,d)}else{let d=e.remoteAddr.getPeerId();if(d==null)throw new qt(`${t} connection that skipped encryption must have a peer id`);let h=bt(d);c="native",o=h}if(o.equals(this.components.peerId)){let d=new Wr("Can not dial self");throw e.abort(d),d}if(i=s,n?.muxerFactory!=null)a=n.muxerFactory;else if(this.streamMuxers.size>0){n?.onProgress?.(new de(`upgrader:multiplex-${t}-connection`));let d=await(t==="inbound"?this._multiplexInbound({...l,...s},this.streamMuxers,n):this._multiplexOutbound({...l,...s},this.streamMuxers,n));a=d.muxerFactory,i=d.stream}}catch(d){throw e.log.error("failed to upgrade inbound connection %s %a - %e",t==="inbound"?"from":"to",e.remoteAddr,d),d}finally{f.clear()}return await this.shouldBlockConnection(t==="inbound"?"denyInboundUpgradedConnection":"denyOutboundUpgradedConnection",o,e),e.log("successfully upgraded %s connection",t),this._createConnection({cryptoProtocol:c,direction:t,maConn:e,upgradedConn:i,muxerFactory:a,remotePeer:o,limits:n?.limits})}_createConnection(e){let{cryptoProtocol:t,direction:n,maConn:s,upgradedConn:o,remotePeer:i,muxerFactory:a,limits:c}=e,u,f,l;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:p=>{l!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),g=AbortSignal.timeout(this.inboundStreamProtocolNegotiationTimeout);se(1/0,g);let{stream:w,protocol:b}=await qs(p,m,{signal:g,log:p.log,yieldBytes:!1});if(l==null)return;l.log("incoming stream opened on %s",b);let y=Mx(b,this.components.registrar);if(Rm(b,"inbound",l)===y){let A=new Qs(`Too many inbound protocol streams for protocol "${b}" - limit ${y}`);throw p.abort(A),A}p.source=w.source,p.sink=w.sink,p.protocol=b,w.closeWrite!=null&&(p.closeWrite=w.closeWrite),w.closeRead!=null&&(p.closeRead=w.closeRead),w.close!=null&&(p.close=w.close),await this.components.peerStore.merge(i,{protocols:[b]}),this.components.metrics?.trackProtocolStream(p,l),this._onStream({connection:l,stream:p,protocol:b})}).catch(async m=>{l.log.error("error handling incoming stream id %s - %e",p.id,m),p.timeline.close==null&&await p.close()})}}),f=async(p,m={})=>{if(u==null)throw new Fr("Connection is not multiplexed");l.log.trace("starting new stream for protocols %s",p);let g=await u.newStream();l.log.trace("started new stream %s for protocols %s",g.id,p);try{if(m.signal==null){g.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",p);let A=AbortSignal.timeout(this.outboundStreamProtocolNegotiationTimeout);se(1/0,A),m={...m,signal:A}}g.log.trace("selecting protocol from protocols %s",p);let{stream:w,protocol:b}=await Hs(g,p,{...m,log:g.log,yieldBytes:!0});g.log.trace("selected protocol %s",b);let y=Ux(b,this.components.registrar,m),x=Rm(b,"outbound",l);if(x>=y){let A=new eo(`Too many outbound protocol streams for protocol "${b}" - ${x}/${y}`);throw g.abort(A),A}return await this.components.peerStore.merge(i,{protocols:[b]}),g.source=w.source,g.sink=w.sink,g.protocol=b,w.closeWrite!=null&&(g.closeWrite=w.closeWrite),w.closeRead!=null&&(g.closeRead=w.closeRead),w.close!=null&&(g.close=w.close),this.components.metrics?.trackProtocolStream(g,l),g}catch(w){throw l.log.error("could not create new outbound stream on connection %s %a for protocols %s - %e",n==="inbound"?"from":"to",e.maConn.remoteAddr,p,w),g.timeline.close==null&&g.abort(w),w}},Promise.all([u.sink(o.source),o.sink(u.source)]).catch(p=>{l.log.error("error piping data through muxer - %e",p)}));let d=s.timeline;s.timeline=new Proxy(d,{set:(...p)=>(p[1]==="close"&&p[2]!=null&&d.close==null&&(async()=>{try{l.status==="open"&&await l.close()}catch(m){l.log.error("error closing connection after timeline close %e",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:l})}})().catch(m=>{l.log.error("error thrown while dispatching connection:close event %e",m)}),Reflect.set(...p))}),s.timeline.upgraded=Date.now();let h=()=>{throw new Fr("Connection is not multiplexed")};return l=Dm({remoteAddr:s.remoteAddr,remotePeer:i,status:"open",direction:n,timeline:s.timeline,multiplexer:u?.protocol,encryption:t,limits:c,logger:this.components.logger,newStream:f??h,getStreams:()=>u?.streams??[],close:async p=>{await u?.close(p),await s.close(p)},abort:p=>{s.abort(p),u?.abort(p)}}),this.events.safeDispatchEvent("connection:open",{detail:l}),l.__maConnTimeline=d,l}_onStream(e){let{connection:t,stream:n,protocol:s}=e,{handler:o,options:i}=this.components.registrar.getHandler(s);if(t.limits!=null&&i.runOnLimitedConnection!==!0)throw new Zr("Cannot open protocol stream on limited connection");o({connection:t,stream:n})}async _encryptInbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{let{stream:s,protocol:o}=await qs(e,n,{...t,log:e.log}),i=this.connectionEncrypters.get(o);if(i==null)throw new Vr(`no crypto module found for ${o}`);return e.log("encrypting inbound connection to %a using %s",e.remoteAddr,o),{...await i.secureInbound(s,t),protocol:o}}catch(s){throw e.log.error("encrypting inbound connection from %a failed",e.remoteAddr,s),new Vr(s.message)}}async _encryptOutbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{e.log.trace("selecting encrypter from %s",n);let{stream:s,protocol:o}=await Hs(e,n,{...t,log:e.log,yieldBytes:!0}),i=this.connectionEncrypters.get(o);if(i==null)throw new Vr(`no crypto module found for ${o}`);return e.log("encrypting outbound connection to %a using %s",e.remoteAddr,o),{...await i.secureOutbound(s,t),protocol:o}}catch(s){throw e.log.error("encrypting outbound connection to %a failed",e.remoteAddr,s),new Vr(s.message)}}async _multiplexOutbound(e,t,n){let s=Array.from(t.keys());e.log("outbound selecting muxer %s",s);try{e.log.trace("selecting stream muxer from %s",s);let{stream:o,protocol:i}=await Hs(e,s,{...n,log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",i);let a=t.get(i);return{stream:o,muxerFactory:a}}catch(o){throw e.log.error("error multiplexing outbound connection",o),new Fr(String(o))}}async _multiplexInbound(e,t,n){let s=Array.from(t.keys());e.log("inbound handling muxers %s",s);try{let{stream:o,protocol:i}=await qs(e,s,{...n,log:e.log}),a=t.get(i);return{stream:o,muxerFactory:a}}catch(o){throw e.log.error("error multiplexing inbound connection",o),new Fr(String(o))}}};var Mm="2.3.1-48e9cfa56",Um="js-libp2p";var tc=class extends Et{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let t=new Et,n=t.dispatchEvent.bind(t);t.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new CustomEvent(a.type,{detail:a.detail}));return c||u},se(1/0,t),this.peerId=e.peerId,this.logger=e.logger??Ui(),this.log=this.logger.forComponent("libp2p"),this.services={};let s=this.components=om({peerId:e.peerId,privateKey:e.privateKey,nodeInfo:e.nodeInfo??{name:Um,version:Mm},logger:this.logger,events:t,datastore:e.datastore??new Ji,connectionGater:dm(e.connectionGater),dns:e.dns});this.peerStore=this.configureComponent("peerStore",Zp(s,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),s.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)};s.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(s)),this.components.upgrader=new ec(this.components,{connectionEncrypters:(e.connectionEncrypters??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),streamMuxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager?.inboundUpgradeTimeout,outboundUpgradeTimeout:e.connectionManager?.outboundUpgradeTimeout}),this.configureComponent("transportManager",new $a(this.components,e.transportManager)),this.configureComponent("connectionManager",new Da(this.components,e.connectionManager)),e.connectionMonitor?.enabled!==!1&&this.configureComponent("connectionMonitor",new Oa(this.components,e.connectionMonitor)),this.configureComponent("registrar",new qa(this.components)),this.configureComponent("addressManager",new na(this.components,e.addresses));let o=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ha(this.components,{routers:o}));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 Fa(this.components,{routers:i})),this.configureComponent("randomWalk",new Ka(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[nc]!=null&&(this.log("registering service %s for content routing",a),i.push(u[nc])),u[oc]!=null&&(this.log("registering service %s for peer routing",a),o.push(u[oc])),u[sc]!=null&&(this.log("registering service %s for peer discovery",a),u[sc].addEventListener?.("peer",f=>{this.#e(f)}))}im(s)}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 Tr;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 R("no protocols were provided to open a stream");if(t=Array.isArray(t)?t:[t],t.length===0)throw new R("no protocols were provided to open a 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=bt(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 i=await this.peerStore.get(e);if(i.id.publicKey!=null)return i.id.publicKey}catch(i){if(i.name!=="NotFoundError")throw i}let n=Ve([P("/pk/"),e.toMultihash().bytes]),s=await this.contentRouting.get(n,t),o=mn(s);return await this.peerStore.patch(e,{publicKey:o}),o}async handle(e,t,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async s=>{await this.components.registrar.handle(s,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("peer discovery mechanism discovered self");return}this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs}).catch(n=>{this.log.error(n)})}};async function Fx(r={}){r.privateKey??=await Hd("Ed25519");let e=new tc({...await _p(r),peerId:zd(r.privateKey)});return r.start!==!1&&await e.start(),e}return Ym(Vx);})();
20
20
  /*! Bundled license information:
21
21
 
22
22
  pvtsutils/build/index.js: