libp2p 1.1.0 → 1.1.1-900236724

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 (38) hide show
  1. package/dist/index.min.js +22 -22
  2. package/dist/src/connection-manager/auto-dial.d.ts +2 -1
  3. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -1
  4. package/dist/src/connection-manager/auto-dial.js +8 -6
  5. package/dist/src/connection-manager/auto-dial.js.map +1 -1
  6. package/dist/src/connection-manager/dial-queue.d.ts +11 -16
  7. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  8. package/dist/src/connection-manager/dial-queue.js +142 -257
  9. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  10. package/dist/src/connection-manager/index.d.ts +5 -3
  11. package/dist/src/connection-manager/index.d.ts.map +1 -1
  12. package/dist/src/connection-manager/index.js +15 -9
  13. package/dist/src/connection-manager/index.js.map +1 -1
  14. package/dist/src/connection-manager/utils.d.ts +0 -2
  15. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  16. package/dist/src/connection-manager/utils.js +0 -15
  17. package/dist/src/connection-manager/utils.js.map +1 -1
  18. package/dist/src/content-routing.d.ts +0 -1
  19. package/dist/src/content-routing.d.ts.map +1 -1
  20. package/dist/src/content-routing.js +6 -31
  21. package/dist/src/content-routing.js.map +1 -1
  22. package/dist/src/peer-routing.d.ts +1 -1
  23. package/dist/src/peer-routing.d.ts.map +1 -1
  24. package/dist/src/peer-routing.js +12 -14
  25. package/dist/src/peer-routing.js.map +1 -1
  26. package/dist/src/version.d.ts +1 -1
  27. package/dist/src/version.d.ts.map +1 -1
  28. package/dist/src/version.js +1 -1
  29. package/dist/src/version.js.map +1 -1
  30. package/package.json +30 -31
  31. package/src/connection-manager/auto-dial.ts +11 -8
  32. package/src/connection-manager/dial-queue.ts +161 -290
  33. package/src/connection-manager/index.ts +22 -12
  34. package/src/connection-manager/utils.ts +0 -20
  35. package/src/content-routing.ts +8 -37
  36. package/src/peer-routing.ts +12 -15
  37. package/src/version.ts +1 -1
  38. package/dist/typedoc-urls.json +0 -10
package/dist/index.min.js CHANGED
@@ -1,28 +1,28 @@
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 Fm=Object.create;var ts=Object.defineProperty;var Km=Object.getOwnPropertyDescriptor;var qm=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,$m=Object.prototype.hasOwnProperty;var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Me=(t,e)=>{for(var r in e)ts(t,r,{get:e[r],enumerable:!0})},kl=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of qm(e))!$m.call(t,i)&&i!==r&&ts(t,i,{get:()=>e[i],enumerable:!(n=Km(e,i))||n.enumerable});return t};var we=(t,e,r)=>(r=t!=null?Fm(Vm(t)):{},kl(e||!t||!t.__esModule?ts(r,"default",{value:t,enumerable:!0}):r,t)),zm=t=>kl(ts({},"__esModule",{value:!0}),t);var fe=q((bv,Ol)=>{Ol.exports={options:{usePureJavaScript:!1}}});var Fl=q((wv,Ul)=>{var Jo={};Ul.exports=Jo;var Ml={};Jo.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=Hm(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
- `)}return n};Jo.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=Ml[e];if(!r){r=Ml[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Hm(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var Be=q((Ev,$l)=>{var Kl=fe(),ql=Fl(),w=$l.exports=Kl.util=Kl.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function ci(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=ea;function ea(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof ea||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=ea;var Gm=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>Gm&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){ci(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){ci(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function Wm(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=Wm;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){ci(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return ci(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){ci(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var dr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",pr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Vl="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=dr.charAt(i>>2),r+=dr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=dr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":dr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
4
- `,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=pr[t.charCodeAt(o++)-43],n=pr[t.charCodeAt(o++)-43],i=pr[t.charCodeAt(o++)-43],s=pr[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};w.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};w.decodeUtf8=function(t){return decodeURIComponent(escape(t))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:ql.encode,decode:ql.decode}};w.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};w.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};w.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=dr.charAt(i>>2),r+=dr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=dr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":dr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
5
- `,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=pr[t.charCodeAt(c++)-43],s=pr[t.charCodeAt(c++)-43],o=pr[t.charCodeAt(c++)-43],a=pr[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,Vl,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,Vl,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var ta=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},ra=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},Ym=function(t,e,r,n){var i=ra(t,e);i===null&&(i={}),i[r]=n,ta(t,e,i)},Qm=function(t,e,r){var n=ra(t,e);return n!==null&&(n=r in n?n[r]:null),n},Xm=function(t,e,r){var n=ra(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),ta(t,e,n)}},Zm=function(t,e){ta(t,e,null)},rs=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){rs(Ym,arguments,i)};w.getItem=function(t,e,r,n){return rs(Qm,arguments,n)};w.removeItem=function(t,e,r,n){rs(Xm,arguments,n)};w.clearItems=function(t,e,r){rs(Zm,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var p=a[d];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(d)}return c.reduce(function(h,m){return Math.max(h,m.length)},0)}}});var ns=q((vv,zl)=>{var ui=fe();ui.pki=ui.pki||{};var na=zl.exports=ui.pki.oids=ui.oids=ui.oids||{};function L(t,e){na[t]=e,na[e]=t}function oe(t,e){na[t]=e}L("1.2.840.113549.1.1.1","rsaEncryption");L("1.2.840.113549.1.1.4","md5WithRSAEncryption");L("1.2.840.113549.1.1.5","sha1WithRSAEncryption");L("1.2.840.113549.1.1.7","RSAES-OAEP");L("1.2.840.113549.1.1.8","mgf1");L("1.2.840.113549.1.1.9","pSpecified");L("1.2.840.113549.1.1.10","RSASSA-PSS");L("1.2.840.113549.1.1.11","sha256WithRSAEncryption");L("1.2.840.113549.1.1.12","sha384WithRSAEncryption");L("1.2.840.113549.1.1.13","sha512WithRSAEncryption");L("1.3.101.112","EdDSA25519");L("1.2.840.10040.4.3","dsa-with-sha1");L("1.3.14.3.2.7","desCBC");L("1.3.14.3.2.26","sha1");L("1.3.14.3.2.29","sha1WithRSASignature");L("2.16.840.1.101.3.4.2.1","sha256");L("2.16.840.1.101.3.4.2.2","sha384");L("2.16.840.1.101.3.4.2.3","sha512");L("2.16.840.1.101.3.4.2.4","sha224");L("2.16.840.1.101.3.4.2.5","sha512-224");L("2.16.840.1.101.3.4.2.6","sha512-256");L("1.2.840.113549.2.2","md2");L("1.2.840.113549.2.5","md5");L("1.2.840.113549.1.7.1","data");L("1.2.840.113549.1.7.2","signedData");L("1.2.840.113549.1.7.3","envelopedData");L("1.2.840.113549.1.7.4","signedAndEnvelopedData");L("1.2.840.113549.1.7.5","digestedData");L("1.2.840.113549.1.7.6","encryptedData");L("1.2.840.113549.1.9.1","emailAddress");L("1.2.840.113549.1.9.2","unstructuredName");L("1.2.840.113549.1.9.3","contentType");L("1.2.840.113549.1.9.4","messageDigest");L("1.2.840.113549.1.9.5","signingTime");L("1.2.840.113549.1.9.6","counterSignature");L("1.2.840.113549.1.9.7","challengePassword");L("1.2.840.113549.1.9.8","unstructuredAddress");L("1.2.840.113549.1.9.14","extensionRequest");L("1.2.840.113549.1.9.20","friendlyName");L("1.2.840.113549.1.9.21","localKeyId");L("1.2.840.113549.1.9.22.1","x509Certificate");L("1.2.840.113549.1.12.10.1.1","keyBag");L("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");L("1.2.840.113549.1.12.10.1.3","certBag");L("1.2.840.113549.1.12.10.1.4","crlBag");L("1.2.840.113549.1.12.10.1.5","secretBag");L("1.2.840.113549.1.12.10.1.6","safeContentsBag");L("1.2.840.113549.1.5.13","pkcs5PBES2");L("1.2.840.113549.1.5.12","pkcs5PBKDF2");L("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");L("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");L("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");L("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");L("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");L("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");L("1.2.840.113549.2.7","hmacWithSHA1");L("1.2.840.113549.2.8","hmacWithSHA224");L("1.2.840.113549.2.9","hmacWithSHA256");L("1.2.840.113549.2.10","hmacWithSHA384");L("1.2.840.113549.2.11","hmacWithSHA512");L("1.2.840.113549.3.7","des-EDE3-CBC");L("2.16.840.1.101.3.4.1.2","aes128-CBC");L("2.16.840.1.101.3.4.1.22","aes192-CBC");L("2.16.840.1.101.3.4.1.42","aes256-CBC");L("2.5.4.3","commonName");L("2.5.4.4","surname");L("2.5.4.5","serialNumber");L("2.5.4.6","countryName");L("2.5.4.7","localityName");L("2.5.4.8","stateOrProvinceName");L("2.5.4.9","streetAddress");L("2.5.4.10","organizationName");L("2.5.4.11","organizationalUnitName");L("2.5.4.12","title");L("2.5.4.13","description");L("2.5.4.15","businessCategory");L("2.5.4.17","postalCode");L("2.5.4.42","givenName");L("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");L("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");L("2.16.840.1.113730.1.1","nsCertType");L("2.16.840.1.113730.1.13","nsComment");oe("2.5.29.1","authorityKeyIdentifier");oe("2.5.29.2","keyAttributes");oe("2.5.29.3","certificatePolicies");oe("2.5.29.4","keyUsageRestriction");oe("2.5.29.5","policyMapping");oe("2.5.29.6","subtreesConstraint");oe("2.5.29.7","subjectAltName");oe("2.5.29.8","issuerAltName");oe("2.5.29.9","subjectDirectoryAttributes");oe("2.5.29.10","basicConstraints");oe("2.5.29.11","nameConstraints");oe("2.5.29.12","policyConstraints");oe("2.5.29.13","basicConstraints");L("2.5.29.14","subjectKeyIdentifier");L("2.5.29.15","keyUsage");oe("2.5.29.16","privateKeyUsagePeriod");L("2.5.29.17","subjectAltName");L("2.5.29.18","issuerAltName");L("2.5.29.19","basicConstraints");oe("2.5.29.20","cRLNumber");oe("2.5.29.21","cRLReason");oe("2.5.29.22","expirationDate");oe("2.5.29.23","instructionCode");oe("2.5.29.24","invalidityDate");oe("2.5.29.25","cRLDistributionPoints");oe("2.5.29.26","issuingDistributionPoint");oe("2.5.29.27","deltaCRLIndicator");oe("2.5.29.28","issuingDistributionPoint");oe("2.5.29.29","certificateIssuer");oe("2.5.29.30","nameConstraints");L("2.5.29.31","cRLDistributionPoints");L("2.5.29.32","certificatePolicies");oe("2.5.29.33","policyMappings");oe("2.5.29.34","policyConstraints");L("2.5.29.35","authorityKeyIdentifier");oe("2.5.29.36","policyConstraints");L("2.5.29.37","extKeyUsage");oe("2.5.29.46","freshestCRL");oe("2.5.29.54","inhibitAnyPolicy");L("1.3.6.1.4.1.11129.2.4.2","timestampList");L("1.3.6.1.5.5.7.1.1","authorityInfoAccess");L("1.3.6.1.5.5.7.3.1","serverAuth");L("1.3.6.1.5.5.7.3.2","clientAuth");L("1.3.6.1.5.5.7.3.3","codeSigning");L("1.3.6.1.5.5.7.3.4","emailProtection");L("1.3.6.1.5.5.7.3.8","timeStamping")});var fi=q((_v,Gl)=>{var pe=fe();Be();ns();var O=Gl.exports=pe.asn1=pe.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(t,e,r,n,i){if(pe.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||pe.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(t,e){var r;if(pe.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(O.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:O.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};O.equals=function(t,e,r){if(pe.util.isArray(t)){if(!pe.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!O.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&O.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};O.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function li(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var jm=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;li(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.length(),n=is(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function is(t,e,r,n){var i;li(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=jm(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(li(t,e,2),t.bytes(2)==="\0\0"){t.getBytes(2),e-=2;break}i=t.length(),l.push(is(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(is(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=t.read,h=e,m=0;if(a===O.Type.BITSTRING&&(li(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var y={strict:!0,decodeBitStrings:!0},g=is(t,e,r+1,y),x=i-t.length();e-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(t.read=p,e=h)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)li(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var A=f===void 0?null:{bitStringContents:f};return O.create(o,a,d,l,A)}O.toDer=function(t){var e=pe.util.createBuffer(),r=t.tagClass|t.type,n=pe.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=O.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(O.toDer(t.value[s]))}else if(t.type===O.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===O.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};O.oidToDer=function(t){var e=t.split("."),r=pe.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(t){var e;typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};O.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?e.setTime(+e-d):e.setTime(+e+d)}return e};O.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,d=t.charAt(f);if(d==="+"||d==="-"){var p=parseInt(t.substr(f+1,2),10),h=parseInt(t.substr(f+4,2),10);u=p*60+h,u*=6e4,d==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};O.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.integerToDer=function(t){var e=pe.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};O.derToInteger=function(t){typeof t=="string"&&(t=pe.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};O.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&pe.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=O.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Hl=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
2
+ "use strict";var Libp2P=(()=>{var Bm=Object.create;var Qi=Object.defineProperty;var Lm=Object.getOwnPropertyDescriptor;var Dm=Object.getOwnPropertyNames;var Pm=Object.getPrototypeOf,Nm=Object.prototype.hasOwnProperty;var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ue=(t,e)=>{for(var r in e)Qi(t,r,{get:e[r],enumerable:!0})},Bl=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Dm(e))!Nm.call(t,i)&&i!==r&&Qi(t,i,{get:()=>e[i],enumerable:!(n=Lm(e,i))||n.enumerable});return t};var we=(t,e,r)=>(r=t!=null?Bm(Pm(t)):{},Bl(e||!t||!t.__esModule?Qi(r,"default",{value:t,enumerable:!0}):r,t)),km=t=>Bl(Qi({},"__esModule",{value:!0}),t);var fe=q((lv,Ll)=>{Ll.exports={options:{usePureJavaScript:!1}}});var Nl=q((fv,Pl)=>{var Xo={};Pl.exports=Xo;var Dl={};Xo.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=Om(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
+ `)}return n};Xo.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=Dl[e];if(!r){r=Dl[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Om(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var Le=q((hv,Ul)=>{var kl=fe(),Ol=Nl(),w=Ul.exports=kl.util=kl.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function ai(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=Zo;function Zo(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof Zo||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=Zo;var Mm=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>Mm&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){ai(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){ai(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function Um(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=Um;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){ai(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return ai(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){ai(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var fr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",hr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Ml="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=fr.charAt(i>>2),r+=fr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=fr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":fr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
4
+ `,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=hr[t.charCodeAt(o++)-43],n=hr[t.charCodeAt(o++)-43],i=hr[t.charCodeAt(o++)-43],s=hr[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};w.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};w.decodeUtf8=function(t){return decodeURIComponent(escape(t))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Ol.encode,decode:Ol.decode}};w.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};w.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};w.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=fr.charAt(i>>2),r+=fr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=fr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":fr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
5
+ `,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=hr[t.charCodeAt(c++)-43],s=hr[t.charCodeAt(c++)-43],o=hr[t.charCodeAt(c++)-43],a=hr[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,Ml,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,Ml,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var jo=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Jo=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},Fm=function(t,e,r,n){var i=Jo(t,e);i===null&&(i={}),i[r]=n,jo(t,e,i)},Km=function(t,e,r){var n=Jo(t,e);return n!==null&&(n=r in n?n[r]:null),n},qm=function(t,e,r){var n=Jo(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),jo(t,e,n)}},Vm=function(t,e){jo(t,e,null)},Xi=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){Xi(Fm,arguments,i)};w.getItem=function(t,e,r,n){return Xi(Km,arguments,n)};w.removeItem=function(t,e,r,n){Xi(qm,arguments,n)};w.clearItems=function(t,e,r){Xi(Vm,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var p=a[d];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(d)}return c.reduce(function(h,m){return Math.max(h,m.length)},0)}}});var Zi=q((dv,Fl)=>{var ci=fe();ci.pki=ci.pki||{};var ea=Fl.exports=ci.pki.oids=ci.oids=ci.oids||{};function L(t,e){ea[t]=e,ea[e]=t}function oe(t,e){ea[t]=e}L("1.2.840.113549.1.1.1","rsaEncryption");L("1.2.840.113549.1.1.4","md5WithRSAEncryption");L("1.2.840.113549.1.1.5","sha1WithRSAEncryption");L("1.2.840.113549.1.1.7","RSAES-OAEP");L("1.2.840.113549.1.1.8","mgf1");L("1.2.840.113549.1.1.9","pSpecified");L("1.2.840.113549.1.1.10","RSASSA-PSS");L("1.2.840.113549.1.1.11","sha256WithRSAEncryption");L("1.2.840.113549.1.1.12","sha384WithRSAEncryption");L("1.2.840.113549.1.1.13","sha512WithRSAEncryption");L("1.3.101.112","EdDSA25519");L("1.2.840.10040.4.3","dsa-with-sha1");L("1.3.14.3.2.7","desCBC");L("1.3.14.3.2.26","sha1");L("1.3.14.3.2.29","sha1WithRSASignature");L("2.16.840.1.101.3.4.2.1","sha256");L("2.16.840.1.101.3.4.2.2","sha384");L("2.16.840.1.101.3.4.2.3","sha512");L("2.16.840.1.101.3.4.2.4","sha224");L("2.16.840.1.101.3.4.2.5","sha512-224");L("2.16.840.1.101.3.4.2.6","sha512-256");L("1.2.840.113549.2.2","md2");L("1.2.840.113549.2.5","md5");L("1.2.840.113549.1.7.1","data");L("1.2.840.113549.1.7.2","signedData");L("1.2.840.113549.1.7.3","envelopedData");L("1.2.840.113549.1.7.4","signedAndEnvelopedData");L("1.2.840.113549.1.7.5","digestedData");L("1.2.840.113549.1.7.6","encryptedData");L("1.2.840.113549.1.9.1","emailAddress");L("1.2.840.113549.1.9.2","unstructuredName");L("1.2.840.113549.1.9.3","contentType");L("1.2.840.113549.1.9.4","messageDigest");L("1.2.840.113549.1.9.5","signingTime");L("1.2.840.113549.1.9.6","counterSignature");L("1.2.840.113549.1.9.7","challengePassword");L("1.2.840.113549.1.9.8","unstructuredAddress");L("1.2.840.113549.1.9.14","extensionRequest");L("1.2.840.113549.1.9.20","friendlyName");L("1.2.840.113549.1.9.21","localKeyId");L("1.2.840.113549.1.9.22.1","x509Certificate");L("1.2.840.113549.1.12.10.1.1","keyBag");L("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");L("1.2.840.113549.1.12.10.1.3","certBag");L("1.2.840.113549.1.12.10.1.4","crlBag");L("1.2.840.113549.1.12.10.1.5","secretBag");L("1.2.840.113549.1.12.10.1.6","safeContentsBag");L("1.2.840.113549.1.5.13","pkcs5PBES2");L("1.2.840.113549.1.5.12","pkcs5PBKDF2");L("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");L("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");L("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");L("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");L("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");L("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");L("1.2.840.113549.2.7","hmacWithSHA1");L("1.2.840.113549.2.8","hmacWithSHA224");L("1.2.840.113549.2.9","hmacWithSHA256");L("1.2.840.113549.2.10","hmacWithSHA384");L("1.2.840.113549.2.11","hmacWithSHA512");L("1.2.840.113549.3.7","des-EDE3-CBC");L("2.16.840.1.101.3.4.1.2","aes128-CBC");L("2.16.840.1.101.3.4.1.22","aes192-CBC");L("2.16.840.1.101.3.4.1.42","aes256-CBC");L("2.5.4.3","commonName");L("2.5.4.4","surname");L("2.5.4.5","serialNumber");L("2.5.4.6","countryName");L("2.5.4.7","localityName");L("2.5.4.8","stateOrProvinceName");L("2.5.4.9","streetAddress");L("2.5.4.10","organizationName");L("2.5.4.11","organizationalUnitName");L("2.5.4.12","title");L("2.5.4.13","description");L("2.5.4.15","businessCategory");L("2.5.4.17","postalCode");L("2.5.4.42","givenName");L("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");L("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");L("2.16.840.1.113730.1.1","nsCertType");L("2.16.840.1.113730.1.13","nsComment");oe("2.5.29.1","authorityKeyIdentifier");oe("2.5.29.2","keyAttributes");oe("2.5.29.3","certificatePolicies");oe("2.5.29.4","keyUsageRestriction");oe("2.5.29.5","policyMapping");oe("2.5.29.6","subtreesConstraint");oe("2.5.29.7","subjectAltName");oe("2.5.29.8","issuerAltName");oe("2.5.29.9","subjectDirectoryAttributes");oe("2.5.29.10","basicConstraints");oe("2.5.29.11","nameConstraints");oe("2.5.29.12","policyConstraints");oe("2.5.29.13","basicConstraints");L("2.5.29.14","subjectKeyIdentifier");L("2.5.29.15","keyUsage");oe("2.5.29.16","privateKeyUsagePeriod");L("2.5.29.17","subjectAltName");L("2.5.29.18","issuerAltName");L("2.5.29.19","basicConstraints");oe("2.5.29.20","cRLNumber");oe("2.5.29.21","cRLReason");oe("2.5.29.22","expirationDate");oe("2.5.29.23","instructionCode");oe("2.5.29.24","invalidityDate");oe("2.5.29.25","cRLDistributionPoints");oe("2.5.29.26","issuingDistributionPoint");oe("2.5.29.27","deltaCRLIndicator");oe("2.5.29.28","issuingDistributionPoint");oe("2.5.29.29","certificateIssuer");oe("2.5.29.30","nameConstraints");L("2.5.29.31","cRLDistributionPoints");L("2.5.29.32","certificatePolicies");oe("2.5.29.33","policyMappings");oe("2.5.29.34","policyConstraints");L("2.5.29.35","authorityKeyIdentifier");oe("2.5.29.36","policyConstraints");L("2.5.29.37","extKeyUsage");oe("2.5.29.46","freshestCRL");oe("2.5.29.54","inhibitAnyPolicy");L("1.3.6.1.4.1.11129.2.4.2","timestampList");L("1.3.6.1.5.5.7.1.1","authorityInfoAccess");L("1.3.6.1.5.5.7.3.1","serverAuth");L("1.3.6.1.5.5.7.3.2","clientAuth");L("1.3.6.1.5.5.7.3.3","codeSigning");L("1.3.6.1.5.5.7.3.4","emailProtection");L("1.3.6.1.5.5.7.3.8","timeStamping")});var li=q((pv,ql)=>{var pe=fe();Le();Zi();var O=ql.exports=pe.asn1=pe.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(t,e,r,n,i){if(pe.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||pe.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(t,e){var r;if(pe.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(O.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:O.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};O.equals=function(t,e,r){if(pe.util.isArray(t)){if(!pe.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!O.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&O.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};O.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function ui(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var $m=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;ui(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.length(),n=ji(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function ji(t,e,r,n){var i;ui(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=$m(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(ui(t,e,2),t.bytes(2)==="\0\0"){t.getBytes(2),e-=2;break}i=t.length(),l.push(ji(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(ji(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=t.read,h=e,m=0;if(a===O.Type.BITSTRING&&(ui(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var y={strict:!0,decodeBitStrings:!0},g=ji(t,e,r+1,y),x=i-t.length();e-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(t.read=p,e=h)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)ui(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var A=f===void 0?null:{bitStringContents:f};return O.create(o,a,d,l,A)}O.toDer=function(t){var e=pe.util.createBuffer(),r=t.tagClass|t.type,n=pe.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=O.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(O.toDer(t.value[s]))}else if(t.type===O.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===O.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};O.oidToDer=function(t){var e=t.split("."),r=pe.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(t){var e;typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};O.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?e.setTime(+e-d):e.setTime(+e+d)}return e};O.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,d=t.charAt(f);if(d==="+"||d==="-"){var p=parseInt(t.substr(f+1,2),10),h=parseInt(t.substr(f+4,2),10);u=p*60+h,u*=6e4,d==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};O.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.integerToDer=function(t){var e=pe.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};O.derToInteger=function(t){typeof t=="string"&&(t=pe.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};O.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&pe.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=O.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Kl=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
6
6
  `);for(var i="",s=0;s<e*r;++s)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(t.tagClass===O.Class.UNIVERSAL)switch(n+=t.type,t.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
7
7
  `,n+=i+"Constructed: "+t.constructed+`
8
- `,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===O.Type.OID){var c=O.derToOid(t.value);n+=c,pe.pki&&pe.pki.oids&&c in pe.pki.oids&&(n+=" ("+pe.pki.oids[c]+") ")}if(t.type===O.Type.INTEGER)try{n+=O.derToInteger(t.value)}catch{n+="0x"+pe.util.bytesToHex(t.value)}else if(t.type===O.Type.BITSTRING){if(t.value.length>1?n+="0x"+pe.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===O.Type.OCTETSTRING)Hl.test(t.value)||(n+="("+t.value+") "),n+="0x"+pe.util.bytesToHex(t.value);else if(t.type===O.Type.UTF8)try{n+=pe.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+pe.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===O.Type.PRINTABLESTRING||t.type===O.Type.IA5String?n+=t.value:Hl.test(t.value)?n+="0x"+pe.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var sa=q((Sv,Wl)=>{var Ue=fe();Be();Wl.exports=Ue.cipher=Ue.cipher||{};Ue.cipher.algorithms=Ue.cipher.algorithms||{};Ue.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ue.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ue.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Ue.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ue.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ue.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Ue.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Ue.cipher.algorithms[t]=e};Ue.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Ue.cipher.algorithms?Ue.cipher.algorithms[t]:null};var ia=Ue.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};ia.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=Ue.util.createBuffer(),this.output=t.output||Ue.util.createBuffer(),this.mode.start(e)};ia.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};ia.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var aa=q((Av,Yl)=>{var Fe=fe();Be();Fe.cipher=Fe.cipher||{};var j=Yl.exports=Fe.cipher.modes=Fe.cipher.modes||{};j.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};j.ecb.prototype.start=function(t){};j.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};j.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};j.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};j.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};j.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};j.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=ss(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};j.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};j.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};j.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};j.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};j.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Fe.util.createBuffer(),this._partialBytes=0};j.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ss(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Fe.util.createBuffer(),this._partialBytes=0};j.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ss(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.ofb.prototype.decrypt=j.ofb.prototype.encrypt;j.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Fe.util.createBuffer(),this._partialBytes=0};j.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ss(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}os(this._inBlock)};j.ctr.prototype.decrypt=j.ctr.prototype.encrypt;j.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Fe.util.createBuffer(),this._partialBytes=0,this._R=3774873600};j.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=Fe.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=Fe.util.createBuffer(t.additionalData):r=Fe.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=Fe.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(oa(n*8)))}this._inBlock=this._j0.slice(0),os(this._inBlock),this._partialBytes=0,r=Fe.util.createBuffer(r),this._aDataLength=oa(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};j.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),os(this._inBlock)};j.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),os(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};j.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=Fe.util.createBuffer();var n=this._aDataLength.concat(oa(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};j.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};j.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};j.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};j.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};j.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};j.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function ss(t,e){if(typeof t=="string"&&(t=Fe.util.createBuffer(t)),Fe.util.isArray(t)&&t.length>4){var r=t;t=Fe.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!Fe.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function os(t){t[t.length-1]=t[t.length-1]+1&4294967295}function oa(t){return[t/4294967296|0,t&4294967295]}});var fa=q((Iv,jl)=>{var de=fe();sa();aa();Be();jl.exports=de.aes=de.aes||{};de.aes.startEncrypting=function(t,e,r,n){var i=as({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};de.aes.createEncryptionCipher=function(t,e){return as({key:t,output:null,decrypt:!1,mode:e})};de.aes.startDecrypting=function(t,e,r,n){var i=as({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};de.aes.createDecryptionCipher=function(t,e){return as({key:t,output:null,decrypt:!0,mode:e})};de.aes.Algorithm=function(t,e){la||Xl();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return ua(r._w,n,i,!1)},decrypt:function(n,i){return ua(r._w,n,i,!0)}}}),r._init=!1};de.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=de.util.createBuffer(e);else if(de.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=de.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!de.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!de.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Zl(e,t.decrypt&&!o),this._init=!0}};de.aes._expandKey=function(t,e){return la||Xl(),Zl(t,e)};de.aes._updateBlock=ua;bn("AES-ECB",de.cipher.modes.ecb);bn("AES-CBC",de.cipher.modes.cbc);bn("AES-CFB",de.cipher.modes.cfb);bn("AES-OFB",de.cipher.modes.ofb);bn("AES-CTR",de.cipher.modes.ctr);bn("AES-GCM",de.cipher.modes.gcm);function bn(t,e){var r=function(){return new de.aes.Algorithm(t,e)};de.cipher.registerAlgorithm(t,r)}var la=!1,xn=4,it,ca,Ql,Or,At;function Xl(){la=!0,Ql=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;it=new Array(256),ca=new Array(256),Or=new Array(4),At=new Array(4);for(var e=0;e<4;++e)Or[e]=new Array(256),At[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,it[r]=a,ca[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)Or[f][r]=u,At[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function Zl(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=xn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=it[n>>>16&255]<<24^it[n>>>8&255]<<16^it[n&255]<<8^it[n>>>24]^Ql[i]<<24,i++):s>6&&c%s===4&&(n=it[n>>>24]<<24^it[n>>>16&255]<<16^it[n>>>8&255]<<8^it[n&255]),r[c]=r[c-s]^n;if(e){var u,l=At[0],f=At[1],d=At[2],p=At[3],h=r.slice(0);a=r.length;for(var c=0,m=a-xn;c<a;c+=xn,m-=xn)if(c===0||c===a-xn)h[c]=r[m],h[c+1]=r[m+3],h[c+2]=r[m+2],h[c+3]=r[m+1];else for(var y=0;y<xn;++y)u=r[m+y],h[c+(3&-y)]=l[it[u>>>24]]^f[it[u>>>16&255]]^d[it[u>>>8&255]]^p[it[u&255]];r=h}return r}function ua(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=At[0],o=At[1],a=At[2],c=At[3],u=ca):(s=Or[0],o=Or[1],a=Or[2],c=Or[3],u=it);var l,f,d,p,h,m,y;l=e[0]^t[0],f=e[n?3:1]^t[1],d=e[2]^t[2],p=e[n?1:3]^t[3];for(var g=3,x=1;x<i;++x)h=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[p&255]^t[++g],m=s[f>>>24]^o[d>>>16&255]^a[p>>>8&255]^c[l&255]^t[++g],y=s[d>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^t[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^t[++g],l=h,f=m,d=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[p&255]^t[++g],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^t[++g],r[2]=u[d>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^t[++g]}function as(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=de.cipher.createDecipher(r,t.key):n=de.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof de.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var tf=q((Cv,ef)=>{var ye=fe();sa();aa();Be();ef.exports=ye.des=ye.des||{};ye.des.startEncrypting=function(t,e,r,n){var i=cs({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createEncryptionCipher=function(t,e){return cs({key:t,output:null,decrypt:!1,mode:e})};ye.des.startDecrypting=function(t,e,r,n){var i=cs({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createDecryptionCipher=function(t,e){return cs({key:t,output:null,decrypt:!0,mode:e})};ye.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return Jl(r._keys,n,i,!1)},decrypt:function(n,i){return Jl(r._keys,n,i,!0)}}}),r._init=!1};ye.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=ye.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=ay(e),this._init=!0}};Mt("DES-ECB",ye.cipher.modes.ecb);Mt("DES-CBC",ye.cipher.modes.cbc);Mt("DES-CFB",ye.cipher.modes.cfb);Mt("DES-OFB",ye.cipher.modes.ofb);Mt("DES-CTR",ye.cipher.modes.ctr);Mt("3DES-ECB",ye.cipher.modes.ecb);Mt("3DES-CBC",ye.cipher.modes.cbc);Mt("3DES-CFB",ye.cipher.modes.cfb);Mt("3DES-OFB",ye.cipher.modes.ofb);Mt("3DES-CTR",ye.cipher.modes.ctr);function Mt(t,e){var r=function(){return new ye.des.Algorithm(t,e)};ye.cipher.registerAlgorithm(t,r)}var Jm=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],ey=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],ty=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],ry=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],ny=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],iy=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],sy=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],oy=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function ay(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=t.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,A=0;A<m;A++){var E=t.getInt32(),_=t.getInt32();b=(E>>>4^_)&252645135,_^=b,E^=b<<4,b=(_>>>-16^E)&65535,E^=b,_^=b<<-16,b=(E>>>2^_)&858993459,_^=b,E^=b<<2,b=(_>>>-16^E)&65535,E^=b,_^=b<<-16,b=(E>>>1^_)&1431655765,_^=b,E^=b<<1,b=(_>>>8^E)&16711935,E^=b,_^=b<<8,b=(E>>>1^_)&1431655765,_^=b,E^=b<<1,b=E<<8|_>>>20&240,E=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=b;for(var T=0;T<g.length;++T){g[T]?(E=E<<2|E>>>26,_=_<<2|_>>>26):(E=E<<1|E>>>27,_=_<<1|_>>>27),E&=-15,_&=-15;var P=e[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|s[E>>>12&15]|o[E>>>8&15]|a[E>>>4&15],z=c[_>>>28]|u[_>>>24&15]|l[_>>>20&15]|f[_>>>16&15]|d[_>>>12&15]|p[_>>>8&15]|h[_>>>4&15];b=(z>>>16^P)&65535,y[x++]=P^b,y[x++]=z^b<<16}}return y}function Jl(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var p=c^t[d],h=(c>>>4|c<<28)^t[d+1];o=a,a=c,c=o^(ey[p>>>24&63]|ry[p>>>16&63]|iy[p>>>8&63]|oy[p&63]|Jm[h>>>24&63]|ty[h>>>16&63]|ny[h>>>8&63]|sy[h&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function cs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=ye.cipher.createDecipher(r,t.key):n=ye.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof ye.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Mr=q((Rv,rf)=>{var us=fe();rf.exports=us.md=us.md||{};us.md.algorithms=us.md.algorithms||{}});var sf=q((Tv,nf)=>{var Xt=fe();Mr();Be();var cy=nf.exports=Xt.hmac=Xt.hmac||{};cy.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Xt.md.algorithms)e=Xt.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=Xt.util.createBuffer(o);else if(Xt.util.isArray(o)){var a=o;o=Xt.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=Xt.util.createBuffer(),n=Xt.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var hi=q(()=>{});var af=q((Pv,of)=>{var st=fe();sf();Mr();Be();var uy=st.pkcs5=st.pkcs5||{},Zt;st.util.isNodejs&&!st.options.usePureJavaScript&&(Zt=hi());of.exports=st.pbkdf2=uy.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),st.util.isNodejs&&!st.options.usePureJavaScript&&Zt.pbkdf2&&(i===null||typeof i!="object")&&(Zt.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Zt.pbkdf2Sync.length===4?Zt.pbkdf2(t,e,r,n,function(b,A){if(b)return s(b);s(null,A.toString("binary"))}):Zt.pbkdf2(t,e,r,n,i,function(b,A){if(b)return s(b);s(null,A.toString("binary"))}):Zt.pbkdf2Sync.length===4?Zt.pbkdf2Sync(t,e,r,n).toString("binary"):Zt.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in st.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=st.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=st.hmac.create();l.start(i,t);var f="",d,p,h;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),d=h=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(h),p=l.digest().getBytes(),d=st.util.xorBytes(d,p,o),h=p;f+=m<c?d:d.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),d=h=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(h),p=l.digest().getBytes(),d=st.util.xorBytes(d,p,o),h=p,++y,st.util.setImmediate(x);f+=m<c?d:d.substr(0,u),++m,g()}g()}});var lf=q((Dv,uf)=>{var fs=fe();Be();var cf=uf.exports=fs.pem=fs.pem||{};cf.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
9
- `,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=ls(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=ls(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=ls(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=ls(t.headers[i]);return t.procType&&(r+=`\r
10
- `),r+=fs.util.encode64(t.body,e.maxline||64)+`\r
8
+ `,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===O.Type.OID){var c=O.derToOid(t.value);n+=c,pe.pki&&pe.pki.oids&&c in pe.pki.oids&&(n+=" ("+pe.pki.oids[c]+") ")}if(t.type===O.Type.INTEGER)try{n+=O.derToInteger(t.value)}catch{n+="0x"+pe.util.bytesToHex(t.value)}else if(t.type===O.Type.BITSTRING){if(t.value.length>1?n+="0x"+pe.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===O.Type.OCTETSTRING)Kl.test(t.value)||(n+="("+t.value+") "),n+="0x"+pe.util.bytesToHex(t.value);else if(t.type===O.Type.UTF8)try{n+=pe.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+pe.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===O.Type.PRINTABLESTRING||t.type===O.Type.IA5String?n+=t.value:Kl.test(t.value)?n+="0x"+pe.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var ra=q((mv,Vl)=>{var Fe=fe();Le();Vl.exports=Fe.cipher=Fe.cipher||{};Fe.cipher.algorithms=Fe.cipher.algorithms||{};Fe.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Fe.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Fe.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Fe.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Fe.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Fe.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Fe.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Fe.cipher.algorithms[t]=e};Fe.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Fe.cipher.algorithms?Fe.cipher.algorithms[t]:null};var ta=Fe.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};ta.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=Fe.util.createBuffer(),this.output=t.output||Fe.util.createBuffer(),this.mode.start(e)};ta.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};ta.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var ia=q((yv,$l)=>{var Ke=fe();Le();Ke.cipher=Ke.cipher||{};var j=$l.exports=Ke.cipher.modes=Ke.cipher.modes||{};j.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};j.ecb.prototype.start=function(t){};j.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};j.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};j.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};j.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};j.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};j.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=Ji(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};j.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};j.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};j.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};j.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};j.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0};j.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ji(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0};j.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ji(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};j.ofb.prototype.decrypt=j.ofb.prototype.encrypt;j.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0};j.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ji(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};j.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}es(this._inBlock)};j.ctr.prototype.decrypt=j.ctr.prototype.encrypt;j.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0,this._R=3774873600};j.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=Ke.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=Ke.util.createBuffer(t.additionalData):r=Ke.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=Ke.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(na(n*8)))}this._inBlock=this._j0.slice(0),es(this._inBlock),this._partialBytes=0,r=Ke.util.createBuffer(r),this._aDataLength=na(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};j.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),es(this._inBlock)};j.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),es(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};j.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=Ke.util.createBuffer();var n=this._aDataLength.concat(na(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};j.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};j.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};j.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};j.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};j.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};j.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function Ji(t,e){if(typeof t=="string"&&(t=Ke.util.createBuffer(t)),Ke.util.isArray(t)&&t.length>4){var r=t;t=Ke.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!Ke.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function es(t){t[t.length-1]=t[t.length-1]+1&4294967295}function na(t){return[t/4294967296|0,t&4294967295]}});var ca=q((gv,Wl)=>{var de=fe();ra();ia();Le();Wl.exports=de.aes=de.aes||{};de.aes.startEncrypting=function(t,e,r,n){var i=ts({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};de.aes.createEncryptionCipher=function(t,e){return ts({key:t,output:null,decrypt:!1,mode:e})};de.aes.startDecrypting=function(t,e,r,n){var i=ts({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};de.aes.createDecryptionCipher=function(t,e){return ts({key:t,output:null,decrypt:!0,mode:e})};de.aes.Algorithm=function(t,e){aa||Hl();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return oa(r._w,n,i,!1)},decrypt:function(n,i){return oa(r._w,n,i,!0)}}}),r._init=!1};de.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=de.util.createBuffer(e);else if(de.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=de.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!de.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!de.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Gl(e,t.decrypt&&!o),this._init=!0}};de.aes._expandKey=function(t,e){return aa||Hl(),Gl(t,e)};de.aes._updateBlock=oa;xn("AES-ECB",de.cipher.modes.ecb);xn("AES-CBC",de.cipher.modes.cbc);xn("AES-CFB",de.cipher.modes.cfb);xn("AES-OFB",de.cipher.modes.ofb);xn("AES-CTR",de.cipher.modes.ctr);xn("AES-GCM",de.cipher.modes.gcm);function xn(t,e){var r=function(){return new de.aes.Algorithm(t,e)};de.cipher.registerAlgorithm(t,r)}var aa=!1,gn=4,it,sa,zl,Or,It;function Hl(){aa=!0,zl=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;it=new Array(256),sa=new Array(256),Or=new Array(4),It=new Array(4);for(var e=0;e<4;++e)Or[e]=new Array(256),It[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,it[r]=a,sa[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)Or[f][r]=u,It[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function Gl(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=gn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=it[n>>>16&255]<<24^it[n>>>8&255]<<16^it[n&255]<<8^it[n>>>24]^zl[i]<<24,i++):s>6&&c%s===4&&(n=it[n>>>24]<<24^it[n>>>16&255]<<16^it[n>>>8&255]<<8^it[n&255]),r[c]=r[c-s]^n;if(e){var u,l=It[0],f=It[1],d=It[2],p=It[3],h=r.slice(0);a=r.length;for(var c=0,m=a-gn;c<a;c+=gn,m-=gn)if(c===0||c===a-gn)h[c]=r[m],h[c+1]=r[m+3],h[c+2]=r[m+2],h[c+3]=r[m+1];else for(var y=0;y<gn;++y)u=r[m+y],h[c+(3&-y)]=l[it[u>>>24]]^f[it[u>>>16&255]]^d[it[u>>>8&255]]^p[it[u&255]];r=h}return r}function oa(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=It[0],o=It[1],a=It[2],c=It[3],u=sa):(s=Or[0],o=Or[1],a=Or[2],c=Or[3],u=it);var l,f,d,p,h,m,y;l=e[0]^t[0],f=e[n?3:1]^t[1],d=e[2]^t[2],p=e[n?1:3]^t[3];for(var g=3,x=1;x<i;++x)h=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[p&255]^t[++g],m=s[f>>>24]^o[d>>>16&255]^a[p>>>8&255]^c[l&255]^t[++g],y=s[d>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^t[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^t[++g],l=h,f=m,d=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[p&255]^t[++g],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^t[++g],r[2]=u[d>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^t[++g]}function ts(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=de.cipher.createDecipher(r,t.key):n=de.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof de.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Xl=q((xv,Ql)=>{var ye=fe();ra();ia();Le();Ql.exports=ye.des=ye.des||{};ye.des.startEncrypting=function(t,e,r,n){var i=rs({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createEncryptionCipher=function(t,e){return rs({key:t,output:null,decrypt:!1,mode:e})};ye.des.startDecrypting=function(t,e,r,n){var i=rs({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createDecryptionCipher=function(t,e){return rs({key:t,output:null,decrypt:!0,mode:e})};ye.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return Yl(r._keys,n,i,!1)},decrypt:function(n,i){return Yl(r._keys,n,i,!0)}}}),r._init=!1};ye.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=ye.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=jm(e),this._init=!0}};Mt("DES-ECB",ye.cipher.modes.ecb);Mt("DES-CBC",ye.cipher.modes.cbc);Mt("DES-CFB",ye.cipher.modes.cfb);Mt("DES-OFB",ye.cipher.modes.ofb);Mt("DES-CTR",ye.cipher.modes.ctr);Mt("3DES-ECB",ye.cipher.modes.ecb);Mt("3DES-CBC",ye.cipher.modes.cbc);Mt("3DES-CFB",ye.cipher.modes.cfb);Mt("3DES-OFB",ye.cipher.modes.ofb);Mt("3DES-CTR",ye.cipher.modes.ctr);function Mt(t,e){var r=function(){return new ye.des.Algorithm(t,e)};ye.cipher.registerAlgorithm(t,r)}var zm=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Hm=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Gm=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Wm=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Ym=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Qm=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Xm=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Zm=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function jm(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=t.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,A=0;A<m;A++){var E=t.getInt32(),_=t.getInt32();b=(E>>>4^_)&252645135,_^=b,E^=b<<4,b=(_>>>-16^E)&65535,E^=b,_^=b<<-16,b=(E>>>2^_)&858993459,_^=b,E^=b<<2,b=(_>>>-16^E)&65535,E^=b,_^=b<<-16,b=(E>>>1^_)&1431655765,_^=b,E^=b<<1,b=(_>>>8^E)&16711935,E^=b,_^=b<<8,b=(E>>>1^_)&1431655765,_^=b,E^=b<<1,b=E<<8|_>>>20&240,E=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=b;for(var T=0;T<g.length;++T){g[T]?(E=E<<2|E>>>26,_=_<<2|_>>>26):(E=E<<1|E>>>27,_=_<<1|_>>>27),E&=-15,_&=-15;var D=e[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|s[E>>>12&15]|o[E>>>8&15]|a[E>>>4&15],z=c[_>>>28]|u[_>>>24&15]|l[_>>>20&15]|f[_>>>16&15]|d[_>>>12&15]|p[_>>>8&15]|h[_>>>4&15];b=(z>>>16^D)&65535,y[x++]=D^b,y[x++]=z^b<<16}}return y}function Yl(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var p=c^t[d],h=(c>>>4|c<<28)^t[d+1];o=a,a=c,c=o^(Hm[p>>>24&63]|Wm[p>>>16&63]|Qm[p>>>8&63]|Zm[p&63]|zm[h>>>24&63]|Gm[h>>>16&63]|Ym[h>>>8&63]|Xm[h&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function rs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=ye.cipher.createDecipher(r,t.key):n=ye.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof ye.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Mr=q((bv,Zl)=>{var ns=fe();Zl.exports=ns.md=ns.md||{};ns.md.algorithms=ns.md.algorithms||{}});var Jl=q((wv,jl)=>{var Xt=fe();Mr();Le();var Jm=jl.exports=Xt.hmac=Xt.hmac||{};Jm.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Xt.md.algorithms)e=Xt.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=Xt.util.createBuffer(o);else if(Xt.util.isArray(o)){var a=o;o=Xt.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=Xt.util.createBuffer(),n=Xt.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var fi=q(()=>{});var tf=q((_v,ef)=>{var st=fe();Jl();Mr();Le();var ey=st.pkcs5=st.pkcs5||{},Zt;st.util.isNodejs&&!st.options.usePureJavaScript&&(Zt=fi());ef.exports=st.pbkdf2=ey.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),st.util.isNodejs&&!st.options.usePureJavaScript&&Zt.pbkdf2&&(i===null||typeof i!="object")&&(Zt.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Zt.pbkdf2Sync.length===4?Zt.pbkdf2(t,e,r,n,function(b,A){if(b)return s(b);s(null,A.toString("binary"))}):Zt.pbkdf2(t,e,r,n,i,function(b,A){if(b)return s(b);s(null,A.toString("binary"))}):Zt.pbkdf2Sync.length===4?Zt.pbkdf2Sync(t,e,r,n).toString("binary"):Zt.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in st.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=st.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=st.hmac.create();l.start(i,t);var f="",d,p,h;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),d=h=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(h),p=l.digest().getBytes(),d=st.util.xorBytes(d,p,o),h=p;f+=m<c?d:d.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),d=h=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(h),p=l.digest().getBytes(),d=st.util.xorBytes(d,p,o),h=p,++y,st.util.setImmediate(x);f+=m<c?d:d.substr(0,u),++m,g()}g()}});var sf=q((Sv,nf)=>{var ss=fe();Le();var rf=nf.exports=ss.pem=ss.pem||{};rf.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
9
+ `,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=is(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=is(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=is(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=is(t.headers[i]);return t.procType&&(r+=`\r
10
+ `),r+=ss.util.encode64(t.body,e.maxline||64)+`\r
11
11
  `,r+="-----END "+t.type+`-----\r
12
- `,r};cf.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:fs.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},h=s[2].split(","),m=0;m<h.length;++m)p.values.push(ly(h[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&p.name==="DEK-Info"){if(p.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(p);else{if(p.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(p.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(e.length===0)throw new Error("Invalid PEM formatted message.");return e};function ls(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
12
+ `,r};rf.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:ss.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},h=s[2].split(","),m=0;m<h.length;++m)p.values.push(ty(h[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&p.name==="DEK-Info"){if(p.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(p);else{if(p.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(p.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(e.length===0)throw new Error("Invalid PEM formatted message.");return e};function is(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
13
13
  `;for(var s=0,o=-1,i=0;i<e.length;++i,++s)if(s>65&&o!==-1){var a=e[o];a===","?(++o,e=e.substr(0,o)+`\r
14
14
  `+e.substr(o)):e=e.substr(0,o)+`\r
15
- `+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function ly(t){return t.replace(/^\s+/,"")}});var yf=q((Nv,mf)=>{var Ut=fe();Mr();Be();var hf=mf.exports=Ut.sha256=Ut.sha256||{};Ut.md.sha256=Ut.md.algorithms.sha256=hf;hf.create=function(){df||fy();var t=null,e=Ut.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Ut.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ut.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),ff(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Ut.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ha.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};ff(f,r,i);var d=Ut.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var ha=null,df=!1,pf=null;function fy(){ha="\x80",ha+=Ut.util.fillString("\0",64),pf=[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],df=!0}function ff(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,d=t.h2,p=t.h3,h=t.h4,m=t.h5,y=t.h6,g=t.h7,u=0;u<64;++u)o=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=g+o+a+pf[u]+e[u],i=s+c,g=y,y=m,m=h,h=p+n>>>0,p=d,d=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+d|0,t.h3=t.h3+p|0,t.h4=t.h4+h|0,t.h5=t.h5+m|0,t.h6=t.h6+y|0,t.h7=t.h7+g|0,x-=64}}});var xf=q((kv,gf)=>{var Ft=fe();Be();var hs=null;Ft.util.isNodejs&&!Ft.options.usePureJavaScript&&!process.versions["node-webkit"]&&(hs=hi());var hy=gf.exports=Ft.prng=Ft.prng||{};hy.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,d=e.plugin.increment,p=e.plugin.formatKey,h=e.plugin.formatSeed,m=Ft.util.createBuffer();e.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return Ft.util.nextTick(function(){s(y)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=p(f(e.key,d(e.seed))),e.seed=h(f(e.key,e.seed)),Ft.util.setImmediate(y)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,d=e.plugin.formatKey,p=e.plugin.formatSeed;e.key=null;for(var h=Ft.util.createBuffer();h.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var m=l(e.key,e.seed);e.generated+=m.length,h.putBytes(m),e.key=d(l(e.key,f(e.seed))),e.seed=p(l(e.key,e.seed))}return h.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,d){if(f)return u(f);e.collect(d),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var d=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(d),e.generated=0}function c(u){var l=null,f=Ft.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(E){return d.getRandomValues(E)});var p=Ft.util.createBuffer();if(l)for(;p.length()<u;){var h=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(h));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(p.length()<u)for(var g,x,b,A=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(A&65535),g=16807*(A>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),A=x&4294967295;for(var y=0;y<3;++y)b=A>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return hs?(e.seedFile=function(u,l){hs.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},e.seedFileSync=function(u){return hs.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,d){function p(h){var m=h.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&e.seedFile(d.forge.prng.needed,function(p,h){u.postMessage({forge:{prng:{err:p,bytes:h}}})})};u.addEventListener("message",l)}},e}});var di=q((Ov,da)=>{var Ke=fe();fa();yf();xf();Be();(function(){if(Ke.random&&Ke.random.getBytes){da.exports=Ke.random;return}(function(t){var e={},r=new Array(4),n=Ke.util.createBuffer();e.formatKey=function(f){var d=Ke.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),Ke.aes._expandKey(f,!1)},e.formatSeed=function(f){var d=Ke.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},e.cipher=function(f,d){return Ke.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=Ke.md.sha256;function i(){var f=Ke.prng.create(e);return f.getBytes=function(d,p){return f.generate(d,p)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=Ke.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Ke.options.usePureJavaScript||!Ke.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Ke.random)Ke.random=s;else for(var l in s)Ke.random[l]=s[l];Ke.random.createInstance=i,da.exports=Ke.random})(typeof jQuery<"u"?jQuery:null)})()});var vf=q((Mv,Ef)=>{var at=fe();Be();var pa=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],bf=[1,2,3,5],dy=function(t,e){return t<<e&65535|(t&65535)>>16-e},py=function(t,e){return(t&65535)>>e|t<<16-e&65535};Ef.exports=at.rc2=at.rc2||{};at.rc2.expandKey=function(t,e){typeof t=="string"&&(t=at.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(pa[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,pa[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,pa[r.at(a+1)^r.at(a+s)]);return r};var wf=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=at.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=dy(h[u],bf[u]),l++},c=function(h){for(u=0;u<4;u++)h[u]+=f[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=py(h[u],bf[u]),h[u]-=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),l--},c=function(h){for(u=3;u>=0;u--)h[u]-=f[h[(u+3)%4]&63]});var d=function(h){var m=[];for(u=0;u<4;u++){var y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<h.length;g++)for(var x=0;x<h[g][0];x++)h[g][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(h,m){h&&typeof h=="string"&&(h=at.util.createBuffer(h)),n=!1,i=at.util.createBuffer(),s=m||new at.util.createBuffer,o=h,p.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var m=!0;if(r)if(h)m=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(h)m=h(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};at.rc2.startEncrypting=function(t,e,r){var n=at.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};at.rc2.createEncryptionCipher=function(t,e){return wf(t,e,!0)};at.rc2.startDecrypting=function(t,e,r){var n=at.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};at.rc2.createDecryptionCipher=function(t,e){return wf(t,e,!1)}});var ms=q((Uv,Bf)=>{var ma=fe();Bf.exports=ma.jsbn=ma.jsbn||{};var jt,my=0xdeadbeefcafe,_f=(my&16777215)==15715070;function R(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}ma.jsbn.BigInteger=R;function ne(){return new R(null)}function yy(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function gy(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function Sf(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(R.prototype.am=Sf,jt=28):_f&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=gy,jt=30):_f&&navigator.appName!="Netscape"?(R.prototype.am=yy,jt=26):(R.prototype.am=Sf,jt=28);R.prototype.DB=jt;R.prototype.DM=(1<<jt)-1;R.prototype.DV=1<<jt;var ya=52;R.prototype.FV=Math.pow(2,ya);R.prototype.F1=ya-jt;R.prototype.F2=2*jt-ya;var xy="0123456789abcdefghijklmnopqrstuvwxyz",ds=new Array,wn,xt;wn=48;for(xt=0;xt<=9;++xt)ds[wn++]=xt;wn=97;for(xt=10;xt<36;++xt)ds[wn++]=xt;wn=65;for(xt=10;xt<36;++xt)ds[wn++]=xt;function Af(t){return xy.charAt(t)}function If(t,e){var r=ds[t.charCodeAt(e)];return r??-1}function by(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function wy(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function mr(t){var e=ne();return e.fromInt(t),e}function Ey(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:If(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&R.ZERO.subTo(this,this)}function vy(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function _y(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=Af(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=Af(n));return i?s:"0"}function Sy(){var t=ne();return R.ZERO.subTo(this,t),t}function Ay(){return this.s<0?this.negate():this}function Iy(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function ps(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function Cy(){return this.t<=0?0:this.DB*(this.t-1)+ps(this.data[this.t-1]^this.s&this.DM)}function Ry(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function Ty(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function By(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function Ly(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function Py(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function Dy(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&R.ZERO.subTo(e,e)}function Ny(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function ky(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ne());var s=ne(),o=this.s,a=t.s,c=this.DB-ps(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,p=(1<<this.F1)/f,h=1<<this.F2,m=r.t,y=m-u,g=e??ne();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),R.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+h)*p);if((r.data[m]+=s.am(0,x,r,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&R.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Oy(t){var e=ne();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(R.ZERO)>0&&t.subTo(e,e),e}function Ur(t){this.m=t}function My(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function Uy(t){return t}function Fy(t){t.divRemTo(this.m,null,t)}function Ky(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function qy(t,e){t.squareTo(e),this.reduce(e)}Ur.prototype.convert=My;Ur.prototype.revert=Uy;Ur.prototype.reduce=Fy;Ur.prototype.mulTo=Ky;Ur.prototype.sqrTo=qy;function Vy(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Fr(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function $y(t){var e=ne();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(R.ZERO)>0&&this.m.subTo(e,e),e}function zy(t){var e=ne();return t.copyTo(e),this.reduce(e),e}function Hy(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function Gy(t,e){t.squareTo(e),this.reduce(e)}function Wy(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Fr.prototype.convert=$y;Fr.prototype.revert=zy;Fr.prototype.reduce=Hy;Fr.prototype.mulTo=Wy;Fr.prototype.sqrTo=Gy;function Yy(){return(this.t>0?this.data[0]&1:this.s)==0}function Qy(t,e){if(t>4294967295||t<1)return R.ONE;var r=ne(),n=ne(),i=e.convert(this),s=ps(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function Xy(t,e){var r;return t<256||e.isEven()?r=new Ur(e):r=new Fr(e),this.exp(t,r)}R.prototype.copyTo=by;R.prototype.fromInt=wy;R.prototype.fromString=Ey;R.prototype.clamp=vy;R.prototype.dlShiftTo=Ry;R.prototype.drShiftTo=Ty;R.prototype.lShiftTo=By;R.prototype.rShiftTo=Ly;R.prototype.subTo=Py;R.prototype.multiplyTo=Dy;R.prototype.squareTo=Ny;R.prototype.divRemTo=ky;R.prototype.invDigit=Vy;R.prototype.isEven=Yy;R.prototype.exp=Qy;R.prototype.toString=_y;R.prototype.negate=Sy;R.prototype.abs=Ay;R.prototype.compareTo=Iy;R.prototype.bitLength=Cy;R.prototype.mod=Oy;R.prototype.modPowInt=Xy;R.ZERO=mr(0);R.ONE=mr(1);function Zy(){var t=ne();return this.copyTo(t),t}function jy(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function Jy(){return this.t==0?this.s:this.data[0]<<24>>24}function eg(){return this.t==0?this.s:this.data[0]<<16>>16}function tg(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function rg(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function ng(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=mr(r),i=ne(),s=ne(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function ig(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=If(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function sg(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(R.ONE.shiftLeft(t-1),ga,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(R.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function og(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function ag(t){return this.compareTo(t)==0}function cg(t){return this.compareTo(t)<0?this:t}function ug(t){return this.compareTo(t)>0?this:t}function lg(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function fg(t,e){return t&e}function hg(t){var e=ne();return this.bitwiseTo(t,fg,e),e}function ga(t,e){return t|e}function dg(t){var e=ne();return this.bitwiseTo(t,ga,e),e}function Cf(t,e){return t^e}function pg(t){var e=ne();return this.bitwiseTo(t,Cf,e),e}function Rf(t,e){return t&~e}function mg(t){var e=ne();return this.bitwiseTo(t,Rf,e),e}function yg(){for(var t=ne(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function gg(t){var e=ne();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function xg(t){var e=ne();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function bg(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function wg(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+bg(this.data[t]);return this.s<0?this.t*this.DB:-1}function Eg(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function vg(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=Eg(this.data[r]^e);return t}function _g(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function Sg(t,e){var r=R.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function Ag(t){return this.changeBit(t,ga)}function Ig(t){return this.changeBit(t,Rf)}function Cg(t){return this.changeBit(t,Cf)}function Rg(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function Tg(t){var e=ne();return this.addTo(t,e),e}function Bg(t){var e=ne();return this.subTo(t,e),e}function Lg(t){var e=ne();return this.multiplyTo(t,e),e}function Pg(t){var e=ne();return this.divRemTo(t,e,null),e}function Dg(t){var e=ne();return this.divRemTo(t,null,e),e}function Ng(t){var e=ne(),r=ne();return this.divRemTo(t,e,r),new Array(e,r)}function kg(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function Og(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function pi(){}function Tf(t){return t}function Mg(t,e,r){t.multiplyTo(e,r)}function Ug(t,e){t.squareTo(e)}pi.prototype.convert=Tf;pi.prototype.revert=Tf;pi.prototype.mulTo=Mg;pi.prototype.sqrTo=Ug;function Fg(t){return this.exp(t,new pi)}function Kg(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function qg(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function En(t){this.r2=ne(),this.q3=ne(),R.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function Vg(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=ne();return t.copyTo(e),this.reduce(e),e}function $g(t){return t}function zg(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function Hg(t,e){t.squareTo(e),this.reduce(e)}function Gg(t,e,r){t.multiplyTo(e,r),this.reduce(r)}En.prototype.convert=Vg;En.prototype.revert=$g;En.prototype.reduce=zg;En.prototype.mulTo=Gg;En.prototype.sqrTo=Hg;function Wg(t,e){var r=t.bitLength(),n,i=mr(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new Ur(e):e.isEven()?s=new En(e):s=new Fr(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=ne();for(s.sqrTo(o[1],l);a<=u;)o[a]=ne(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,d,p=!0,h=ne(),m;for(r=ps(t.data[f])-1;f>=0;){for(r>=c?d=t.data[f]>>r-c&u:(d=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=t.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[d].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,h),s.sqrTo(h,i),a-=2;a>0?s.sqrTo(i,h):(m=i,i=h,h=m),s.mulTo(h,o[d],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,h),m=i,i=h,h=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Yg(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Qg(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function Xg(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return R.ZERO;for(var r=t.clone(),n=this.clone(),i=mr(1),s=mr(0),o=mr(0),a=mr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var It=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Zg=(1<<26)/It[It.length-1];function jg(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=It[It.length-1]){for(e=0;e<It.length;++e)if(r.data[0]==It[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<It.length;){for(var n=It[e],i=e+1;i<It.length&&n<Zg;)n*=It[i++];for(n=r.modInt(n);e<i;)if(n%It[e++]==0)return!1}return r.millerRabin(t)}function Jg(t){var e=this.subtract(R.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=ex(),s,o=0;o<t;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function ex(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=tg;R.prototype.toRadix=ng;R.prototype.fromRadix=ig;R.prototype.fromNumber=sg;R.prototype.bitwiseTo=lg;R.prototype.changeBit=Sg;R.prototype.addTo=Rg;R.prototype.dMultiply=kg;R.prototype.dAddOffset=Og;R.prototype.multiplyLowerTo=Kg;R.prototype.multiplyUpperTo=qg;R.prototype.modInt=Qg;R.prototype.millerRabin=Jg;R.prototype.clone=Zy;R.prototype.intValue=jy;R.prototype.byteValue=Jy;R.prototype.shortValue=eg;R.prototype.signum=rg;R.prototype.toByteArray=og;R.prototype.equals=ag;R.prototype.min=cg;R.prototype.max=ug;R.prototype.and=hg;R.prototype.or=dg;R.prototype.xor=pg;R.prototype.andNot=mg;R.prototype.not=yg;R.prototype.shiftLeft=gg;R.prototype.shiftRight=xg;R.prototype.getLowestSetBit=wg;R.prototype.bitCount=vg;R.prototype.testBit=_g;R.prototype.setBit=Ag;R.prototype.clearBit=Ig;R.prototype.flipBit=Cg;R.prototype.add=Tg;R.prototype.subtract=Bg;R.prototype.multiply=Lg;R.prototype.divide=Pg;R.prototype.remainder=Dg;R.prototype.divideAndRemainder=Ng;R.prototype.modPow=Wg;R.prototype.modInverse=Xg;R.prototype.pow=Fg;R.prototype.gcd=Yg;R.prototype.isProbablePrime=jg});var kf=q((Fv,Nf)=>{var Kt=fe();Mr();Be();var Pf=Nf.exports=Kt.sha1=Kt.sha1||{};Kt.md.sha1=Kt.md.algorithms.sha1=Pf;Pf.create=function(){Df||tx();var t=null,e=Kt.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Kt.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Kt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Lf(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Kt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(xa.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};Lf(f,r,i);var d=Kt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var xa=null,Df=!1;function tx(){xa="\x80",xa+=Kt.util.fillString("\0",64),Df=!0}function Lf(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var Uf=q((Kv,Mf)=>{var qt=fe();Be();di();kf();var Of=Mf.exports=qt.pkcs1=qt.pkcs1||{};Of.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=qt.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-e.length,p=0;p<d;p++)f+="\0";var h=l.getBytes()+f+""+e;if(!i)i=qt.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=ys(i,a-s.digestLength-1,o),y=qt.util.xorBytes(h,m,h.length),g=ys(y,s.digestLength,o),x=qt.util.xorBytes(i,g,i.length);return"\0"+x+y};Of.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=e.length,y.expectedLength=o,y}if(i===void 0?i=qt.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=ys(l,i.digestLength,s),d=qt.util.xorBytes(u,f,u.length),p=ys(d,o-i.digestLength-1,s),h=qt.util.xorBytes(l,p,l.length),m=h.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,A=i.digestLength;A<h.length;A++){var E=h.charCodeAt(A),_=E&1^1,T=x?65534:0;y|=E&T,x=x&_,b+=x}if(y||h.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(b+1)};function ys(t,e,r){r||(r=qt.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var Ff=q((qv,ba)=>{var yr=fe();Be();ms();di();(function(){if(yr.prime){ba.exports=yr.prime;return}var t=ba.exports=yr.prime=yr.prime||{},e=yr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,d){return f|d};t.generateProbablePrime=function(f,d,p){typeof d=="function"&&(p=d,d={}),d=d||{};var h=d.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var m=d.prng||yr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(h.name==="PRIMEINC")return s(f,y,h.options,p);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(f,d,p,h){return"workers"in p?c(f,d,p,h):o(f,d,p,h)}function o(f,d,p,h){var m=u(f,d),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,d,y,g,x,h)}function a(f,d,p,h,m,y,g){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);yr.util.setImmediate(function(){a(f,d,p,h,m,y,g)})}function c(f,d,p,h){if(typeof Worker>"u")return o(f,d,p,h);var m=u(f,d),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return yr.util.estimateCores(function(E,_){E&&(_=2),y=_-1,A()});A();function A(){y=Math.max(1,y);for(var E=[],_=0;_<y;++_)E[_]=new Worker(b);for(var T=y,_=0;_<y;++_)E[_].addEventListener("message",z);var P=!1;function z(G){if(!P){--T;var $=G.data;if($.found){for(var J=0;J<E.length;++J)E[J].terminate();return P=!0,h(null,new e($.prime,16))}m.bitLength()>f&&(m=u(f,d));var le=m.toString(16);G.target.postMessage({hex:le,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,d){var p=new e(f,d),h=f-1;return p.testBit(h)||p.bitwiseTo(e.ONE.shiftLeft(h),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var xs=q((Vv,Gf)=>{var V=fe();fi();ms();ns();Uf();Ff();di();Be();typeof re>"u"&&(re=V.jsbn.BigInteger);var re,wa=V.util.isNodejs?hi():null,v=V.asn1,bt=V.util;V.pki=V.pki||{};Gf.exports=V.pki.rsa=V.rsa=V.rsa||{};var W=V.pki,rx=[6,4,2,4,2,4,6,2],nx={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},ix={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},sx={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},ox=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},ax={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},cx=function(t){var e;if(t.algorithm in W.oids)e=W.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=v.oidToDer(e).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},zf=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(re.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(re.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new re(V.util.bytesToHex(V.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(re.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};W.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=Hf(t,e,r)):(i=V.util.createBuffer(),i.putBytes(t));for(var o=new re(i.toHex(),16),a=zf(o,e,n),c=a.toString(16),u=V.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};W.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new re(V.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=zf(o,e,r),c=a.toString(16),u=V.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),n!==!1?gs(u.getBytes(),e,r):u.getBytes()};W.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new re(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};W.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new re(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new re(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(re.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(lx(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(rx[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(re.ONE),t.q1=t.q.subtract(re.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(re.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};W.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(Kf("generateKeyPair"))return wa.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:W.privateKeyFromPem(u),publicKey:W.publicKeyFromPem(c)})});if(qf("generateKey")&&qf("exportKey"))return bt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:$f(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return bt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=W.privateKeyFromAsn1(v.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:W.setRsaPublicKey(c.n,c.e)})}});if(Vf("generateKey")&&Vf("exportKey")){var i=bt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:$f(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=bt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=W.privateKeyFromAsn1(v.fromDer(V.util.createBuffer(f)));n(null,{privateKey:d,publicKey:W.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(Kf("generateKeyPairSync")){var s=wa.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:W.privateKeyFromPem(s.privateKey),publicKey:W.publicKeyFromPem(s.publicKey)}}}var o=W.rsa.createKeyPairGenerationState(t,e,r);if(!n)return W.rsa.stepKeyPairGenerationState(o,0),o.keys;ux(o,r,n)};W.setRsaPublicKey=W.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return Hf(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return W.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=gs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!v.validate(l,ax,f,d)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=d,p}var h=v.derToOid(f.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=h,p}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=gs(u,r,!0),c===u}});var a=W.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};W.setRsaPrivateKey=W.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=W.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:gs};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,h){return V.pkcs1.decode_rsa_oaep(h,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:cx},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return W.rsa.encrypt(d,c,f)},c};W.wrapRsaPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(W.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(t).getBytes())])};W.privateKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,nx,e,r)&&(t=v.fromDer(V.util.createBuffer(e.privateKey))),e={},r=[],!v.validate(t,ix,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=V.util.createBuffer(e.privateKeyModulus).toHex(),s=V.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=V.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(e.privateKeyPrime1).toHex(),c=V.util.createBuffer(e.privateKeyPrime2).toHex(),u=V.util.createBuffer(e.privateKeyExponent1).toHex(),l=V.util.createBuffer(e.privateKeyExponent2).toHex(),f=V.util.createBuffer(e.privateKeyCoefficient).toHex(),W.setRsaPrivateKey(new re(i,16),new re(s,16),new re(o,16),new re(a,16),new re(c,16),new re(u,16),new re(l,16),new re(f,16))};W.privateKeyToAsn1=W.privateKeyToRSAPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.qInv))])};W.publicKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,ox,e,r)){var n=v.derToOid(e.publicKeyOid);if(n!==W.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!v.validate(t,sx,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=V.util.createBuffer(e.publicKeyModulus).toHex(),o=V.util.createBuffer(e.publicKeyExponent).toHex();return W.setRsaPublicKey(new re(s,16),new re(o,16))};W.publicKeyToAsn1=W.publicKeyToSubjectPublicKeyInfo=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(W.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[W.publicKeyToRSAPublicKey(t)])])};W.publicKeyToRSAPublicKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.e))])};function Hf(t,e,r){var n=V.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=V.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function gs(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=V.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function ux(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){V.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)!==0){t.p=null,i();return}if(t.q.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(re.ONE),t.q1=t.q.subtract(re.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(re.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Vt(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=V.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function lx(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function Kf(t){return V.util.isNodejs&&typeof wa[t]=="function"}function qf(t){return typeof bt.globalScope<"u"&&typeof bt.globalScope.crypto=="object"&&typeof bt.globalScope.crypto.subtle=="object"&&typeof bt.globalScope.crypto.subtle[t]=="function"}function Vf(t){return typeof bt.globalScope<"u"&&typeof bt.globalScope.msCrypto=="object"&&typeof bt.globalScope.msCrypto.subtle=="object"&&typeof bt.globalScope.msCrypto.subtle[t]=="function"}function $f(t){for(var e=V.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var jf=q(($v,Zf)=>{var M=fe();fa();fi();tf();Mr();ns();af();lf();di();vf();xs();Be();typeof Wf>"u"&&(Wf=M.jsbn.BigInteger);var Wf,I=M.asn1,Q=M.pki=M.pki||{};Zf.exports=Q.pbe=M.pbe=M.pbe||{};var Kr=Q.oids,fx={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},hx={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},dx={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Q.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=I.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=Kr["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=Kr["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=Kr["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=Kr.desCBC,f=M.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),h=Xf(p),m=M.pkcs5.pbkdf2(e,n,i,o,h),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(I.toDer(t)),g.finish(),c=g.output.getBytes();var x=px(n,s,o,p);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(l).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Q.pbe.generatePkcs12Key(e,b,1,i,o),y=Q.pbe.generatePkcs12Key(e,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(I.toDer(t)),g.finish(),c=g.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var A=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return A};Q.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!I.validate(t,fx,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=I.derToOid(n.encryptionOid),a=Q.pbe.getCipher(o,n.encryptionParams,e),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};Q.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(t).getBytes()};return M.pem.encode(r,{maxline:e})};Q.encryptedPrivateKeyFromPem=function(t){var e=M.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(e.body)};Q.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=Q.wrapRsaPrivateKey(Q.privateKeyToAsn1(t));return n=Q.encryptPrivateKeyInfo(n,e,r),Q.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(I.toDer(Q.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Q.decryptRsaPrivateKey=function(t,e){var r=null,n=M.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Q.decryptPrivateKeyInfo(I.fromDer(r),e):r=I.fromDer(r),r!==null&&(r=Q.privateKeyFromAsn1(r)),r};Q.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var d=f.length(),p=e.length(),h=new M.util.ByteBuffer;h.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(e.at(a%p));var g=u*Math.ceil(d/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%d));var b=y;b.putBuffer(x);for(var A=Math.ceil(i/c),E=1;E<=A;E++){var _=new M.util.ByteBuffer;_.putBytes(h.bytes()),_.putBytes(b.bytes());for(var T=0;T<n;T++)s.start(),s.update(_.getBytes()),_=s.digest();var P=new M.util.ByteBuffer;for(a=0;a<u;a++)P.putByte(_.at(a%c));var z=Math.ceil(p/u)+Math.ceil(d/u),G=new M.util.ByteBuffer;for(o=0;o<z;o++){var $=new M.util.ByteBuffer(b.getBytes(u)),J=511;for(a=P.length()-1;a>=0;a--)J=J>>8,J+=P.at(a)+$.at(a),$.setAt(a,J&255);G.putBuffer($)}b=G,l.putBuffer(_)}return l.truncate(l.length()-i),l};Q.pbe.getCipher=function(t,e,r){switch(t){case Q.oids.pkcs5PBES2:return Q.pbe.getCipherForPBES2(t,e,r);case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:return Q.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Q.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!I.validate(e,hx,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=I.derToOid(n.kdfOid),t!==Q.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=I.derToOid(n.encOid),t!==Q.oids["aes128-CBC"]&&t!==Q.oids["aes192-CBC"]&&t!==Q.oids["aes256-CBC"]&&t!==Q.oids["des-EDE3-CBC"]&&t!==Q.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Q.oids[t]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=Qf(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,p=u(f);return p.start(d),p};Q.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!I.validate(e,dx,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=Qf(n.prfOid),d=Q.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Q.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,p)};Q.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}e===null&&(e="");for(var i=[Yf(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(Yf(n,i[o-1]+t+e));return i.join("").substr(0,r)};function Yf(t,e){return t.start().update(e).digest().getBytes()}function Qf(t){var e;if(!t)e="hmacWithSHA1";else if(e=Q.oids[I.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return Xf(e)}function Xf(t){var e=M.md;switch(t){case"hmacWithSHA224":e=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function px(t,e,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,t),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Q.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var uh=q((NI,ch)=>{var me=fe();Mr();Be();var Ii=ch.exports=me.sha512=me.sha512||{};me.md.sha512=me.md.algorithms.sha512=Ii;var oh=me.sha384=me.sha512.sha384=me.sha512.sha384||{};oh.create=function(){return Ii.create("SHA-384")};me.md.sha384=me.md.algorithms.sha384=oh;me.sha512.sha256=me.sha512.sha256||{create:function(){return Ii.create("SHA-512/256")}};me.md["sha512/256"]=me.md.algorithms["sha512/256"]=me.sha512.sha256;me.sha512.sha224=me.sha512.sha224||{create:function(){return Ii.create("SHA-512/224")}};me.md["sha512/224"]=me.md.algorithms["sha512/224"]=me.sha512.sha224;Ii.create=function(t){if(ah||Fb(),typeof t>"u"&&(t="SHA-512"),!(t in Xr))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=Xr[t],r=null,n=me.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=me.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=me.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),sh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=me.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(Cc.substr(0,a.blockLength-l));for(var f,d,p=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)f=a.fullMessageLength[h+1]*8,d=f/4294967296>>>0,p+=d,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),h=0;h<r.length;++h)m[h]=r[h].slice(0);sh(m,i,c);var y=me.util.createBuffer(),g;t==="SHA-512"?g=m.length:t==="SHA-384"?g=m.length-2:g=m.length-4;for(var h=0;h<g;++h)y.putInt32(m[h][0]),(h!==g-1||t!=="SHA-512/224")&&y.putInt32(m[h][1]);return y},a};var Cc=null,ah=!1,Rc=null,Xr=null;function Fb(){Cc="\x80",Cc+=me.util.fillString("\0",128),Rc=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],Xr={},Xr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Xr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Xr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Xr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],ah=!0}function sh(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x,b,A,E,_,T,P,z,G,$,J,le,$e,B,k,D,N,C,U,K,H=r.length();H>=128;){for(B=0;B<16;++B)e[B][0]=r.getInt32()>>>0,e[B][1]=r.getInt32()>>>0;for(;B<80;++B)N=e[B-2],k=N[0],D=N[1],n=((k>>>19|D<<13)^(D>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|D>>>19)^(D<<3|k>>>29)^(k<<26|D>>>6))>>>0,U=e[B-15],k=U[0],D=U[1],s=((k>>>1|D<<31)^(k>>>8|D<<24)^k>>>7)>>>0,o=((k<<31|D>>>1)^(k<<24|D>>>8)^(k<<25|D>>>7))>>>0,C=e[B-7],K=e[B-16],D=i+C[1]+o+K[1],e[B][0]=n+C[0]+s+K[0]+(D/4294967296>>>0)>>>0,e[B][1]=D>>>0;for(m=t[0][0],y=t[0][1],g=t[1][0],x=t[1][1],b=t[2][0],A=t[2][1],E=t[3][0],_=t[3][1],T=t[4][0],P=t[4][1],z=t[5][0],G=t[5][1],$=t[6][0],J=t[6][1],le=t[7][0],$e=t[7][1],B=0;B<80;++B)u=((T>>>14|P<<18)^(T>>>18|P<<14)^(P>>>9|T<<23))>>>0,l=((T<<18|P>>>14)^(T<<14|P>>>18)^(P<<23|T>>>9))>>>0,f=($^T&(z^$))>>>0,d=(J^P&(G^J))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,h=(y&x|A&(y^x))>>>0,D=$e+l+d+Rc[B][1]+e[B][1],n=le+u+f+Rc[B][0]+e[B][0]+(D/4294967296>>>0)>>>0,i=D>>>0,D=c+h,s=a+p+(D/4294967296>>>0)>>>0,o=D>>>0,le=$,$e=J,$=z,J=G,z=T,G=P,D=_+i,T=E+n+(D/4294967296>>>0)>>>0,P=D>>>0,E=b,_=A,b=g,A=x,g=m,x=y,D=i+o,m=n+s+(D/4294967296>>>0)>>>0,y=D>>>0;D=t[0][1]+y,t[0][0]=t[0][0]+m+(D/4294967296>>>0)>>>0,t[0][1]=D>>>0,D=t[1][1]+x,t[1][0]=t[1][0]+g+(D/4294967296>>>0)>>>0,t[1][1]=D>>>0,D=t[2][1]+A,t[2][0]=t[2][0]+b+(D/4294967296>>>0)>>>0,t[2][1]=D>>>0,D=t[3][1]+_,t[3][0]=t[3][0]+E+(D/4294967296>>>0)>>>0,t[3][1]=D>>>0,D=t[4][1]+P,t[4][0]=t[4][0]+T+(D/4294967296>>>0)>>>0,t[4][1]=D>>>0,D=t[5][1]+G,t[5][0]=t[5][0]+z+(D/4294967296>>>0)>>>0,t[5][1]=D>>>0,D=t[6][1]+J,t[6][0]=t[6][0]+$+(D/4294967296>>>0)>>>0,t[6][1]=D>>>0,D=t[7][1]+$e,t[7][0]=t[7][0]+le+(D/4294967296>>>0)>>>0,t[7][1]=D>>>0,H-=128}}});var qc=q((Q4,Oh)=>{var Un=1e3,Fn=Un*60,Kn=Fn*60,Jr=Kn*24,h2=Jr*7,d2=Jr*365.25;Oh.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return p2(t);if(r==="number"&&isFinite(t))return e.long?y2(t):m2(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function p2(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*d2;case"weeks":case"week":case"w":return r*h2;case"days":case"day":case"d":return r*Jr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Kn;case"minutes":case"minute":case"mins":case"min":case"m":return r*Fn;case"seconds":case"second":case"secs":case"sec":case"s":return r*Un;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function m2(t){var e=Math.abs(t);return e>=Jr?Math.round(t/Jr)+"d":e>=Kn?Math.round(t/Kn)+"h":e>=Fn?Math.round(t/Fn)+"m":e>=Un?Math.round(t/Un)+"s":t+"ms"}function y2(t){var e=Math.abs(t);return e>=Jr?Vs(t,e,Jr,"day"):e>=Kn?Vs(t,e,Kn,"hour"):e>=Fn?Vs(t,e,Fn,"minute"):e>=Un?Vs(t,e,Un,"second"):t+" ms"}function Vs(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Uh=q((X4,Mh)=>{function g2(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=qc(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,d=null,p,h;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let A=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(_,T)=>{if(_==="%%")return"%";A++;let P=r.formatters[T];if(typeof P=="function"){let z=y[A];_=P.call(g,z),y.splice(A,1),A--}return _}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(l)),h),set:y=>{d=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}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 r.enable(r.load()),r}Mh.exports=g2});var Vc=q((yt,$s)=>{yt.formatArgs=b2;yt.save=w2;yt.load=E2;yt.useColors=x2;yt.storage=v2();yt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function x2(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function b2(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+$s.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}yt.log=console.debug||console.log||(()=>{});function w2(t){try{t?yt.storage.setItem("debug",t):yt.storage.removeItem("debug")}catch{}}function E2(){let t;try{t=yt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function v2(){try{return localStorage}catch{}}$s.exports=Uh()(yt);var{formatters:_2}=$s.exports;_2.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var fd=q((J8,uu)=>{"use strict";var sw=Object.prototype.hasOwnProperty,ot="~";function Fi(){}Object.create&&(Fi.prototype=Object.create(null),new Fi().__proto__||(ot=!1));function ow(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function ld(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new ow(r,n||t,i),o=ot?ot+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function Js(t,e){--t._eventsCount===0?t._events=new Fi:delete t._events[e]}function nt(){this._events=new Fi,this._eventsCount=0}nt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)sw.call(r,n)&&e.push(ot?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};nt.prototype.listeners=function(e){var r=ot?ot+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};nt.prototype.listenerCount=function(e){var r=ot?ot+e:e,n=this._events[r];return n?n.fn?1:n.length:0};nt.prototype.emit=function(e,r,n,i,s,o){var a=ot?ot+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;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,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,p;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};nt.prototype.on=function(e,r,n){return ld(this,e,r,n,!1)};nt.prototype.once=function(e,r,n){return ld(this,e,r,n,!0)};nt.prototype.removeListener=function(e,r,n,i){var s=ot?ot+e:e;if(!this._events[s])return this;if(!r)return Js(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Js(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:Js(this,s)}return this};nt.prototype.removeAllListeners=function(e){var r;return e?(r=ot?ot+e:e,this._events[r]&&Js(this,r)):(this._events=new Fi,this._eventsCount=0),this};nt.prototype.off=nt.prototype.removeListener;nt.prototype.addListener=nt.prototype.on;nt.prefixed=ot;nt.EventEmitter=nt;typeof uu<"u"&&(uu.exports=nt)});var Au=q((x3,Ad)=>{"use strict";function Sd(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function _w(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return Sd(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),Sd(new i,r)}}Ad.exports=_w});var Bd=q(qi=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,p,h;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=e(c),p=h[0],l=h[1],c=c.substring(l),u.push(p)}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")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,d,p;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[d,f]},t=function(){function c(u,l){var f,d,p,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(h=u.split("/",2),u=h[0],l=h[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=p=32;p>=0;d=--p)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);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):(o(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 l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),qi.ip2long=o,qi.long2ip=a,qi.Netmask=t}).call(qi)});var Nd=q((Dd,ho)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(b=h-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=function(){let A=p.split(":"),E=[];for(let _=0;_<A.length;_++)E.push(parseInt(A[_],16));return E}(),{parts:h,zoneId:g}}function u(p,h,m,y){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==h[g]>>x)return!1;y-=m,g+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,h){for(;p.length<h;)p=`0${p}`;return p}let d={};d.IPv4=function(){function p(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<h.length;m++)if(y=h[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[x],m&&b!==0)return null;b!==8&&(m=!0),h+=b}else return null;return 32-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),d.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(p){return this.parser(p)!==null},d.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(p){return!!(d.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},d.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let y=[this.parse(h[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(p){let h,m,y;if(h=p.match(r.fourOctet))return function(){let g=h.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(h=p.match(r.longValue)){if(y=l(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(h=p.match(r.twoOctet))?function(){let g=h.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=p.match(r.threeOctet))?function(){let g=h.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<4&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.IPv6=function(){function p(h,m){let y,g;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!0),h+=x}else return null;return 128-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],y=this.parts;for(let g=0;g<y.length;g++)h=y[g],m.push(h>>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),m=h[0],y=h[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=h.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),d.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},d.IPv6.isIPv6=function(p){return this.parser(p)!==null},d.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},d.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},d.IPv6.parseCIDR=function(p){let h,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return y=[this.parse(m[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(p){let h,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",h=c(y[1].slice(0,-1)+b,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<16&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.fromByteArray=function(p){let h=p.length;if(h===4)return new d.IPv4(p);if(h===16)return new d.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(p){return d.IPv6.isValid(p)||d.IPv4.isValid(p)},d.parse=function(p){if(d.IPv6.isValid(p))return d.IPv6.parse(p);if(d.IPv4.isValid(p))return d.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(p){try{return d.IPv6.parseCIDR(p)}catch{try{return d.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(p){let h=this.parse(p);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},d.subnetMatch=function(p,h,m){let y,g,x,b;m==null&&(m="unicast");for(g in h)if(Object.prototype.hasOwnProperty.call(h,g)){for(x=h[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof ho<"u"&&ho.exports?ho.exports=d:t.ipaddr=d})(Dd)});var np=q((RB,rp)=>{"use strict";rp.exports=tp;var Qw=qc(),Dr=tp.prototype,Xw=new Date%1e9;function Zw(){return(Math.random()*1e9>>>0)+Xw++}function tp(t){t=t||{},this.id=t.id||Zw(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}Dr.has=function(t){return t in this._lookup};Dr.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};Dr.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Dr.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Dr.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};Dr.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=Qw(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Dr.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Dr.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var cp=q((kB,ap)=>{"use strict";ap.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var pp=q((hp,dp)=>{"use strict";var Eo=cp(),{hasOwnProperty:lp}=Object.prototype,{propertyIsEnumerable:eE}=Object,Jn=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),tE=hp,up={concatArrays:!1,ignoreUndefined:!1},vo=t=>{let e=[];for(let r in t)lp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)eE.call(t,n)&&e.push(n)}return e};function ei(t){return Array.isArray(t)?rE(t):Eo(t)?nE(t):t}function rE(t){let e=t.slice(0,0);return vo(t).forEach(r=>{Jn(e,r,ei(t[r]))}),e}function nE(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return vo(t).forEach(r=>{Jn(e,r,ei(t[r]))}),e}var fp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?Jn(t,i,Hu(t[i],e[i],n)):Jn(t,i,ei(e[i])))}),t),iE=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)lp.call(s,a)&&(o.push(String(a)),s===t?Jn(n,i++,s[a]):Jn(n,i++,ei(s[a])));n=fp(n,s,vo(s).filter(a=>!o.includes(a)),r)}),n};function Hu(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?iE(t,e,r):!Eo(e)||!Eo(t)?ei(e):fp(t,e,vo(e),r)}dp.exports=function(...t){let e=Hu(ei(up),this!==tE&&this||{},up),r={_:{}};for(let n of t)if(n!==void 0){if(!Eo(n))throw new TypeError("`"+n+"` is not an Option Object");r=Hu(r,{_:n},e)}return r._}});var Gi=q((HB,gp)=>{gp.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&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)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var bp=q((WB,xp)=>{xp.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var Ep=q((YB,wp)=>{var oE=bp();wp.exports=oE});var ft=q((XB,vp)=>{vp.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var hn=q((jB,Sp)=>{var Gu=Gi(),aE=Ep(),_p=ft();Sp.exports=class extends Gu{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new aE}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Gu?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof Gu))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new _p(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new _p(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var Ip=q((JB,Ap)=>{var cE=hn(),uE=ft(),Wu="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",Yu=class extends cE{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage||this.client.constructor.name==="Commander"||!1,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Wu})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new uE;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(e,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(e,r,"EX",s):o.set(e,r,{EX:s}):o.set(e,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(e).exec(!0):o.pTTL(e).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([e].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,s,u):this.client.eval(Wu,1,e,r,s,u)}):this.client.eval(Wu,{keys:[e],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(e,r).pttl(e).exec(!0):o.incrBy(e,r).pTTL(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(e).pttl(e).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(e).pTTL(e).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(e){return this.client.del(e).then(r=>r>0)}};Ap.exports=Yu});var Tp=q((e6,Rp)=>{var lE=hn(),fE=ft();function Cp(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var Qu=class t extends lE{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=Cp(this.client)}):(this._initCollection(),this._driverVersion=Cp(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?t.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new fE,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),h={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,h,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Rp.exports=Qu});var Lp=q((t6,Bp)=>{var hE=hn(),dE=ft(),Xu=class extends hE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new dE,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
15
+ `+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function ty(t){return t.replace(/^\s+/,"")}});var ff=q((Av,lf)=>{var Ut=fe();Mr();Le();var af=lf.exports=Ut.sha256=Ut.sha256||{};Ut.md.sha256=Ut.md.algorithms.sha256=af;af.create=function(){cf||ry();var t=null,e=Ut.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Ut.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ut.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),of(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Ut.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ua.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};of(f,r,i);var d=Ut.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var ua=null,cf=!1,uf=null;function ry(){ua="\x80",ua+=Ut.util.fillString("\0",64),uf=[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],cf=!0}function of(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,d=t.h2,p=t.h3,h=t.h4,m=t.h5,y=t.h6,g=t.h7,u=0;u<64;++u)o=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=g+o+a+uf[u]+e[u],i=s+c,g=y,y=m,m=h,h=p+n>>>0,p=d,d=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+d|0,t.h3=t.h3+p|0,t.h4=t.h4+h|0,t.h5=t.h5+m|0,t.h6=t.h6+y|0,t.h7=t.h7+g|0,x-=64}}});var df=q((Iv,hf)=>{var Ft=fe();Le();var os=null;Ft.util.isNodejs&&!Ft.options.usePureJavaScript&&!process.versions["node-webkit"]&&(os=fi());var ny=hf.exports=Ft.prng=Ft.prng||{};ny.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,d=e.plugin.increment,p=e.plugin.formatKey,h=e.plugin.formatSeed,m=Ft.util.createBuffer();e.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return Ft.util.nextTick(function(){s(y)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=p(f(e.key,d(e.seed))),e.seed=h(f(e.key,e.seed)),Ft.util.setImmediate(y)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,d=e.plugin.formatKey,p=e.plugin.formatSeed;e.key=null;for(var h=Ft.util.createBuffer();h.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var m=l(e.key,e.seed);e.generated+=m.length,h.putBytes(m),e.key=d(l(e.key,f(e.seed))),e.seed=p(l(e.key,e.seed))}return h.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,d){if(f)return u(f);e.collect(d),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var d=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(d),e.generated=0}function c(u){var l=null,f=Ft.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(E){return d.getRandomValues(E)});var p=Ft.util.createBuffer();if(l)for(;p.length()<u;){var h=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(h));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(p.length()<u)for(var g,x,b,A=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(A&65535),g=16807*(A>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),A=x&4294967295;for(var y=0;y<3;++y)b=A>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return os?(e.seedFile=function(u,l){os.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},e.seedFileSync=function(u){return os.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,d){function p(h){var m=h.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&e.seedFile(d.forge.prng.needed,function(p,h){u.postMessage({forge:{prng:{err:p,bytes:h}}})})};u.addEventListener("message",l)}},e}});var hi=q((Rv,la)=>{var qe=fe();ca();ff();df();Le();(function(){if(qe.random&&qe.random.getBytes){la.exports=qe.random;return}(function(t){var e={},r=new Array(4),n=qe.util.createBuffer();e.formatKey=function(f){var d=qe.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),qe.aes._expandKey(f,!1)},e.formatSeed=function(f){var d=qe.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},e.cipher=function(f,d){return qe.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=qe.md.sha256;function i(){var f=qe.prng.create(e);return f.getBytes=function(d,p){return f.generate(d,p)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=qe.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),qe.options.usePureJavaScript||!qe.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!qe.random)qe.random=s;else for(var l in s)qe.random[l]=s[l];qe.random.createInstance=i,la.exports=qe.random})(typeof jQuery<"u"?jQuery:null)})()});var gf=q((Cv,yf)=>{var at=fe();Le();var fa=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],pf=[1,2,3,5],iy=function(t,e){return t<<e&65535|(t&65535)>>16-e},sy=function(t,e){return(t&65535)>>e|t<<16-e&65535};yf.exports=at.rc2=at.rc2||{};at.rc2.expandKey=function(t,e){typeof t=="string"&&(t=at.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(fa[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,fa[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,fa[r.at(a+1)^r.at(a+s)]);return r};var mf=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=at.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=iy(h[u],pf[u]),l++},c=function(h){for(u=0;u<4;u++)h[u]+=f[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=sy(h[u],pf[u]),h[u]-=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),l--},c=function(h){for(u=3;u>=0;u--)h[u]-=f[h[(u+3)%4]&63]});var d=function(h){var m=[];for(u=0;u<4;u++){var y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<h.length;g++)for(var x=0;x<h[g][0];x++)h[g][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(h,m){h&&typeof h=="string"&&(h=at.util.createBuffer(h)),n=!1,i=at.util.createBuffer(),s=m||new at.util.createBuffer,o=h,p.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var m=!0;if(r)if(h)m=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(h)m=h(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};at.rc2.startEncrypting=function(t,e,r){var n=at.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};at.rc2.createEncryptionCipher=function(t,e){return mf(t,e,!0)};at.rc2.startDecrypting=function(t,e,r){var n=at.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};at.rc2.createDecryptionCipher=function(t,e){return mf(t,e,!1)}});var us=q((Tv,Af)=>{var ha=fe();Af.exports=ha.jsbn=ha.jsbn||{};var jt,oy=0xdeadbeefcafe,xf=(oy&16777215)==15715070;function C(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}ha.jsbn.BigInteger=C;function ne(){return new C(null)}function ay(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function cy(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function bf(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(C.prototype.am=bf,jt=28):xf&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=cy,jt=30):xf&&navigator.appName!="Netscape"?(C.prototype.am=ay,jt=26):(C.prototype.am=bf,jt=28);C.prototype.DB=jt;C.prototype.DM=(1<<jt)-1;C.prototype.DV=1<<jt;var da=52;C.prototype.FV=Math.pow(2,da);C.prototype.F1=da-jt;C.prototype.F2=2*jt-da;var uy="0123456789abcdefghijklmnopqrstuvwxyz",as=new Array,bn,xt;bn=48;for(xt=0;xt<=9;++xt)as[bn++]=xt;bn=97;for(xt=10;xt<36;++xt)as[bn++]=xt;bn=65;for(xt=10;xt<36;++xt)as[bn++]=xt;function wf(t){return uy.charAt(t)}function Ef(t,e){var r=as[t.charCodeAt(e)];return r??-1}function ly(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function fy(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function dr(t){var e=ne();return e.fromInt(t),e}function hy(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:Ef(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&C.ZERO.subTo(this,this)}function dy(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function py(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=wf(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=wf(n));return i?s:"0"}function my(){var t=ne();return C.ZERO.subTo(this,t),t}function yy(){return this.s<0?this.negate():this}function gy(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function cs(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function xy(){return this.t<=0?0:this.DB*(this.t-1)+cs(this.data[this.t-1]^this.s&this.DM)}function by(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function wy(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function Ey(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function vy(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function _y(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function Sy(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&C.ZERO.subTo(e,e)}function Ay(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function Iy(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ne());var s=ne(),o=this.s,a=t.s,c=this.DB-cs(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,p=(1<<this.F1)/f,h=1<<this.F2,m=r.t,y=m-u,g=e??ne();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),C.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+h)*p);if((r.data[m]+=s.am(0,x,r,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&C.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&C.ZERO.subTo(r,r)}}}function Ry(t){var e=ne();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(C.ZERO)>0&&t.subTo(e,e),e}function Ur(t){this.m=t}function Cy(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function Ty(t){return t}function By(t){t.divRemTo(this.m,null,t)}function Ly(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function Dy(t,e){t.squareTo(e),this.reduce(e)}Ur.prototype.convert=Cy;Ur.prototype.revert=Ty;Ur.prototype.reduce=By;Ur.prototype.mulTo=Ly;Ur.prototype.sqrTo=Dy;function Py(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Fr(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function Ny(t){var e=ne();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(C.ZERO)>0&&this.m.subTo(e,e),e}function ky(t){var e=ne();return t.copyTo(e),this.reduce(e),e}function Oy(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function My(t,e){t.squareTo(e),this.reduce(e)}function Uy(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Fr.prototype.convert=Ny;Fr.prototype.revert=ky;Fr.prototype.reduce=Oy;Fr.prototype.mulTo=Uy;Fr.prototype.sqrTo=My;function Fy(){return(this.t>0?this.data[0]&1:this.s)==0}function Ky(t,e){if(t>4294967295||t<1)return C.ONE;var r=ne(),n=ne(),i=e.convert(this),s=cs(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function qy(t,e){var r;return t<256||e.isEven()?r=new Ur(e):r=new Fr(e),this.exp(t,r)}C.prototype.copyTo=ly;C.prototype.fromInt=fy;C.prototype.fromString=hy;C.prototype.clamp=dy;C.prototype.dlShiftTo=by;C.prototype.drShiftTo=wy;C.prototype.lShiftTo=Ey;C.prototype.rShiftTo=vy;C.prototype.subTo=_y;C.prototype.multiplyTo=Sy;C.prototype.squareTo=Ay;C.prototype.divRemTo=Iy;C.prototype.invDigit=Py;C.prototype.isEven=Fy;C.prototype.exp=Ky;C.prototype.toString=py;C.prototype.negate=my;C.prototype.abs=yy;C.prototype.compareTo=gy;C.prototype.bitLength=xy;C.prototype.mod=Ry;C.prototype.modPowInt=qy;C.ZERO=dr(0);C.ONE=dr(1);function Vy(){var t=ne();return this.copyTo(t),t}function $y(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function zy(){return this.t==0?this.s:this.data[0]<<24>>24}function Hy(){return this.t==0?this.s:this.data[0]<<16>>16}function Gy(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function Wy(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Yy(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=dr(r),i=ne(),s=ne(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function Qy(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=Ef(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&C.ZERO.subTo(this,this)}function Xy(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(C.ONE.shiftLeft(t-1),pa,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(C.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Zy(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function jy(t){return this.compareTo(t)==0}function Jy(t){return this.compareTo(t)<0?this:t}function eg(t){return this.compareTo(t)>0?this:t}function tg(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function rg(t,e){return t&e}function ng(t){var e=ne();return this.bitwiseTo(t,rg,e),e}function pa(t,e){return t|e}function ig(t){var e=ne();return this.bitwiseTo(t,pa,e),e}function vf(t,e){return t^e}function sg(t){var e=ne();return this.bitwiseTo(t,vf,e),e}function _f(t,e){return t&~e}function og(t){var e=ne();return this.bitwiseTo(t,_f,e),e}function ag(){for(var t=ne(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function cg(t){var e=ne();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function ug(t){var e=ne();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function lg(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function fg(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+lg(this.data[t]);return this.s<0?this.t*this.DB:-1}function hg(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function dg(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=hg(this.data[r]^e);return t}function pg(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function mg(t,e){var r=C.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function yg(t){return this.changeBit(t,pa)}function gg(t){return this.changeBit(t,_f)}function xg(t){return this.changeBit(t,vf)}function bg(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function wg(t){var e=ne();return this.addTo(t,e),e}function Eg(t){var e=ne();return this.subTo(t,e),e}function vg(t){var e=ne();return this.multiplyTo(t,e),e}function _g(t){var e=ne();return this.divRemTo(t,e,null),e}function Sg(t){var e=ne();return this.divRemTo(t,null,e),e}function Ag(t){var e=ne(),r=ne();return this.divRemTo(t,e,r),new Array(e,r)}function Ig(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function Rg(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function di(){}function Sf(t){return t}function Cg(t,e,r){t.multiplyTo(e,r)}function Tg(t,e){t.squareTo(e)}di.prototype.convert=Sf;di.prototype.revert=Sf;di.prototype.mulTo=Cg;di.prototype.sqrTo=Tg;function Bg(t){return this.exp(t,new di)}function Lg(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function Dg(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function wn(t){this.r2=ne(),this.q3=ne(),C.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function Pg(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=ne();return t.copyTo(e),this.reduce(e),e}function Ng(t){return t}function kg(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function Og(t,e){t.squareTo(e),this.reduce(e)}function Mg(t,e,r){t.multiplyTo(e,r),this.reduce(r)}wn.prototype.convert=Pg;wn.prototype.revert=Ng;wn.prototype.reduce=kg;wn.prototype.mulTo=Mg;wn.prototype.sqrTo=Og;function Ug(t,e){var r=t.bitLength(),n,i=dr(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new Ur(e):e.isEven()?s=new wn(e):s=new Fr(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=ne();for(s.sqrTo(o[1],l);a<=u;)o[a]=ne(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,d,p=!0,h=ne(),m;for(r=cs(t.data[f])-1;f>=0;){for(r>=c?d=t.data[f]>>r-c&u:(d=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=t.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[d].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,h),s.sqrTo(h,i),a-=2;a>0?s.sqrTo(i,h):(m=i,i=h,h=m),s.mulTo(h,o[d],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,h),m=i,i=h,h=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Fg(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Kg(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function qg(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return C.ZERO;for(var r=t.clone(),n=this.clone(),i=dr(1),s=dr(0),o=dr(0),a=dr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(C.ONE)!=0)return C.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var Rt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Vg=(1<<26)/Rt[Rt.length-1];function $g(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=Rt[Rt.length-1]){for(e=0;e<Rt.length;++e)if(r.data[0]==Rt[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Rt.length;){for(var n=Rt[e],i=e+1;i<Rt.length&&n<Vg;)n*=Rt[i++];for(n=r.modInt(n);e<i;)if(n%Rt[e++]==0)return!1}return r.millerRabin(t)}function zg(t){var e=this.subtract(C.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=Hg(),s,o=0;o<t;++o){do s=new C(this.bitLength(),i);while(s.compareTo(C.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(C.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(C.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function Hg(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}C.prototype.chunkSize=Gy;C.prototype.toRadix=Yy;C.prototype.fromRadix=Qy;C.prototype.fromNumber=Xy;C.prototype.bitwiseTo=tg;C.prototype.changeBit=mg;C.prototype.addTo=bg;C.prototype.dMultiply=Ig;C.prototype.dAddOffset=Rg;C.prototype.multiplyLowerTo=Lg;C.prototype.multiplyUpperTo=Dg;C.prototype.modInt=Kg;C.prototype.millerRabin=zg;C.prototype.clone=Vy;C.prototype.intValue=$y;C.prototype.byteValue=zy;C.prototype.shortValue=Hy;C.prototype.signum=Wy;C.prototype.toByteArray=Zy;C.prototype.equals=jy;C.prototype.min=Jy;C.prototype.max=eg;C.prototype.and=ng;C.prototype.or=ig;C.prototype.xor=sg;C.prototype.andNot=og;C.prototype.not=ag;C.prototype.shiftLeft=cg;C.prototype.shiftRight=ug;C.prototype.getLowestSetBit=fg;C.prototype.bitCount=dg;C.prototype.testBit=pg;C.prototype.setBit=yg;C.prototype.clearBit=gg;C.prototype.flipBit=xg;C.prototype.add=wg;C.prototype.subtract=Eg;C.prototype.multiply=vg;C.prototype.divide=_g;C.prototype.remainder=Sg;C.prototype.divideAndRemainder=Ag;C.prototype.modPow=Ug;C.prototype.modInverse=qg;C.prototype.pow=Bg;C.prototype.gcd=Fg;C.prototype.isProbablePrime=$g});var Bf=q((Bv,Tf)=>{var Kt=fe();Mr();Le();var Rf=Tf.exports=Kt.sha1=Kt.sha1||{};Kt.md.sha1=Kt.md.algorithms.sha1=Rf;Rf.create=function(){Cf||Gg();var t=null,e=Kt.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Kt.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Kt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),If(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Kt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ma.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};If(f,r,i);var d=Kt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var ma=null,Cf=!1;function Gg(){ma="\x80",ma+=Kt.util.fillString("\0",64),Cf=!0}function If(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var Pf=q((Lv,Df)=>{var qt=fe();Le();hi();Bf();var Lf=Df.exports=qt.pkcs1=qt.pkcs1||{};Lf.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=qt.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-e.length,p=0;p<d;p++)f+="\0";var h=l.getBytes()+f+""+e;if(!i)i=qt.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=ls(i,a-s.digestLength-1,o),y=qt.util.xorBytes(h,m,h.length),g=ls(y,s.digestLength,o),x=qt.util.xorBytes(i,g,i.length);return"\0"+x+y};Lf.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=e.length,y.expectedLength=o,y}if(i===void 0?i=qt.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=ls(l,i.digestLength,s),d=qt.util.xorBytes(u,f,u.length),p=ls(d,o-i.digestLength-1,s),h=qt.util.xorBytes(l,p,l.length),m=h.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,A=i.digestLength;A<h.length;A++){var E=h.charCodeAt(A),_=E&1^1,T=x?65534:0;y|=E&T,x=x&_,b+=x}if(y||h.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(b+1)};function ls(t,e,r){r||(r=qt.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var Nf=q((Dv,ya)=>{var pr=fe();Le();us();hi();(function(){if(pr.prime){ya.exports=pr.prime;return}var t=ya.exports=pr.prime=pr.prime||{},e=pr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,d){return f|d};t.generateProbablePrime=function(f,d,p){typeof d=="function"&&(p=d,d={}),d=d||{};var h=d.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var m=d.prng||pr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(h.name==="PRIMEINC")return s(f,y,h.options,p);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(f,d,p,h){return"workers"in p?c(f,d,p,h):o(f,d,p,h)}function o(f,d,p,h){var m=u(f,d),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,d,y,g,x,h)}function a(f,d,p,h,m,y,g){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);pr.util.setImmediate(function(){a(f,d,p,h,m,y,g)})}function c(f,d,p,h){if(typeof Worker>"u")return o(f,d,p,h);var m=u(f,d),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return pr.util.estimateCores(function(E,_){E&&(_=2),y=_-1,A()});A();function A(){y=Math.max(1,y);for(var E=[],_=0;_<y;++_)E[_]=new Worker(b);for(var T=y,_=0;_<y;++_)E[_].addEventListener("message",z);var D=!1;function z(G){if(!D){--T;var $=G.data;if($.found){for(var J=0;J<E.length;++J)E[J].terminate();return D=!0,h(null,new e($.prime,16))}m.bitLength()>f&&(m=u(f,d));var le=m.toString(16);G.target.postMessage({hex:le,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,d){var p=new e(f,d),h=f-1;return p.testBit(h)||p.bitwiseTo(e.ONE.shiftLeft(h),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var hs=q((Pv,qf)=>{var V=fe();li();us();Zi();Pf();Nf();hi();Le();typeof re>"u"&&(re=V.jsbn.BigInteger);var re,ga=V.util.isNodejs?fi():null,v=V.asn1,bt=V.util;V.pki=V.pki||{};qf.exports=V.pki.rsa=V.rsa=V.rsa||{};var W=V.pki,Wg=[6,4,2,4,2,4,6,2],Yg={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Qg={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Xg={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Zg=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},jg={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Jg=function(t){var e;if(t.algorithm in W.oids)e=W.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=v.oidToDer(e).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},Ff=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(re.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(re.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new re(V.util.bytesToHex(V.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(re.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};W.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=Kf(t,e,r)):(i=V.util.createBuffer(),i.putBytes(t));for(var o=new re(i.toHex(),16),a=Ff(o,e,n),c=a.toString(16),u=V.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};W.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new re(V.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Ff(o,e,r),c=a.toString(16),u=V.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),n!==!1?fs(u.getBytes(),e,r):u.getBytes()};W.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new re(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};W.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new re(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new re(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(re.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(tx(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(Wg[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(re.ONE),t.q1=t.q.subtract(re.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(re.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};W.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(kf("generateKeyPair"))return ga.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:W.privateKeyFromPem(u),publicKey:W.publicKeyFromPem(c)})});if(Of("generateKey")&&Of("exportKey"))return bt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Uf(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return bt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=W.privateKeyFromAsn1(v.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:W.setRsaPublicKey(c.n,c.e)})}});if(Mf("generateKey")&&Mf("exportKey")){var i=bt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Uf(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=bt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=W.privateKeyFromAsn1(v.fromDer(V.util.createBuffer(f)));n(null,{privateKey:d,publicKey:W.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(kf("generateKeyPairSync")){var s=ga.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:W.privateKeyFromPem(s.privateKey),publicKey:W.publicKeyFromPem(s.publicKey)}}}var o=W.rsa.createKeyPairGenerationState(t,e,r);if(!n)return W.rsa.stepKeyPairGenerationState(o,0),o.keys;ex(o,r,n)};W.setRsaPublicKey=W.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return Kf(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return W.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=fs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!v.validate(l,jg,f,d)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=d,p}var h=v.derToOid(f.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=h,p}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=fs(u,r,!0),c===u}});var a=W.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};W.setRsaPrivateKey=W.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=W.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:fs};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,h){return V.pkcs1.decode_rsa_oaep(h,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:Jg},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return W.rsa.encrypt(d,c,f)},c};W.wrapRsaPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(W.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(t).getBytes())])};W.privateKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,Yg,e,r)&&(t=v.fromDer(V.util.createBuffer(e.privateKey))),e={},r=[],!v.validate(t,Qg,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=V.util.createBuffer(e.privateKeyModulus).toHex(),s=V.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=V.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(e.privateKeyPrime1).toHex(),c=V.util.createBuffer(e.privateKeyPrime2).toHex(),u=V.util.createBuffer(e.privateKeyExponent1).toHex(),l=V.util.createBuffer(e.privateKeyExponent2).toHex(),f=V.util.createBuffer(e.privateKeyCoefficient).toHex(),W.setRsaPrivateKey(new re(i,16),new re(s,16),new re(o,16),new re(a,16),new re(c,16),new re(u,16),new re(l,16),new re(f,16))};W.privateKeyToAsn1=W.privateKeyToRSAPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.qInv))])};W.publicKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,Zg,e,r)){var n=v.derToOid(e.publicKeyOid);if(n!==W.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!v.validate(t,Xg,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=V.util.createBuffer(e.publicKeyModulus).toHex(),o=V.util.createBuffer(e.publicKeyExponent).toHex();return W.setRsaPublicKey(new re(s,16),new re(o,16))};W.publicKeyToAsn1=W.publicKeyToSubjectPublicKeyInfo=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(W.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[W.publicKeyToRSAPublicKey(t)])])};W.publicKeyToRSAPublicKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Vt(t.e))])};function Kf(t,e,r){var n=V.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=V.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function fs(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=V.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function ex(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){V.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)!==0){t.p=null,i();return}if(t.q.subtract(re.ONE).gcd(t.e).compareTo(re.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(re.ONE),t.q1=t.q.subtract(re.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(re.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Vt(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=V.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function tx(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function kf(t){return V.util.isNodejs&&typeof ga[t]=="function"}function Of(t){return typeof bt.globalScope<"u"&&typeof bt.globalScope.crypto=="object"&&typeof bt.globalScope.crypto.subtle=="object"&&typeof bt.globalScope.crypto.subtle[t]=="function"}function Mf(t){return typeof bt.globalScope<"u"&&typeof bt.globalScope.msCrypto=="object"&&typeof bt.globalScope.msCrypto.subtle=="object"&&typeof bt.globalScope.msCrypto.subtle[t]=="function"}function Uf(t){for(var e=V.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var Wf=q((Nv,Gf)=>{var M=fe();ca();li();Xl();Mr();Zi();tf();sf();hi();gf();hs();Le();typeof Vf>"u"&&(Vf=M.jsbn.BigInteger);var Vf,I=M.asn1,Q=M.pki=M.pki||{};Gf.exports=Q.pbe=M.pbe=M.pbe||{};var Kr=Q.oids,rx={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},nx={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},ix={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Q.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=I.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=Kr["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=Kr["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=Kr["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=Kr.desCBC,f=M.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),h=Hf(p),m=M.pkcs5.pbkdf2(e,n,i,o,h),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(I.toDer(t)),g.finish(),c=g.output.getBytes();var x=sx(n,s,o,p);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(l).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Q.pbe.generatePkcs12Key(e,b,1,i,o),y=Q.pbe.generatePkcs12Key(e,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(I.toDer(t)),g.finish(),c=g.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Kr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var A=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return A};Q.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!I.validate(t,rx,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=I.derToOid(n.encryptionOid),a=Q.pbe.getCipher(o,n.encryptionParams,e),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};Q.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(t).getBytes()};return M.pem.encode(r,{maxline:e})};Q.encryptedPrivateKeyFromPem=function(t){var e=M.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(e.body)};Q.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=Q.wrapRsaPrivateKey(Q.privateKeyToAsn1(t));return n=Q.encryptPrivateKeyInfo(n,e,r),Q.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(I.toDer(Q.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Q.decryptRsaPrivateKey=function(t,e){var r=null,n=M.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Q.decryptPrivateKeyInfo(I.fromDer(r),e):r=I.fromDer(r),r!==null&&(r=Q.privateKeyFromAsn1(r)),r};Q.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var d=f.length(),p=e.length(),h=new M.util.ByteBuffer;h.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(e.at(a%p));var g=u*Math.ceil(d/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%d));var b=y;b.putBuffer(x);for(var A=Math.ceil(i/c),E=1;E<=A;E++){var _=new M.util.ByteBuffer;_.putBytes(h.bytes()),_.putBytes(b.bytes());for(var T=0;T<n;T++)s.start(),s.update(_.getBytes()),_=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(_.at(a%c));var z=Math.ceil(p/u)+Math.ceil(d/u),G=new M.util.ByteBuffer;for(o=0;o<z;o++){var $=new M.util.ByteBuffer(b.getBytes(u)),J=511;for(a=D.length()-1;a>=0;a--)J=J>>8,J+=D.at(a)+$.at(a),$.setAt(a,J&255);G.putBuffer($)}b=G,l.putBuffer(_)}return l.truncate(l.length()-i),l};Q.pbe.getCipher=function(t,e,r){switch(t){case Q.oids.pkcs5PBES2:return Q.pbe.getCipherForPBES2(t,e,r);case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:return Q.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Q.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!I.validate(e,nx,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=I.derToOid(n.kdfOid),t!==Q.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=I.derToOid(n.encOid),t!==Q.oids["aes128-CBC"]&&t!==Q.oids["aes192-CBC"]&&t!==Q.oids["aes256-CBC"]&&t!==Q.oids["des-EDE3-CBC"]&&t!==Q.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Q.oids[t]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=zf(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,p=u(f);return p.start(d),p};Q.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!I.validate(e,ix,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=zf(n.prfOid),d=Q.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Q.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,p)};Q.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}e===null&&(e="");for(var i=[$f(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push($f(n,i[o-1]+t+e));return i.join("").substr(0,r)};function $f(t,e){return t.start().update(e).digest().getBytes()}function zf(t){var e;if(!t)e="hmacWithSHA1";else if(e=Q.oids[I.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return Hf(e)}function Hf(t){var e=M.md;switch(t){case"hmacWithSHA224":e=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function sx(t,e,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,t),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Q.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var ih=q((AI,nh)=>{var me=fe();Mr();Le();var Si=nh.exports=me.sha512=me.sha512||{};me.md.sha512=me.md.algorithms.sha512=Si;var th=me.sha384=me.sha512.sha384=me.sha512.sha384||{};th.create=function(){return Si.create("SHA-384")};me.md.sha384=me.md.algorithms.sha384=th;me.sha512.sha256=me.sha512.sha256||{create:function(){return Si.create("SHA-512/256")}};me.md["sha512/256"]=me.md.algorithms["sha512/256"]=me.sha512.sha256;me.sha512.sha224=me.sha512.sha224||{create:function(){return Si.create("SHA-512/224")}};me.md["sha512/224"]=me.md.algorithms["sha512/224"]=me.sha512.sha224;Si.create=function(t){if(rh||Bb(),typeof t>"u"&&(t="SHA-512"),!(t in Xr))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=Xr[t],r=null,n=me.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=me.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=me.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),eh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=me.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(_c.substr(0,a.blockLength-l));for(var f,d,p=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)f=a.fullMessageLength[h+1]*8,d=f/4294967296>>>0,p+=d,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),h=0;h<r.length;++h)m[h]=r[h].slice(0);eh(m,i,c);var y=me.util.createBuffer(),g;t==="SHA-512"?g=m.length:t==="SHA-384"?g=m.length-2:g=m.length-4;for(var h=0;h<g;++h)y.putInt32(m[h][0]),(h!==g-1||t!=="SHA-512/224")&&y.putInt32(m[h][1]);return y},a};var _c=null,rh=!1,Sc=null,Xr=null;function Bb(){_c="\x80",_c+=me.util.fillString("\0",128),Sc=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],Xr={},Xr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Xr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Xr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Xr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],rh=!0}function eh(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x,b,A,E,_,T,D,z,G,$,J,le,$e,B,k,P,N,R,U,K,H=r.length();H>=128;){for(B=0;B<16;++B)e[B][0]=r.getInt32()>>>0,e[B][1]=r.getInt32()>>>0;for(;B<80;++B)N=e[B-2],k=N[0],P=N[1],n=((k>>>19|P<<13)^(P>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|P>>>19)^(P<<3|k>>>29)^(k<<26|P>>>6))>>>0,U=e[B-15],k=U[0],P=U[1],s=((k>>>1|P<<31)^(k>>>8|P<<24)^k>>>7)>>>0,o=((k<<31|P>>>1)^(k<<24|P>>>8)^(k<<25|P>>>7))>>>0,R=e[B-7],K=e[B-16],P=i+R[1]+o+K[1],e[B][0]=n+R[0]+s+K[0]+(P/4294967296>>>0)>>>0,e[B][1]=P>>>0;for(m=t[0][0],y=t[0][1],g=t[1][0],x=t[1][1],b=t[2][0],A=t[2][1],E=t[3][0],_=t[3][1],T=t[4][0],D=t[4][1],z=t[5][0],G=t[5][1],$=t[6][0],J=t[6][1],le=t[7][0],$e=t[7][1],B=0;B<80;++B)u=((T>>>14|D<<18)^(T>>>18|D<<14)^(D>>>9|T<<23))>>>0,l=((T<<18|D>>>14)^(T<<14|D>>>18)^(D<<23|T>>>9))>>>0,f=($^T&(z^$))>>>0,d=(J^D&(G^J))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,h=(y&x|A&(y^x))>>>0,P=$e+l+d+Sc[B][1]+e[B][1],n=le+u+f+Sc[B][0]+e[B][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,s=a+p+(P/4294967296>>>0)>>>0,o=P>>>0,le=$,$e=J,$=z,J=G,z=T,G=D,P=_+i,T=E+n+(P/4294967296>>>0)>>>0,D=P>>>0,E=b,_=A,b=g,A=x,g=m,x=y,P=i+o,m=n+s+(P/4294967296>>>0)>>>0,y=P>>>0;P=t[0][1]+y,t[0][0]=t[0][0]+m+(P/4294967296>>>0)>>>0,t[0][1]=P>>>0,P=t[1][1]+x,t[1][0]=t[1][0]+g+(P/4294967296>>>0)>>>0,t[1][1]=P>>>0,P=t[2][1]+A,t[2][0]=t[2][0]+b+(P/4294967296>>>0)>>>0,t[2][1]=P>>>0,P=t[3][1]+_,t[3][0]=t[3][0]+E+(P/4294967296>>>0)>>>0,t[3][1]=P>>>0,P=t[4][1]+D,t[4][0]=t[4][0]+T+(P/4294967296>>>0)>>>0,t[4][1]=P>>>0,P=t[5][1]+G,t[5][0]=t[5][0]+z+(P/4294967296>>>0)>>>0,t[5][1]=P>>>0,P=t[6][1]+J,t[6][0]=t[6][0]+$+(P/4294967296>>>0)>>>0,t[6][1]=P>>>0,P=t[7][1]+$e,t[7][0]=t[7][0]+le+(P/4294967296>>>0)>>>0,t[7][1]=P>>>0,H-=128}}});var Mc=q((K4,Lh)=>{var On=1e3,Mn=On*60,Un=Mn*60,Jr=Un*24,n2=Jr*7,i2=Jr*365.25;Lh.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return s2(t);if(r==="number"&&isFinite(t))return e.long?a2(t):o2(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function s2(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*i2;case"weeks":case"week":case"w":return r*n2;case"days":case"day":case"d":return r*Jr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Un;case"minutes":case"minute":case"mins":case"min":case"m":return r*Mn;case"seconds":case"second":case"secs":case"sec":case"s":return r*On;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function o2(t){var e=Math.abs(t);return e>=Jr?Math.round(t/Jr)+"d":e>=Un?Math.round(t/Un)+"h":e>=Mn?Math.round(t/Mn)+"m":e>=On?Math.round(t/On)+"s":t+"ms"}function a2(t){var e=Math.abs(t);return e>=Jr?Ms(t,e,Jr,"day"):e>=Un?Ms(t,e,Un,"hour"):e>=Mn?Ms(t,e,Mn,"minute"):e>=On?Ms(t,e,On,"second"):t+" ms"}function Ms(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Ph=q((q4,Dh)=>{function c2(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Mc(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,d=null,p,h;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let A=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(_,T)=>{if(_==="%%")return"%";A++;let D=r.formatters[T];if(typeof D=="function"){let z=y[A];_=D.call(g,z),y.splice(A,1),A--}return _}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(l)),h),set:y=>{d=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}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 r.enable(r.load()),r}Dh.exports=c2});var Uc=q((yt,Us)=>{yt.formatArgs=l2;yt.save=f2;yt.load=h2;yt.useColors=u2;yt.storage=d2();yt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function u2(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function l2(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Us.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}yt.log=console.debug||console.log||(()=>{});function f2(t){try{t?yt.storage.setItem("debug",t):yt.storage.removeItem("debug")}catch{}}function h2(){let t;try{t=yt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function d2(){try{return localStorage}catch{}}Us.exports=Ph()(yt);var{formatters:p2}=Us.exports;p2.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var sd=q((MC,iu)=>{"use strict";var X2=Object.prototype.hasOwnProperty,ot="~";function ki(){}Object.create&&(ki.prototype=Object.create(null),new ki().__proto__||(ot=!1));function Z2(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function id(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new Z2(r,n||t,i),o=ot?ot+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function Ys(t,e){--t._eventsCount===0?t._events=new ki:delete t._events[e]}function nt(){this._events=new ki,this._eventsCount=0}nt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)X2.call(r,n)&&e.push(ot?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};nt.prototype.listeners=function(e){var r=ot?ot+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};nt.prototype.listenerCount=function(e){var r=ot?ot+e:e,n=this._events[r];return n?n.fn?1:n.length:0};nt.prototype.emit=function(e,r,n,i,s,o){var a=ot?ot+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;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,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,p;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};nt.prototype.on=function(e,r,n){return id(this,e,r,n,!1)};nt.prototype.once=function(e,r,n){return id(this,e,r,n,!0)};nt.prototype.removeListener=function(e,r,n,i){var s=ot?ot+e:e;if(!this._events[s])return this;if(!r)return Ys(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Ys(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:Ys(this,s)}return this};nt.prototype.removeAllListeners=function(e){var r;return e?(r=ot?ot+e:e,this._events[r]&&Ys(this,r)):(this._events=new ki,this._eventsCount=0),this};nt.prototype.off=nt.prototype.removeListener;nt.prototype.addListener=nt.prototype.on;nt.prefixed=ot;nt.EventEmitter=nt;typeof iu<"u"&&(iu.exports=nt)});var Eu=q((r3,bd)=>{"use strict";function xd(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function pw(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return xd(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),xd(new i,r)}}bd.exports=pw});var Sd=q(Fi=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,p,h;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=e(c),p=h[0],l=h[1],c=c.substring(l),u.push(p)}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")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,d,p;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[d,f]},t=function(){function c(u,l){var f,d,p,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(h=u.split("/",2),u=h[0],l=h[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=p=32;p>=0;d=--p)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);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):(o(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 l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Fi.ip2long=o,Fi.long2ip=a,Fi.Netmask=t}).call(Fi)});var Cd=q((Rd,ao)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(b=h-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=function(){let A=p.split(":"),E=[];for(let _=0;_<A.length;_++)E.push(parseInt(A[_],16));return E}(),{parts:h,zoneId:g}}function u(p,h,m,y){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==h[g]>>x)return!1;y-=m,g+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,h){for(;p.length<h;)p=`0${p}`;return p}let d={};d.IPv4=function(){function p(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<h.length;m++)if(y=h[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[x],m&&b!==0)return null;b!==8&&(m=!0),h+=b}else return null;return 32-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),d.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(p){return this.parser(p)!==null},d.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(p){return!!(d.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},d.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let y=[this.parse(h[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(p){let h,m,y;if(h=p.match(r.fourOctet))return function(){let g=h.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(h=p.match(r.longValue)){if(y=l(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(h=p.match(r.twoOctet))?function(){let g=h.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=p.match(r.threeOctet))?function(){let g=h.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<4&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.IPv6=function(){function p(h,m){let y,g;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!0),h+=x}else return null;return 128-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],y=this.parts;for(let g=0;g<y.length;g++)h=y[g],m.push(h>>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),m=h[0],y=h[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=h.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),d.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},d.IPv6.isIPv6=function(p){return this.parser(p)!==null},d.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},d.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},d.IPv6.parseCIDR=function(p){let h,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return y=[this.parse(m[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(p){let h,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",h=c(y[1].slice(0,-1)+b,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<16&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.fromByteArray=function(p){let h=p.length;if(h===4)return new d.IPv4(p);if(h===16)return new d.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(p){return d.IPv6.isValid(p)||d.IPv4.isValid(p)},d.parse=function(p){if(d.IPv6.isValid(p))return d.IPv6.parse(p);if(d.IPv4.isValid(p))return d.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(p){try{return d.IPv6.parseCIDR(p)}catch{try{return d.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(p){let h=this.parse(p);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},d.subnetMatch=function(p,h,m){let y,g,x,b;m==null&&(m="unicast");for(g in h)if(Object.prototype.hasOwnProperty.call(h,g)){for(x=h[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof ao<"u"&&ao.exports?ao.exports=d:t.ipaddr=d})(Rd)});var Zd=q((hB,Xd)=>{"use strict";Xd.exports=Qd;var Kw=Mc(),Pr=Qd.prototype,qw=new Date%1e9;function Vw(){return(Math.random()*1e9>>>0)+qw++}function Qd(t){t=t||{},this.id=t.id||Vw(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}Pr.has=function(t){return t in this._lookup};Pr.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};Pr.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Pr.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Pr.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};Pr.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=Kw(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Pr.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Pr.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var rp=q((bB,tp)=>{"use strict";tp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var cp=q((op,ap)=>{"use strict";var yo=rp(),{hasOwnProperty:ip}=Object.prototype,{propertyIsEnumerable:Hw}=Object,Zn=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),Gw=op,np={concatArrays:!1,ignoreUndefined:!1},go=t=>{let e=[];for(let r in t)ip.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Hw.call(t,n)&&e.push(n)}return e};function jn(t){return Array.isArray(t)?Ww(t):yo(t)?Yw(t):t}function Ww(t){let e=t.slice(0,0);return go(t).forEach(r=>{Zn(e,r,jn(t[r]))}),e}function Yw(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return go(t).forEach(r=>{Zn(e,r,jn(t[r]))}),e}var sp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?Zn(t,i,qu(t[i],e[i],n)):Zn(t,i,jn(e[i])))}),t),Qw=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)ip.call(s,a)&&(o.push(String(a)),s===t?Zn(n,i++,s[a]):Zn(n,i++,jn(s[a])));n=sp(n,s,go(s).filter(a=>!o.includes(a)),r)}),n};function qu(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?Qw(t,e,r):!yo(e)||!yo(t)?jn(e):sp(t,e,go(e),r)}ap.exports=function(...t){let e=qu(jn(np),this!==Gw&&this||{},np),r={_:{}};for(let n of t)if(n!==void 0){if(!yo(n))throw new TypeError("`"+n+"` is not an Option Object");r=qu(r,{_:n},e)}return r._}});var zi=q((TB,fp)=>{fp.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&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)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var dp=q((LB,hp)=>{hp.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var mp=q((DB,pp)=>{var Zw=dp();pp.exports=Zw});var ht=q((NB,yp)=>{yp.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var fn=q((OB,xp)=>{var Vu=zi(),jw=mp(),gp=ht();xp.exports=class extends Vu{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new jw}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Vu?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof Vu))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new gp(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new gp(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var wp=q((MB,bp)=>{var Jw=fn(),eE=ht(),$u="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",zu=class extends Jw{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage||this.client.constructor.name==="Commander"||!1,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:$u})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new eE;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(e,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(e,r,"EX",s):o.set(e,r,{EX:s}):o.set(e,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(e).exec(!0):o.pTTL(e).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([e].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,s,u):this.client.eval($u,1,e,r,s,u)}):this.client.eval($u,{keys:[e],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(e,r).pttl(e).exec(!0):o.incrBy(e,r).pTTL(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(e).pttl(e).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(e).pTTL(e).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(e){return this.client.del(e).then(r=>r>0)}};bp.exports=zu});var _p=q((UB,vp)=>{var tE=fn(),rE=ht();function Ep(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var Hu=class t extends tE{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=Ep(this.client)}):(this._initCollection(),this._driverVersion=Ep(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?t.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new rE,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),h={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,h,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};vp.exports=Hu});var Ap=q((FB,Sp)=>{var nE=fn(),iE=ht(),Gu=class extends nE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new iE,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
16
16
  ON DUPLICATE KEY UPDATE
17
17
  points = ?,
18
18
  expire = ?;`,d=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
19
19
  ON DUPLICATE KEY UPDATE
20
20
  points = IF(expire <= ?, ?, points + (?)),
21
- expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,d,p=>{if(p)return e.rollback(),a(p);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(h,m)=>{if(h)return e.rollback(),a(h);e.query("COMMIT",y=>{if(y)return e.rollback(),a(y);o(m)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Bp.exports=Xu});var Dp=q((r6,Pp)=>{var pE=hn(),mE=ft(),Zu=class extends pE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.schemaName=e.schemaName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(e){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[e]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((e,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{e()}).catch(n=>{n.code==="23505"?e():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
21
+ expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,d,p=>{if(p)return e.rollback(),a(p);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(h,m)=>{if(h)return e.rollback(),a(h);e.query("COMMIT",y=>{if(y)return e.rollback(),a(y);o(m)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Sp.exports=Gu});var Rp=q((KB,Ip)=>{var sE=fn(),oE=ht(),Wu=class extends sE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.schemaName=e.schemaName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(e){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[e]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((e,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{e()}).catch(n=>{n.code==="23505"?e():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
22
22
  key varchar(255) PRIMARY KEY,
23
23
  points integer NOT NULL DEFAULT 0,
24
24
  expire bigint
25
- );`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get schemaName(){return this._schemaName}set schemaName(e){this._schemaName=e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new mE,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
25
+ );`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get schemaName(){return this._schemaName}set schemaName(e){this._schemaName=e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new oE,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
26
26
  WHEN ${this._getTableIdentifier()}.expire <= $4 THEN $3
27
27
  ELSE ${this._getTableIdentifier()}.expire
28
28
  END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
@@ -34,7 +34,7 @@
34
34
  END,
35
35
  expire = ${o}
36
36
  RETURNING points, expire;`,values:[e,r,s,Date.now()]})}_get(e){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
37
- SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Pp.exports=Zu});var Np=q(()=>{});var Op=q((o6,kp)=>{kp.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var Up=q((c6,Mp)=>{var yE=Op(),ju=ft();Mp.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return!this._storage[e].expiresAt||i>0?(this._storage[e].value=this._storage[e].value+r,new ju(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new yE(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new ju(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new ju(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var el=q((u6,Kp)=>{var gE=Gi(),xE=Up(),Fp=ft(),Ju=class extends gE{constructor(e={}){super(e),this._memoryStorage=new xE}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new Fp(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new Fp(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};Kp.exports=Ju});var Wp=q((l6,Gp)=>{var qp=Np(),bE=hi(),wE=Gi(),$p=el(),EE=ft(),St="rate_limiter_flexible",ni=null,Vp=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:St,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},zp=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&zp.call(this,t)},30)},ti=function(t,e,r,n,i){let s={channel:St,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):zp.call(this,s)},Hp=function(t,e){if(!e||e.channel!==St||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{Vp(t,e,"resolve",n)}).catch(n=>{Vp(t,e,"reject",n)})},vE=function(t){if(!t||t.channel!==St||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new EE(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},_E=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},ri=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=bE.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},tl=class{constructor(){if(ni)return ni;this._rateLimiters={},qp.setMaxListeners(0),qp.on("message",(e,r)=>{r&&r.channel===St&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new $p(r.opts)),e.send({channel:St,type:"init",keyPrefix:r.opts.keyPrefix})):Hp.call(this,e,r)}),ni=this}},rl=class{constructor(e){if(ni)return ni;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===St&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new $p(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:St,channel:St,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=St,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Hp.call(this,o,s)}})}),ni=this}},nl=class extends wE{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===St&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:vE.call(this,r)}),process.send({channel:St,type:"init",opts:_E.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=ri.call(this,i,s);ti.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=ri.call(this,i,s);ti.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=ri.call(this,i,s);ti.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=ri.call(this,i,s);ti.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=ri.call(this,n,i);ti.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=ri.call(this,n,i);ti.call(this,"delete",s,e,r)})}};Gp.exports={RateLimiterClusterMaster:tl,RateLimiterClusterMasterPM2:rl,RateLimiterCluster:nl}});var Qp=q((f6,Yp)=>{var SE=hn(),AE=ft(),il=class extends SE{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new AE;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(d,p)=>{if(d||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let h=Object.assign({},s);h.attemptNumber=h.attemptNumber?h.attemptNumber+1:1,this._upsert(e,r,n,i,h).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let h={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(h)})}):this.client.get(`${e}_expire`,(d,p)=>{if(d)a(d);else{let h=p===!1?0:p,m={consumedPoints:f,msBeforeNext:h>=0?Math.max(h-c,0):-1};o(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};Yp.exports=il});var jp=q((d6,Zp)=>{var Xp=ft();Zp.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new Xp(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Xp(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var em=q((m6,Jp)=>{var IE=Gi();Jp.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof IE))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var rm=q((g6,tm)=>{tm.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var om=q((b6,sm)=>{var nm=rm(),im=4294967295,sl="limiter";sm.exports=class{constructor(e,r={maxQueueSize:im}){this._queueLimiters={KEY_DEFAULT:new So(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=sl){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=sl){return this._queueLimiters[r]||(this._queueLimiters[r]=new So(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var So=class{constructor(e,r={maxQueueSize:im,key:sl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new nm(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new nm(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var cm=q((E6,am)=>{var ol=ft();am.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return e?new ol(e.remainingPoints,Math.min(e.msBeforeNext,r?r.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof ol?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof ol?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var lm=q((v6,um)=>{var CE=ft(),RE=hn(),Ao=class{constructor(e,r,n){this.key=e,this.points=r,this.expire=n}},TE=25,BE=25,al=class extends RE{constructor(e,r=null){super(e),this.client=e.storeClient,this.tableName=e.tableName,this.tableCreated=e.tableCreated,this.tableCreated?this._setTTL().finally(()=>{typeof r=="function"&&r()}):this._createTable(e.dynamoTableOpts).then(n=>{this.tableCreated=!0,this._setTTL().finally(()=>{typeof r=="function"&&r()})}).catch(n=>{if(typeof r=="function")r(n);else throw n})}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?"node-rate-limiter-flexible":e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}async _createTable(e){let r={TableName:this.tableName,AttributeDefinitions:[{AttributeName:"key",AttributeType:"S"}],KeySchema:[{AttributeName:"key",KeyType:"HASH"}],ProvisionedThroughput:{ReadCapacityUnits:e&&e.readCapacityUnits?e.readCapacityUnits:TE,WriteCapacityUnits:e&&e.writeCapacityUnits?e.writeCapacityUnits:BE}};try{return await this.client.createTable(r)}catch(n){if(n.__type&&n.__type.includes("ResourceInUseException"))return null;throw n}}async _get(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}}},n=await this.client.getItem(r);return n.Item?new Ao(n.Item.key.S,Number(n.Item.points.N),Number(n.Item.expire.N)):null}async _delete(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}},ConditionExpression:"attribute_exists(#k)",ExpressionAttributeNames:{"#k":"key"}};try{return(await this._client.deleteItem(r)).$metadata.httpStatusCode===200}catch(n){if(n.__type&&n.__type.includes("ConditionalCheckFailedException"))return!1;throw n}}async _upsert(e,r,n,i=!1,s={}){if(!this.tableCreated)throw new Error("Table is not created yet");let o=Date.now(),a=o/1e3,c=n>0?(o+n)/1e3:-1;if(i)return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :points, expire = :expire",ExpressionAttributeValues:{":points":{N:r.toString()},":expire":{N:c.toString()}},ReturnValues:"ALL_NEW"});try{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :new_points, expire = :new_expire",ExpressionAttributeValues:{":new_points":{N:r.toString()},":new_expire":{N:c.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire <= :where_expire OR attribute_not_exists(points)",ReturnValues:"ALL_NEW"})}catch{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = points + :new_points",ExpressionAttributeValues:{":new_points":{N:r.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire > :where_expire",ReturnValues:"ALL_NEW"})}}async _baseUpsert(e){if(!this.tableCreated)throw new Error("Table is not created yet");try{let r=await this.client.updateItem(e);return new Ao(r.Attributes.key.S,Number(r.Attributes.points.N),Number(r.Attributes.expire.N))}catch(r){throw r}}async _setTTL(){if(!this.tableCreated)throw new Error("Table is not created yet");try{if(await this._isTTLSet())return;let r={TableName:this.tableName,TimeToLiveSpecification:{AttributeName:"expire",Enabled:!0}};return await this.client.updateTimeToLive(r)}catch(e){throw e}}async _isTTLSet(){if(!this.tableCreated)throw new Error("Table is not created yet");try{let e=await this.client.describeTimeToLive({TableName:this.tableName});return e.$metadata.httpStatusCode==200&&e.TimeToLiveDescription.TimeToLiveStatus==="ENABLED"&&e.TimeToLiveDescription.AttributeName==="expire"}catch(e){throw e}}_getRateLimiterRes(e,r,n){let i=new CE;return i.isFirstInDuration=r===n.points,i.consumedPoints=i.isFirstInDuration?r:n.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.expire!=-1?Math.max(n.expire*1e3-Date.now(),0):-1,i}};um.exports=al});var hm=q((_6,fm)=>{var LE=Ip(),PE=Tp(),DE=Lp(),NE=Dp(),{RateLimiterClusterMaster:kE,RateLimiterClusterMasterPM2:OE,RateLimiterCluster:ME}=Wp(),UE=el(),FE=Qp(),KE=jp(),qE=em(),VE=om(),$E=cm(),zE=ft(),HE=lm();fm.exports={RateLimiterRedis:LE,RateLimiterMongo:PE,RateLimiterMySQL:DE,RateLimiterPostgres:NE,RateLimiterMemory:UE,RateLimiterMemcache:FE,RateLimiterClusterMaster:kE,RateLimiterClusterMasterPM2:OE,RateLimiterCluster:ME,RLWrapperBlackAndWhite:KE,RateLimiterUnion:qE,RateLimiterQueue:VE,BurstyRateLimiter:$E,RateLimiterRes:zE,RateLimiterDynamo:HE}});var gv={};Me(gv,{createLibp2p:()=>yv});var q4=we(fi(),1),V4=we(jf(),1);var Jf=Symbol.for("@libp2p/connection");var Ea=Symbol.for("@libp2p/content-routing");var va=Symbol.for("@libp2p/peer-discovery");var _a=Symbol.for("@libp2p/peer-id");function bs(t){return t!=null&&!!t[_a]}var Sa=Symbol.for("@libp2p/peer-routing");var e0="keep-alive";var t0;(function(t){t.Accept="accept",t.Ignore="ignore",t.Reject="reject"})(t0||(t0={}));var jv=Symbol.for("@libp2p/transport");var gr;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(gr||(gr={}));var vn=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},S=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var ws="ERR_TIMEOUT",Aa="ERR_INVALID_PARAMETERS";var mi=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new Ca(e,r))}},Ia=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},Ca=globalThis.CustomEvent??Ia;var ht=(t,...e)=>{try{[...e]}catch{}};function r0(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var f2=we(fe(),1);function qr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}var Pa={};Me(Pa,{base10:()=>wx});var L_=new Uint8Array(0);function n0(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function Jt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function i0(t){return new TextEncoder().encode(t)}function s0(t){return new TextDecoder().decode(t)}function mx(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,A=new Uint8Array(b);g!==x;){for(var E=h[g],_=0,T=b-1;(E!==0||_<y)&&T!==-1;T--,_++)E+=256*A[T]>>>0,A[T]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=_,g++}for(var P=b-y;P!==b&&A[P]===0;)P++;for(var z=c.repeat(m);P<b;++P)z+=t.charAt(A[P]);return z}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var A=r[h.charCodeAt(m)];if(A===255)return;for(var E=0,_=x-1;(A!==0||E<g)&&_!==-1;_--,E++)A+=a*b[_]>>>0,b[_]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");g=E,m++}if(h[m]!==" "){for(var T=x-g;T!==x&&b[T]===0;)T++;for(var P=new Uint8Array(y+(x-T)),z=y;T!==x;)P[z++]=b[T++];return P}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var yx=mx,gx=yx,a0=gx;var Ra=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Ta=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return c0(this,e)}},Ba=class{decoders;constructor(e){this.decoders=e}or(e){return c0(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function c0(t,e){return new Ba({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var La=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ra(e,r,n),this.decoder=new Ta(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function _n({name:t,prefix:e,encode:r,decode:n}){return new La(t,e,r,n)}function xr({name:t,prefix:e,alphabet:r}){let{encode:n,decode:i}=a0(r,t);return _n({prefix:e,name:t,encode:n,decode:s=>Jt(i(s))})}function xx(t,e,r,n){let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function bx(t,e,r){let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o!==0&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s}function ve({name:t,prefix:e,bitsPerChar:r,alphabet:n}){return _n({prefix:e,name:t,encode(i){return bx(i,n,r)},decode(i){return xx(i,n,r,t)}})}var wx=xr({prefix:"9",name:"base10",alphabet:"0123456789"});var Da={};Me(Da,{base16:()=>Ex,base16upper:()=>vx});var Ex=ve({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),vx=ve({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Na={};Me(Na,{base2:()=>_x});var _x=ve({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ka={};Me(ka,{base256emoji:()=>Rx});var u0=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}"),Sx=u0.reduce((t,e,r)=>(t[r]=e,t),[]),Ax=u0.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function Ix(t){return t.reduce((e,r)=>(e+=Sx[r],e),"")}function Cx(t){let e=[];for(let r of t){let n=Ax[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Rx=_n({prefix:"\u{1F680}",name:"base256emoji",encode:Ix,decode:Cx});var Oa={};Me(Oa,{base32:()=>dt,base32hex:()=>Px,base32hexpad:()=>Nx,base32hexpadupper:()=>kx,base32hexupper:()=>Dx,base32pad:()=>Bx,base32padupper:()=>Lx,base32upper:()=>Tx,base32z:()=>Ox});var dt=ve({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Tx=ve({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Bx=ve({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Lx=ve({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Px=ve({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Dx=ve({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Nx=ve({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),kx=ve({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ox=ve({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ma={};Me(Ma,{base36:()=>Mx,base36upper:()=>Ux});var Mx=xr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ux=xr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ua={};Me(Ua,{base58btc:()=>Ae,base58flickr:()=>Fx});var Ae=xr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Fx=xr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Fa={};Me(Fa,{base64:()=>Sn,base64pad:()=>Kx,base64url:()=>qx,base64urlpad:()=>Vx});var Sn=ve({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Kx=ve({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),qx=ve({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Vx=ve({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ka={};Me(Ka,{base8:()=>$x});var $x=ve({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qa={};Me(qa,{identity:()=>zx});var zx=_n({prefix:"\0",name:"identity",encode:t=>s0(t),decode:t=>i0(t)});var W_=new TextEncoder,Y_=new TextDecoder;var $a={};Me($a,{identity:()=>br});var Wx=h0,l0=128,Yx=127,Qx=~Yx,Xx=Math.pow(2,31);function h0(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Xx;)e[r++]=t&255|l0,t/=128;for(;t&Qx;)e[r++]=t&255|l0,t>>>=7;return e[r]=t|0,h0.bytes=r-n+1,e}var Zx=Va,jx=128,f0=127;function Va(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Va.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&f0)<<i:(o&f0)*Math.pow(2,i),i+=7}while(o>=jx);return Va.bytes=s-n,r}var Jx=Math.pow(2,7),e1=Math.pow(2,14),t1=Math.pow(2,21),r1=Math.pow(2,28),n1=Math.pow(2,35),i1=Math.pow(2,42),s1=Math.pow(2,49),o1=Math.pow(2,56),a1=Math.pow(2,63),c1=function(t){return t<Jx?1:t<e1?2:t<t1?3:t<r1?4:t<n1?5:t<i1?6:t<s1?7:t<o1?8:t<a1?9:10},u1={encode:Wx,decode:Zx,encodingLength:c1},l1=u1,yi=l1;function gi(t,e=0){return[yi.decode(t,e),yi.decode.bytes]}function An(t,e,r=0){return yi.encode(t,e,r),e}function In(t){return yi.encodingLength(t)}function $t(t,e){let r=e.byteLength,n=In(t),i=n+In(r),s=new Uint8Array(i+r);return An(t,s,0),An(r,s,n),s.set(e,i),new Cn(t,r,e,s)}function Vr(t){let e=Jt(t),[r,n]=gi(e),[i,s]=gi(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Cn(r,i,o,e)}function d0(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&n0(t.bytes,r.bytes)}}var Cn=class{code;size;digest;bytes;constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var p0=0,f1="identity",m0=Jt;function h1(t){return $t(p0,m0(t))}var br={code:p0,name:f1,encode:m0,digest:h1};var Ga={};Me(Ga,{sha256:()=>Ge,sha512:()=>d1});function Ha({name:t,code:e,encode:r}){return new za(t,e,r)}var za=class{name;code;encode;constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?$t(this.code,r):r.then(n=>$t(this.code,n))}else throw Error("Unknown type, must be binary type")}};function g0(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var Ge=Ha({name:"sha2-256",code:18,encode:g0("SHA-256")}),d1=Ha({name:"sha2-512",code:19,encode:g0("SHA-512")});function x0(t,e){let{bytes:r,version:n}=t;switch(n){case 0:return m1(r,Wa(t),e??Ae.encoder);default:return y1(r,Wa(t),e??dt.encoder)}}var b0=new WeakMap;function Wa(t){let e=b0.get(t);if(e==null){let r=new Map;return b0.set(t,r),r}return e}var Ct=class t{code;version;multihash;bytes;"/";constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==xi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==g1)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:r}=this.multihash,n=$t(e,r);return t.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&d0(e.multihash,n.multihash)}toString(e){return x0(this,e)}toJSON(){return{"/":x0(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new t(n,i,s,o??w0(n,i,s.bytes))}else if(r[x1]===!0){let{version:n,multihash:i,code:s}=r,o=Vr(i);return t.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==xi)throw new Error(`Version 0 CID must use dag-pb (code: ${xi}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let i=w0(e,r,n.bytes);return new t(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,xi,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,i=Jt(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new Cn(r.multihashCode,r.digestSize,s,i);return[r.version===0?t.createV0(o):t.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,d]=gi(e.subarray(r));return r+=d,f},i=n(),s=xi;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=p1(e,r),s=t.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Wa(s).set(n,e),s}};function p1(t,e){switch(t[0]){case"Q":{let r=e??Ae;return[Ae.prefix,r.decode(`${Ae.prefix}${t}`)]}case Ae.prefix:{let r=e??Ae;return[Ae.prefix,r.decode(t)]}case dt.prefix:{let r=e??dt;return[dt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function m1(t,e,r){let{prefix:n}=r;if(n!==Ae.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i}function y1(t,e,r){let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i}var xi=112,g1=18;function w0(t,e,r){let n=In(t),i=n+In(e),s=new Uint8Array(i+r.byteLength);return An(t,s,0),An(e,s,n),s.set(r,i),s}var x1=Symbol.for("@ipld/js-cid/CID");var wr={...qa,...Na,...Ka,...Pa,...Da,...Oa,...Ma,...Ua,...Fa,...ka},mS={...Ga,...$a};function Rt(t=0){return globalThis.Buffer?.allocUnsafe!=null?qr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function v0(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var E0=v0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Ya=v0("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Rt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),b1={utf8:E0,"utf-8":E0,hex:wr.base16,latin1:Ya,ascii:Ya,binary:Ya,...wr},vs=b1;function Y(t,e="utf8"){let r=vs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?qr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Ic={};Me(Ic,{Ed25519PrivateKey:()=>Qr,Ed25519PublicKey:()=>Ai,generateKeyPair:()=>kb,generateKeyPairFromSeed:()=>ih,unmarshalEd25519PrivateKey:()=>Db,unmarshalEd25519PublicKey:()=>Nb});function Ie(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var LS=we(Be(),1),PS=we(ms(),1),_0=we(fe(),1);function qe(t,e){if(globalThis.Buffer!=null)return qr(globalThis.Buffer.concat(t,e));e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Rt(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return qr(r)}function ie(t,e="utf8"){let r=vs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function Tt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=qe([new Uint8Array(e-r.length),r])}return ie(r,"base64url")}function pt(t){let e=S0(t);return new _0.default.jsbn.BigInteger(ie(e,"base16"),16)}function S0(t,e){let r=Y(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=qe([new Uint8Array(e-r.length),r])}return r}function wt(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}function A0(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function w1(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}function Qa(t,...e){if(!w1(t))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function I0(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");A0(t.outputLen),A0(t.blockLen)}function Rn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function C0(t,e){Qa(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var _s=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function R0(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var Ss=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Bt=(t,e)=>t<<32-e|t>>>e,E1=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!E1)throw new Error("Non little-endian hardware is not supported");function Xa(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function bi(t){if(typeof t=="string"&&(t=Xa(t)),!R0(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}function As(...t){let e=0;for(let n=0;n<t.length;n++){let i=t[n];if(!R0(i))throw new Error("Uint8Array expected");e+=i.length}let r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var Tn=class{clone(){return this._cloneInto()}},KS={}.toString;function Is(t){let e=n=>t().update(bi(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function Bn(t=32){if(_s&&typeof _s.getRandomValues=="function")return _s.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function v1(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}var Ln=class extends Tn{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ss(this.buffer)}update(e){Rn(this);let{view:r,buffer:n,blockLen:i}=this;e=bi(e);let s=e.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=Ss(e);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Rn(this),C0(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;v1(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=Ss(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%r&&e.buffer.set(n),e}};var Cs=BigInt(4294967295),Za=BigInt(32);function T0(t,e=!1){return e?{h:Number(t&Cs),l:Number(t>>Za&Cs)}:{h:Number(t>>Za&Cs)|0,l:Number(t&Cs)|0}}function _1(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){let{h:s,l:o}=T0(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}var S1=(t,e)=>BigInt(t>>>0)<<Za|BigInt(e>>>0),A1=(t,e,r)=>t>>>r,I1=(t,e,r)=>t<<32-r|e>>>r,C1=(t,e,r)=>t>>>r|e<<32-r,R1=(t,e,r)=>t<<32-r|e>>>r,T1=(t,e,r)=>t<<64-r|e>>>r-32,B1=(t,e,r)=>t>>>r-32|e<<64-r,L1=(t,e)=>e,P1=(t,e)=>t,D1=(t,e,r)=>t<<r|e>>>32-r,N1=(t,e,r)=>e<<r|t>>>32-r,k1=(t,e,r)=>e<<r-32|t>>>64-r,O1=(t,e,r)=>t<<r-32|e>>>64-r;function M1(t,e,r,n){let i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:i|0}}var U1=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),F1=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,K1=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),q1=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,V1=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0),$1=(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0;var z1={fromBig:T0,split:_1,toBig:S1,shrSH:A1,shrSL:I1,rotrSH:C1,rotrSL:R1,rotrBH:T1,rotrBL:B1,rotr32H:L1,rotr32L:P1,rotlSH:D1,rotlSL:N1,rotlBH:k1,rotlBL:O1,add:M1,add3L:U1,add3H:F1,add4L:K1,add4H:q1,add5H:$1,add5L:V1},X=z1;var[H1,G1]=X.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(t=>BigInt(t))),Er=new Uint32Array(80),vr=new Uint32Array(80),ja=class extends Ln{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:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:p,Gl:h,Hh:m,Hl:y}=this;return[e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y]}set(e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=m|0,this.Hl=y|0}process(e,r){for(let b=0;b<16;b++,r+=4)Er[b]=e.getUint32(r),vr[b]=e.getUint32(r+=4);for(let b=16;b<80;b++){let A=Er[b-15]|0,E=vr[b-15]|0,_=X.rotrSH(A,E,1)^X.rotrSH(A,E,8)^X.shrSH(A,E,7),T=X.rotrSL(A,E,1)^X.rotrSL(A,E,8)^X.shrSL(A,E,7),P=Er[b-2]|0,z=vr[b-2]|0,G=X.rotrSH(P,z,19)^X.rotrBH(P,z,61)^X.shrSH(P,z,6),$=X.rotrSL(P,z,19)^X.rotrBL(P,z,61)^X.shrSL(P,z,6),J=X.add4L(T,$,vr[b-7],vr[b-16]),le=X.add4H(J,_,G,Er[b-7],Er[b-16]);Er[b]=le|0,vr[b]=J|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:p,Fl:h,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let A=X.rotrSH(f,d,14)^X.rotrSH(f,d,18)^X.rotrBH(f,d,41),E=X.rotrSL(f,d,14)^X.rotrSL(f,d,18)^X.rotrBL(f,d,41),_=f&p^~f&m,T=d&h^~d&y,P=X.add5L(x,E,T,G1[b],vr[b]),z=X.add5H(P,g,A,_,H1[b],Er[b]),G=P|0,$=X.rotrSH(n,i,28)^X.rotrBH(n,i,34)^X.rotrBH(n,i,39),J=X.rotrSL(n,i,28)^X.rotrBL(n,i,34)^X.rotrBL(n,i,39),le=n&s^n&a^s&a,$e=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=h|0,p=f|0,h=d|0,{h:f,l:d}=X.add(u|0,l|0,z|0,G|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let B=X.add3L(G,J,$e);n=X.add3H(B,z,$,le),i=B|0}({h:n,l:i}=X.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=X.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=X.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=X.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=X.add(this.Eh|0,this.El|0,f|0,d|0),{h:p,l:h}=X.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:m,l:y}=X.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=X.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x)}roundClean(){Er.fill(0),vr.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 Ja=Is(()=>new ja);var Ts={};Me(Ts,{bitGet:()=>J1,bitLen:()=>j1,bitMask:()=>wi,bitSet:()=>eb,bytesToHex:()=>tr,bytesToNumberBE:()=>rr,bytesToNumberLE:()=>_r,concatBytes:()=>nr,createHmacDrbg:()=>rc,ensureBytes:()=>_e,equalBytes:()=>X1,hexToBytes:()=>zr,hexToNumber:()=>tc,isBytes:()=>Lt,numberToBytesBE:()=>Sr,numberToBytesLE:()=>Hr,numberToHexUnpadded:()=>D0,numberToVarBytesBE:()=>Q1,utf8ToBytes:()=>Z1,validateObject:()=>zt});var P0=BigInt(0),Rs=BigInt(1),W1=BigInt(2);function Lt(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var Y1=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function tr(t){if(!Lt(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=Y1[t[r]];return e}function D0(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function tc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return BigInt(t===""?"0":`0x${t}`)}var er={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function B0(t){if(t>=er._0&&t<=er._9)return t-er._0;if(t>=er._A&&t<=er._F)return t-(er._A-10);if(t>=er._a&&t<=er._f)return t-(er._a-10)}function zr(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);let e=t.length,r=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let i=0,s=0;i<r;i++,s+=2){let o=B0(t.charCodeAt(s)),a=B0(t.charCodeAt(s+1));if(o===void 0||a===void 0){let c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[i]=o*16+a}return n}function rr(t){return tc(tr(t))}function _r(t){if(!Lt(t))throw new Error("Uint8Array expected");return tc(tr(Uint8Array.from(t).reverse()))}function Sr(t,e){return zr(t.toString(16).padStart(e*2,"0"))}function Hr(t,e){return Sr(t,e).reverse()}function Q1(t){return zr(D0(t))}function _e(t,e,r){let n;if(typeof e=="string")try{n=zr(e)}catch(s){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Lt(e))n=Uint8Array.from(e);else throw new Error(`${t} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function nr(...t){let e=0;for(let i=0;i<t.length;i++){let s=t[i];if(!Lt(s))throw new Error("Uint8Array expected");e+=s.length}let r=new Uint8Array(e),n=0;for(let i=0;i<t.length;i++){let s=t[i];r.set(s,n),n+=s.length}return r}function X1(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function Z1(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function j1(t){let e;for(e=0;t>P0;t>>=Rs,e+=1);return e}function J1(t,e){return t>>BigInt(e)&Rs}var eb=(t,e,r)=>t|(r?Rs:P0)<<BigInt(e),wi=t=>(W1<<BigInt(t-1))-Rs,ec=t=>new Uint8Array(t),L0=t=>Uint8Array.from(t);function rc(t,e,r){if(typeof t!="number"||t<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 r!="function")throw new Error("hmacFn must be a function");let n=ec(t),i=ec(t),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=ec())=>{i=a(L0([0]),f),n=a(),f.length!==0&&(i=a(L0([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,d=[];for(;f<e;){n=a();let p=n.slice();d.push(p),f+=n.length}return nr(...d)};return(f,d)=>{o(),c(f);let p;for(;!(p=d(u()));)c();return o(),p}}var tb={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||Lt(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function zt(t,e,r={}){let n=(i,s,o)=>{let a=tb[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(e))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return t}var Ne=BigInt(0),ge=BigInt(1),Gr=BigInt(2),rb=BigInt(3),nc=BigInt(4),N0=BigInt(5),k0=BigInt(8),nb=BigInt(9),ib=BigInt(16);function he(t,e){let r=t%e;return r>=Ne?r:e+r}function sb(t,e,r){if(r<=Ne||e<Ne)throw new Error("Expected power/modulo > 0");if(r===ge)return Ne;let n=ge;for(;e>Ne;)e&ge&&(n=n*t%r),t=t*t%r,e>>=ge;return n}function xe(t,e,r){let n=t;for(;e-- >Ne;)n*=n,n%=r;return n}function Bs(t,e){if(t===Ne||e<=Ne)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=he(t,e),n=e,i=Ne,s=ge,o=ge,a=Ne;for(;r!==Ne;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==ge)throw new Error("invert: does not exist");return he(i,e)}function ob(t){let e=(t-ge)/Gr,r,n,i;for(r=t-ge,n=0;r%Gr===Ne;r/=Gr,n++);for(i=Gr;i<t&&sb(i,e,t)!==t-ge;i++);if(n===1){let o=(t+ge)/nc;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+ge)/Gr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),d=a.pow(c,r);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(d);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let h=a.pow(l,ge<<BigInt(u-p-1));l=a.sqr(h),f=a.mul(f,h),d=a.mul(d,l),u=p}return f}}function ab(t){if(t%nc===rb){let e=(t+ge)/nc;return function(n,i){let s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(t%k0===N0){let e=(t-N0)/k0;return function(n,i){let s=n.mul(i,Gr),o=n.pow(s,e),a=n.mul(i,o),c=n.mul(n.mul(a,Gr),o),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return t%ib,ob(t)}var O0=(t,e)=>(he(t,e)&ge)===ge,cb=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ic(t){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=cb.reduce((n,i)=>(n[i]="function",n),e);return zt(t,r)}function ub(t,e,r){if(r<Ne)throw new Error("Expected power > 0");if(r===Ne)return t.ONE;if(r===ge)return e;let n=t.ONE,i=e;for(;r>Ne;)r&ge&&(n=t.mul(n,i)),i=t.sqr(i),r>>=ge;return n}function lb(t,e){let r=new Array(e.length),n=e.reduce((s,o,a)=>t.is0(o)?s:(r[a]=s,t.mul(s,o)),t.ONE),i=t.inv(n);return e.reduceRight((s,o,a)=>t.is0(o)?s:(r[a]=t.mul(s,r[a]),t.mul(s,o)),i),r}function sc(t,e){let r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Ls(t,e,r=!1,n={}){if(t<=Ne)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:i,nByteLength:s}=sc(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=ab(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:wi(i),ZERO:Ne,ONE:ge,create:c=>he(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Ne<=c&&c<t},is0:c=>c===Ne,isOdd:c=>(c&ge)===ge,neg:c=>he(-c,t),eql:(c,u)=>c===u,sqr:c=>he(c*c,t),add:(c,u)=>he(c+u,t),sub:(c,u)=>he(c-u,t),mul:(c,u)=>he(c*u,t),pow:(c,u)=>ub(a,c,u),div:(c,u)=>he(c*Bs(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Bs(c,t),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>lb(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?Hr(c,s):Sr(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?_r(c):rr(c)}});return Object.freeze(a)}function M0(t,e){if(!t.isOdd)throw new Error("Field doesn't have isOdd");let r=t.sqrt(e);return t.isOdd(r)?t.neg(r):r}function U0(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function oc(t){let e=U0(t);return e+Math.ceil(e/2)}function F0(t,e,r=!1){let n=t.length,i=U0(e),s=oc(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?rr(t):_r(t),a=he(o,e-ge)+ge;return r?Hr(a,i):Sr(a,i)}var hb=BigInt(0),ac=BigInt(1);function Ps(t,e){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=t.ZERO,a=i;for(;s>hb;)s&ac&&(o=o.add(a)),a=a.double(),s>>=ac;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let d=1;d<a;d++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=t.ZERO,l=t.BASE,f=BigInt(2**i-1),d=2**i,p=BigInt(i);for(let h=0;h<a;h++){let m=h*c,y=Number(o&f);o>>=p,y>c&&(y-=d,o+=ac);let g=m,x=m+Math.abs(y)-1,b=h%2!==0,A=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(A,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function Ei(t){return ic(t.Fp),zt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...sc(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var Pt=BigInt(0),mt=BigInt(1),Ds=BigInt(2),db=BigInt(8),pb={zip215:!0};function mb(t){let e=Ei(t);return zt(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Ns(t){let e=mb(t),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=Ds<<BigInt(a*8)-mt,l=r.create,f=e.uvRatio||((N,C)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(C))}}catch{return{isValid:!1,value:Pt}}}),d=e.adjustScalarBytes||(N=>N),p=e.domain||((N,C,U)=>{if(C.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),h=N=>typeof N=="bigint"&&Pt<N,m=(N,C)=>h(N)&&h(C)&&N<C,y=N=>N===Pt||m(N,u);function g(N,C){if(m(N,C))return N;throw new Error(`Expected valid scalar < ${C}, got ${typeof N} ${N}`)}function x(N){return N===Pt?N:g(N,n)}let b=new Map;function A(N){if(!(N instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(C,U,K,H){if(this.ex=C,this.ey=U,this.ez=K,this.et=H,!y(C))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(K))throw new Error("z required");if(!y(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(C){if(C instanceof E)throw new Error("extended point not allowed");let{x:U,y:K}=C||{};if(!y(U)||!y(K))throw new Error("invalid affine point");return new E(U,K,mt,l(U*K))}static normalizeZ(C){let U=r.invertBatch(C.map(K=>K.ez));return C.map((K,H)=>K.toAffine(U[H])).map(E.fromAffine)}_setWindowSize(C){this._WINDOW_SIZE=C,b.delete(this)}assertValidity(){let{a:C,d:U}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:K,ey:H,ez:Z,et:ee}=this,ce=l(K*K),te=l(H*H),se=l(Z*Z),Te=l(se*se),Ee=l(ce*C),ze=l(se*l(Ee+te)),He=l(Te+l(U*l(ce*te)));if(ze!==He)throw new Error("bad point: equation left != right (1)");let De=l(K*H),je=l(Z*ee);if(De!==je)throw new Error("bad point: equation left != right (2)")}equals(C){A(C);let{ex:U,ey:K,ez:H}=this,{ex:Z,ey:ee,ez:ce}=C,te=l(U*ce),se=l(Z*H),Te=l(K*ce),Ee=l(ee*H);return te===se&&Te===Ee}is0(){return this.equals(E.ZERO)}negate(){return new E(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:C}=e,{ex:U,ey:K,ez:H}=this,Z=l(U*U),ee=l(K*K),ce=l(Ds*l(H*H)),te=l(C*Z),se=U+K,Te=l(l(se*se)-Z-ee),Ee=te+ee,ze=Ee-ce,He=te-ee,De=l(Te*ze),je=l(Ee*He),Qt=l(Te*He),kr=l(ze*Ee);return new E(De,je,kr,Qt)}add(C){A(C);let{a:U,d:K}=e,{ex:H,ey:Z,ez:ee,et:ce}=this,{ex:te,ey:se,ez:Te,et:Ee}=C;if(U===BigInt(-1)){let Rl=l((Z-H)*(se+te)),Tl=l((Z+H)*(se-te)),jo=l(Tl-Rl);if(jo===Pt)return this.double();let Bl=l(ee*Ds*Ee),Ll=l(ce*Ds*Te),Pl=Ll+Bl,Dl=Tl+Rl,Nl=Ll-Bl,km=l(Pl*jo),Om=l(Dl*Nl),Mm=l(Pl*Nl),Um=l(jo*Dl);return new E(km,Om,Um,Mm)}let ze=l(H*te),He=l(Z*se),De=l(ce*K*Ee),je=l(ee*Te),Qt=l((H+Z)*(te+se)-ze-He),kr=je-De,ai=je+De,Cl=l(He-U*ze),Lm=l(Qt*kr),Pm=l(ai*Cl),Dm=l(Qt*Cl),Nm=l(kr*ai);return new E(Lm,Pm,Nm,Dm)}subtract(C){return this.add(C.negate())}wNAF(C){return P.wNAFCached(this,b,C,E.normalizeZ)}multiply(C){let{p:U,f:K}=this.wNAF(g(C,n));return E.normalizeZ([U,K])[0]}multiplyUnsafe(C){let U=x(C);return U===Pt?T:this.equals(T)||U===mt?this:this.equals(_)?this.wNAF(U).p:P.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return P.unsafeLadder(this,n).is0()}toAffine(C){let{ex:U,ey:K,ez:H}=this,Z=this.is0();C==null&&(C=Z?db:r.inv(H));let ee=l(U*C),ce=l(K*C),te=l(H*C);if(Z)return{x:Pt,y:mt};if(te!==mt)throw new Error("invZ was invalid");return{x:ee,y:ce}}clearCofactor(){let{h:C}=e;return C===mt?this:this.multiplyUnsafe(C)}static fromHex(C,U=!1){let{d:K,a:H}=e,Z=r.BYTES;C=_e("pointHex",C,Z);let ee=C.slice(),ce=C[Z-1];ee[Z-1]=ce&-129;let te=_r(ee);te===Pt||(U?g(te,u):g(te,r.ORDER));let se=l(te*te),Te=l(se-mt),Ee=l(K*se-H),{isValid:ze,value:He}=f(Te,Ee);if(!ze)throw new Error("Point.fromHex: invalid y coordinate");let De=(He&mt)===mt,je=(ce&128)!==0;if(!U&&He===Pt&&je)throw new Error("Point.fromHex: x=0 and x_0=1");return je!==De&&(He=l(-He)),E.fromAffine({x:He,y:te})}static fromPrivateKey(C){return $(C).point}toRawBytes(){let{x:C,y:U}=this.toAffine(),K=Hr(U,r.BYTES);return K[K.length-1]|=C&mt?128:0,K}toHex(){return tr(this.toRawBytes())}}E.BASE=new E(e.Gx,e.Gy,mt,l(e.Gx*e.Gy)),E.ZERO=new E(Pt,mt,mt,Pt);let{BASE:_,ZERO:T}=E,P=Ps(E,a*8);function z(N){return he(N,n)}function G(N){return z(_r(N))}function $(N){let C=a;N=_e("private key",N,C);let U=_e("hashed private key",s(N),2*C),K=d(U.slice(0,C)),H=U.slice(C,2*C),Z=G(K),ee=_.multiply(Z),ce=ee.toRawBytes();return{head:K,prefix:H,scalar:Z,point:ee,pointBytes:ce}}function J(N){return $(N).pointBytes}function le(N=new Uint8Array,...C){let U=nr(...C);return G(s(p(U,_e("context",N),!!i)))}function $e(N,C,U={}){N=_e("message",N),i&&(N=i(N));let{prefix:K,scalar:H,pointBytes:Z}=$(C),ee=le(U.context,K,N),ce=_.multiply(ee).toRawBytes(),te=le(U.context,ce,Z,N),se=z(ee+te*H);x(se);let Te=nr(ce,Hr(se,r.BYTES));return _e("result",Te,a*2)}let B=pb;function k(N,C,U,K=B){let{context:H,zip215:Z}=K,ee=r.BYTES;N=_e("signature",N,2*ee),C=_e("message",C),i&&(C=i(C));let ce=_r(N.slice(ee,2*ee)),te,se,Te;try{te=E.fromHex(U,Z),se=E.fromHex(N.slice(0,ee),Z),Te=_.multiplyUnsafe(ce)}catch{return!1}if(!Z&&te.isSmallOrder())return!1;let Ee=le(H,se.toRawBytes(),te.toRawBytes(),C);return se.add(te.multiplyUnsafe(Ee)).subtract(Te).clearCofactor().equals(E.ZERO)}return _._setWindowSize(8),{CURVE:e,getPublicKey:J,sign:$e,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:$,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,C=E.BASE){return C._setWindowSize(N),C.multiply(BigInt(3)),C}}}}var uc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),K0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),cA=BigInt(0),yb=BigInt(1),cc=BigInt(2),gb=BigInt(5),q0=BigInt(10),xb=BigInt(20),bb=BigInt(40),V0=BigInt(80);function wb(t){let e=uc,n=t*t%e*t%e,i=xe(n,cc,e)*n%e,s=xe(i,yb,e)*t%e,o=xe(s,gb,e)*s%e,a=xe(o,q0,e)*o%e,c=xe(a,xb,e)*a%e,u=xe(c,bb,e)*c%e,l=xe(u,V0,e)*u%e,f=xe(l,V0,e)*u%e,d=xe(f,q0,e)*o%e;return{pow_p_5_8:xe(d,cc,e)*t%e,b2:n}}function Eb(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function vb(t,e){let r=uc,n=he(e*e*e,r),i=he(n*n*e,r),s=wb(t*i).pow_p_5_8,o=he(t*n*s,r),a=he(e*o*o,r),c=o,u=he(o*K0,r),l=a===t,f=a===he(-t,r),d=a===he(-t*K0,r);return l&&(o=c),(f||d)&&(o=u),O0(o,r)&&(o=he(-o,r)),{isValid:l||f,value:o}}var ir=Ls(uc,void 0,!0),lc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ir,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ja,randomBytes:Bn,adjustScalarBytes:Eb,uvRatio:vb},Pn=Ns(lc);function $0(t,e,r){if(e.length>255)throw new Error("Context is too big");return As(Xa("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,e.length]),e,t)}var uA=Ns({...lc,domain:$0}),lA=Ns({...lc,domain:$0,prehash:Ja});var _b=(ir.ORDER+BigInt(3))/BigInt(8),fA=ir.pow(cc,_b),hA=ir.sqrt(ir.neg(ir.ONE)),dA=(ir.ORDER-BigInt(5))/BigInt(8),pA=BigInt(486662);var mA=M0(ir,ir.neg(BigInt(486664)));var yA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),gA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),xA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),bA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var wA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Dn=32,sr=64,ks=32;function z0(){let t=Pn.utils.randomPrivateKey(),e=Pn.getPublicKey(t);return{privateKey:Y0(t,e),publicKey:e}}function H0(t){if(t.length!==ks)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=Pn.getPublicKey(e);return{privateKey:Y0(e,r),publicKey:r}}function G0(t,e){let r=t.subarray(0,ks);return Pn.sign(e instanceof Uint8Array?e:e.subarray(),r)}function W0(t,e,r){return Pn.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}function Y0(t,e){let r=new Uint8Array(sr);for(let n=0;n<ks;n++)r[n]=t[n],r[ks+n]=e[n];return r}var ct={get(t=globalThis){let e=t.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var fc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function hc(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=ct.get();r*=8;async function c(f,d){let p=a.getRandomValues(new Uint8Array(s)),h=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:h};typeof d=="string"&&(d=Y(d));let y;if(d.length===0){y=await a.subtle.importKey("jwk",fc,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",fc,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return qe([p,m.iv,new Uint8Array(g)])}async function u(f,d){let p=f.subarray(0,s),h=f.subarray(s,s+n),m=f.subarray(s+n),y={name:e,iv:h};typeof d=="string"&&(d=Y(d));let g;if(d.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},A=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,A,{name:e,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",fc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},A=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,A,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Nn(t,e){let n=await hc().encrypt(t,e);return Sn.encode(n)}var dc=new Float32Array([-0]),Ar=new Uint8Array(dc.buffer);function X0(t,e,r){dc[0]=t,e[r]=Ar[0],e[r+1]=Ar[1],e[r+2]=Ar[2],e[r+3]=Ar[3]}function Z0(t,e){return Ar[0]=t[e],Ar[1]=t[e+1],Ar[2]=t[e+2],Ar[3]=t[e+3],dc[0]}var pc=new Float64Array([-0]),Je=new Uint8Array(pc.buffer);function j0(t,e,r){pc[0]=t,e[r]=Je[0],e[r+1]=Je[1],e[r+2]=Je[2],e[r+3]=Je[3],e[r+4]=Je[4],e[r+5]=Je[5],e[r+6]=Je[6],e[r+7]=Je[7]}function J0(t,e){return Je[0]=t[e],Je[1]=t[e+1],Je[2]=t[e+2],Je[3]=t[e+3],Je[4]=t[e+4],Je[5]=t[e+5],Je[6]=t[e+6],Je[7]=t[e+7],pc[0]}var Ab=BigInt(Number.MAX_SAFE_INTEGER),Ib=BigInt(Number.MIN_SAFE_INTEGER),ut=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return Wr;if(e<Ab&&e>Ib)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,i=e-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>eh&&(i=0n,++n>eh&&(n=0n))),new t(Number(i),Number(n))}static fromNumber(e){if(e===0)return Wr;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new t(n,i)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):Wr}},Wr=new ut(0,0);Wr.toBigInt=function(){return 0n};Wr.zzEncode=Wr.zzDecode=function(){return this};Wr.length=function(){return 1};var eh=4294967296n;function th(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function rh(t,e,r){if(r-e<1)return"";let i,s=[],o=0,a;for(;e<r;)a=t[e++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function mc(t,e,r){let n=r,i,s;for(let o=0;o<t.length;++o)i=t.charCodeAt(o),i<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=i&63|128):(i&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=i&63|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=i&63|128);return r-n}function Dt(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Os(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var yc=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,Dt(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 Dt(this,4);return Os(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Dt(this,4);return Os(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Dt(this,4);let e=Z0(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Dt(this,4);let e=J0(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Dt(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return rh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Dt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Dt(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 ut(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Dt(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Dt(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Dt(this,8);let e=Os(this.buf,this.pos+=4),r=Os(this.buf,this.pos+=4);return new ut(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}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 gc(t){return new yc(t instanceof Uint8Array?t:t.subarray())}function We(t,e){let r=gc(t);return e.decode(r)}function xc(t){let e=t??8192,r=e>>>1,n,i=e;return function(o){if(o<1||o>r)return Rt(o);i+o>e&&(n=Rt(e),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var Yr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function bc(){}var Ec=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Cb=xc();function Rb(t){return globalThis.Buffer!=null?Rt(t):Cb(t)}var Si=class{len;head;tail;states;constructor(){this.len=0,this.head=new Yr(bc,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new Yr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new vc((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(vi,10,ut.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=ut.fromBigInt(e);return this._push(vi,r.length(),r)}uint64Number(e){let r=ut.fromNumber(e);return this._push(vi,r.length(),r)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=ut.fromBigInt(e).zzEncode();return this._push(vi,r.length(),r)}sint64Number(e){let r=ut.fromNumber(e).zzEncode();return this._push(vi,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(wc,1,e?1:0)}fixed32(e){return this._push(_i,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=ut.fromBigInt(e);return this._push(_i,4,r.lo)._push(_i,4,r.hi)}fixed64Number(e){let r=ut.fromNumber(e);return this._push(_i,4,r.lo)._push(_i,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(X0,4,e)}double(e){return this._push(j0,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(wc,1,0):this.uint32(r)._push(Bb,r,e)}string(e){let r=th(e);return r!==0?this.uint32(r)._push(mc,r,e):this._push(wc,1,0)}fork(){return this.states=new Ec(this),this.head=this.tail=new Yr(bc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Yr(bc,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=Rb(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function wc(t,e,r){e[r]=t&255}function Tb(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var vc=class extends Yr{next;constructor(e,r){super(Tb,e,r),this.next=void 0}};function vi(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function _i(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function Bb(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(Si.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(Lb,e,t),this},Si.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(Pb,e,t),this});function Lb(t,e,r){e.set(t,r)}function Pb(t,e,r){t.length<40?mc(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(Y(t),r)}function _c(){return new Si}function Ye(t,e){let r=_c();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var kn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(kn||(kn={}));function Ms(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Sc(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return Ms("enum",kn.VARINT,r,n)}function Qe(t,e){return Ms("message",kn.LENGTH_DELIMITED,t,e)}var be;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(be||(be={}));var Ac;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(Ac||(Ac={}));(function(t){t.codec=()=>Sc(Ac)})(be||(be={}));var Ht;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Ht||(Ht={}));var Gt;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Gt||(Gt={}));var Ai=class{_key;constructor(e){this._key=On(e,Dn)}verify(e,r){return W0(this._key,r,e)}marshal(){return this._key}get bytes(){return Ht.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ie(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return wt(e)?e.then(({bytes:r})=>r):e.bytes}},Qr=class{_key;_publicKey;constructor(e,r){this._key=On(e,sr),this._publicKey=On(r,Dn)}sign(e){return G0(this._key,e)}get public(){return new Ai(this._publicKey)}marshal(){return this._key}get bytes(){return Gt.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ie(this.bytes,e.bytes)}async hash(){let e=Ge.digest(this.bytes),r;return wt(e)?{bytes:r}=await e:r=e.bytes,r}async id(){let e=br.digest(this.public.bytes);return Ae.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Db(t){if(t.length>sr){t=On(t,sr+Dn);let n=t.subarray(0,sr),i=t.subarray(sr,t.length);return new Qr(n,i)}t=On(t,sr);let e=t.subarray(0,sr),r=t.subarray(Dn);return new Qr(e,r)}function Nb(t){return t=On(t,Dn),new Ai(t)}async function kb(){let{privateKey:t,publicKey:e}=z0();return new Qr(t,e)}async function ih(t){let{privateKey:e,publicKey:r}=H0(t);return new Qr(e,r)}function On(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new S(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var Ob={"P-256":256,"P-384":384,"P-521":521},Mb=Object.keys(Ob),xI=Mb.join(" / ");var Lc={};Me(Lc,{MAX_KEY_SIZE:()=>Ti,RsaPrivateKey:()=>Mn,RsaPublicKey:()=>Ri,fromJwk:()=>Yb,generateKeyPair:()=>Qb,unmarshalRsaPrivateKey:()=>Gb,unmarshalRsaPublicKey:()=>Wb});var Ci=we(fe(),1);var r4=we(uh(),1);function Fs(t){if(isNaN(t)||t<=0)throw new S("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Bn(t)}var UI=we(xs(),1),Tc=we(fe(),1);function lh(t,e){return e.map(r=>pt(t[r]))}function fh(t){return Tc.default.pki.setRsaPrivateKey(...lh(t,["n","e","d","p","q","dp","dq","qi"]))}function hh(t){return Tc.default.pki.setRsaPublicKey(...lh(t,["n","e"]))}var Zr={};Me(Zr,{jwkToPkcs1:()=>qb,jwkToPkix:()=>$b,pkcs1ToJwk:()=>Kb,pkixToJwk:()=>Vb});var qI=we(fi(),1),VI=we(xs(),1);var or=we(fe(),1);function Kb(t){let e=or.default.asn1.fromDer(ie(t,"ascii")),r=or.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Tt(r.n),e:Tt(r.e),d:Tt(r.d),p:Tt(r.p),q:Tt(r.q),dp:Tt(r.dP),dq:Tt(r.dQ),qi:Tt(r.qInv),alg:"RS256"}}function qb(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=or.default.pki.privateKeyToAsn1({n:pt(t.n),e:pt(t.e),d:pt(t.d),p:pt(t.p),q:pt(t.q),dP:pt(t.dp),dQ:pt(t.dq),qInv:pt(t.qi)});return Y(or.default.asn1.toDer(e).getBytes(),"ascii")}function Vb(t){let e=or.default.asn1.fromDer(ie(t,"ascii")),r=or.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Tt(r.n),e:Tt(r.e)}}function $b(t){if(t.n==null||t.e==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=or.default.pki.publicKeyToAsn1({n:pt(t.n),e:pt(t.e)});return Y(or.default.asn1.toDer(e).getBytes(),"ascii")}async function dh(t){let e=await ct.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await yh(e);return{privateKey:r[0],publicKey:r[1]}}async function Bc(t){let r=[await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await zb(t)],n=await yh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function ph(t,e){let r=await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ct.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function mh(t,e,r){let n=await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ct.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r instanceof Uint8Array?r:r.subarray())}async function yh(t){if(t.privateKey==null||t.publicKey==null)throw new S("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([ct.get().subtle.exportKey("jwk",t.privateKey),ct.get().subtle.exportKey("jwk",t.publicKey)])}async function zb(t){return ct.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function gh(t,e,r,n){let i=e?hh(t):fh(t),s=ie(r instanceof Uint8Array?r:r.subarray(),"ascii"),o=n(s,i);return Y(o,"ascii")}function xh(t,e){return gh(t,!0,e,(r,n)=>n.encrypt(r))}function bh(t,e){return gh(t,!1,e,(r,n)=>n.decrypt(r))}function Ks(t){if(t.kty!=="RSA")throw new S("invalid key type","ERR_INVALID_KEY_TYPE");if(t.n==null)throw new S("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Y(t.n,"base64url").length*8}var Ti=8192,Ri=class{_key;constructor(e){this._key=e}verify(e,r){return mh(this._key,r,e)}marshal(){return Zr.jwkToPkix(this._key)}get bytes(){return Ht.encode({Type:be.RSA,Data:this.marshal()}).subarray()}encrypt(e){return xh(this._key,e)}equals(e){return Ie(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return wt(e)?e.then(({bytes:r})=>r):e.bytes}},Mn=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Fs(16)}sign(e){return ph(this._key,e)}get public(){if(this._publicKey==null)throw new S("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ri(this._publicKey)}decrypt(e){return bh(this._key,e)}marshal(){return Zr.jwkToPkcs1(this._key)}get bytes(){return Gt.encode({Type:be.RSA,Data:this.marshal()}).subarray()}equals(e){return Ie(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return wt(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ie(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ci.default.util.ByteBuffer(this.marshal()),i=Ci.default.asn1.fromDer(n),s=Ci.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ci.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return Nn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Gb(t){let e=Zr.pkcs1ToJwk(t);if(Ks(e)>Ti)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Bc(e);return new Mn(r.privateKey,r.publicKey)}function Wb(t){let e=Zr.pkixToJwk(t);if(Ks(e)>Ti)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ri(e)}async function Yb(t){if(Ks(t)>Ti)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Bc(t);return new Mn(e.privateKey,e.publicKey)}async function Qb(t){if(t>Ti)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await dh(t);return new Mn(e.privateKey,e.publicKey)}var Mc={};Me(Mc,{Secp256k1PrivateKey:()=>Li,Secp256k1PublicKey:()=>Bi,generateKeyPair:()=>l2,unmarshalSecp256k1PrivateKey:()=>c2,unmarshalSecp256k1PublicKey:()=>u2});var Xb=(t,e,r)=>t&e^~t&r,Zb=(t,e,r)=>t&e^t&r^e&r,jb=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]),Ir=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Cr=new Uint32Array(64),Pc=class extends Ln{constructor(){super(64,32,8,!1),this.A=Ir[0]|0,this.B=Ir[1]|0,this.C=Ir[2]|0,this.D=Ir[3]|0,this.E=Ir[4]|0,this.F=Ir[5]|0,this.G=Ir[6]|0,this.H=Ir[7]|0}get(){let{A:e,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[e,r,n,i,s,o,a,c]}set(e,r,n,i,s,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let f=0;f<16;f++,r+=4)Cr[f]=e.getUint32(r,!1);for(let f=16;f<64;f++){let d=Cr[f-15],p=Cr[f-2],h=Bt(d,7)^Bt(d,18)^d>>>3,m=Bt(p,17)^Bt(p,19)^p>>>10;Cr[f]=m+Cr[f-7]+h+Cr[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let d=Bt(a,6)^Bt(a,11)^Bt(a,25),p=l+d+Xb(a,c,u)+jb[f]+Cr[f]|0,m=(Bt(n,2)^Bt(n,13)^Bt(n,22))+Zb(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Cr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var wh=Is(()=>new Pc);function Jb(t){let e=Ei(t);zt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=e;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:e2,hexToBytes:t2}=Ts,jr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(t){let{Err:e}=jr;if(t.length<2||t[0]!==2)throw new e("Invalid signature integer tag");let r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:e2(n),l:t.subarray(r+2)}},toSig(t){let{Err:e}=jr,r=typeof t=="string"?t2(t):t;if(!Lt(r))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:i,l:s}=jr._parseInt(r.subarray(2)),{d:o,l:a}=jr._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},ar=BigInt(0),Et=BigInt(1),h4=BigInt(2),Eh=BigInt(3),d4=BigInt(4);function r2(t){let e=Jb(t),{Fp:r}=e,n=e.toBytes||((h,m,y)=>{let g=m.toAffine();return nr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=e.fromBytes||(h=>{let m=h.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(h){let{a:m,b:y}=e,g=r.sqr(h),x=r.mul(g,h);return r.add(r.add(x,r.mul(h,m)),y)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(h){return typeof h=="bigint"&&ar<h&&h<e.n}function a(h){if(!o(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=e;if(m&&typeof h!="bigint"){if(Lt(h)&&(h=tr(h)),typeof h!="string"||!m.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let b;try{b=typeof h=="bigint"?h:rr(_e("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return g&&(b=he(b,x)),a(b),b}let u=new Map;function l(h){if(!(h instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(_e("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:A,pz:E}=m,_=r.eql(r.mul(y,E),r.mul(b,x)),T=r.eql(r.mul(g,E),r.mul(A,x));return _&&T}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=e,g=r.mul(y,Eh),{px:x,py:b,pz:A}=this,E=r.ZERO,_=r.ZERO,T=r.ZERO,P=r.mul(x,x),z=r.mul(b,b),G=r.mul(A,A),$=r.mul(x,b);return $=r.add($,$),T=r.mul(x,A),T=r.add(T,T),E=r.mul(m,T),_=r.mul(g,G),_=r.add(E,_),E=r.sub(z,_),_=r.add(z,_),_=r.mul(E,_),E=r.mul($,E),T=r.mul(g,T),G=r.mul(m,G),$=r.sub(P,G),$=r.mul(m,$),$=r.add($,T),T=r.add(P,P),P=r.add(T,P),P=r.add(P,G),P=r.mul(P,$),_=r.add(_,P),G=r.mul(b,A),G=r.add(G,G),P=r.mul(G,$),E=r.sub(E,P),T=r.mul(G,z),T=r.add(T,T),T=r.add(T,T),new f(E,_,T)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:A,pz:E}=m,_=r.ZERO,T=r.ZERO,P=r.ZERO,z=e.a,G=r.mul(e.b,Eh),$=r.mul(y,b),J=r.mul(g,A),le=r.mul(x,E),$e=r.add(y,g),B=r.add(b,A);$e=r.mul($e,B),B=r.add($,J),$e=r.sub($e,B),B=r.add(y,x);let k=r.add(b,E);return B=r.mul(B,k),k=r.add($,le),B=r.sub(B,k),k=r.add(g,x),_=r.add(A,E),k=r.mul(k,_),_=r.add(J,le),k=r.sub(k,_),P=r.mul(z,B),_=r.mul(G,le),P=r.add(_,P),_=r.sub(J,P),P=r.add(J,P),T=r.mul(_,P),J=r.add($,$),J=r.add(J,$),le=r.mul(z,le),B=r.mul(G,B),J=r.add(J,le),le=r.sub($,le),le=r.mul(z,le),B=r.add(B,le),$=r.mul(J,B),T=r.add(T,$),$=r.mul(k,B),_=r.mul($e,_),_=r.sub(_,$),$=r.mul($e,J),P=r.mul(k,P),P=r.add(P,$),new f(_,T,P)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===ar)return y;if(a(m),m===Et)return this;let{endo:g}=e;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:A,k2:E}=g.splitScalar(m),_=y,T=y,P=this;for(;b>ar||E>ar;)b&Et&&(_=_.add(P)),E&Et&&(T=T.add(P)),P=P.double(),b>>=Et,E>>=Et;return x&&(_=_.negate()),A&&(T=T.negate()),T=new f(r.mul(T.px,g.beta),T.py,T.pz),_.add(T)}multiply(m){a(m);let y=m,g,x,{endo:b}=e;if(b){let{k1neg:A,k1:E,k2neg:_,k2:T}=b.splitScalar(y),{p:P,f:z}=this.wNAF(E),{p:G,f:$}=this.wNAF(T);P=p.constTimeNegate(A,P),G=p.constTimeNegate(_,G),G=new f(r.mul(G.px,b.beta),G.py,G.pz),g=P.add(G),x=z.add($)}else{let{p:A,f:E}=this.wNAF(y);g=A,x=E}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(E,_)=>_===ar||_===Et||!E.equals(x)?E.multiplyUnsafe(_):E.multiply(_),A=b(this,y).add(b(m,g));return A.is0()?void 0:A}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let A=r.mul(y,m),E=r.mul(g,m),_=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(_,r.ONE))throw new Error("invZ was invalid");return{x:A,y:E}}isTorsionFree(){let{h:m,isTorsionFree:y}=e;if(m===Et)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=e;return m===Et?this:y?y(f,this):this.multiplyUnsafe(e.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return tr(this.toRawBytes(m))}}f.BASE=new f(e.Gx,e.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let d=e.nBitLength,p=Ps(f,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function n2(t){let e=Ei(t);return zt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function vh(t){let e=n2(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(B){return ar<B&&B<r.ORDER}function a(B){return he(B,n)}function c(B){return Bs(B,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:d}=r2({...e,toBytes(B,k,D){let N=k.toAffine(),C=r.toBytes(N.x),U=nr;return D?U(Uint8Array.from([k.hasEvenY()?2:3]),C):U(Uint8Array.from([4]),C,r.toBytes(N.y))},fromBytes(B){let k=B.length,D=B[0],N=B.subarray(1);if(k===i&&(D===2||D===3)){let C=rr(N);if(!o(C))throw new Error("Point is not on curve");let U=f(C),K=r.sqrt(U),H=(K&Et)===Et;return(D&1)===1!==H&&(K=r.neg(K)),{x:C,y:K}}else if(k===s&&D===4){let C=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:C,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=B=>tr(Sr(B,e.nByteLength));function h(B){let k=n>>Et;return B>k}function m(B){return h(B)?a(-B):B}let y=(B,k,D)=>rr(B.slice(k,D));class g{constructor(k,D,N){this.r=k,this.s=D,this.recovery=N,this.assertValidity()}static fromCompact(k){let D=e.nByteLength;return k=_e("compactSignature",k,D*2),new g(y(k,0,D),y(k,D,2*D))}static fromDER(k){let{r:D,s:N}=jr.toSig(_e("DER",k));return new g(D,N)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:D,s:N,recovery:C}=this,U=T(_e("msgHash",k));if(C==null||![0,1,2,3].includes(C))throw new Error("recovery id invalid");let K=C===2||C===3?D+e.n:D;if(K>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=C&1?"03":"02",Z=u.fromHex(H+p(K)),ee=c(K),ce=a(-U*ee),te=a(N*ee),se=u.BASE.multiplyAndAddUnsafe(Z,ce,te);if(!se)throw new Error("point at infinify");return se.assertValidity(),se}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return zr(this.toDERHex())}toDERHex(){return jr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return zr(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(B){try{return l(B),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let B=oc(e.n);return F0(e.randomBytes(B),e.n)},precompute(B=8,k=u.BASE){return k._setWindowSize(B),k.multiply(BigInt(3)),k}};function b(B,k=!0){return u.fromPrivateKey(B).toRawBytes(k)}function A(B){let k=Lt(B),D=typeof B=="string",N=(k||D)&&B.length;return k?N===i||N===s:D?N===2*i||N===2*s:B instanceof u}function E(B,k,D=!0){if(A(B))throw new Error("first arg must be private key");if(!A(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(B)).toRawBytes(D)}let _=e.bits2int||function(B){let k=rr(B),D=B.length*8-e.nBitLength;return D>0?k>>BigInt(D):k},T=e.bits2int_modN||function(B){return a(_(B))},P=wi(e.nBitLength);function z(B){if(typeof B!="bigint")throw new Error("bigint expected");if(!(ar<=B&&B<P))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Sr(B,e.nByteLength)}function G(B,k,D=$){if(["recovered","canonical"].some(Ee=>Ee in D))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:C}=e,{lowS:U,prehash:K,extraEntropy:H}=D;U==null&&(U=!0),B=_e("msgHash",B),K&&(B=_e("prehashed msgHash",N(B)));let Z=T(B),ee=l(k),ce=[z(ee),z(Z)];if(H!=null){let Ee=H===!0?C(r.BYTES):H;ce.push(_e("extraEntropy",Ee))}let te=nr(...ce),se=Z;function Te(Ee){let ze=_(Ee);if(!d(ze))return;let He=c(ze),De=u.BASE.multiply(ze).toAffine(),je=a(De.x);if(je===ar)return;let Qt=a(He*a(se+je*ee));if(Qt===ar)return;let kr=(De.x===je?0:2)|Number(De.y&Et),ai=Qt;return U&&h(Qt)&&(ai=m(Qt),kr^=1),new g(je,ai,kr)}return{seed:te,k2sig:Te}}let $={lowS:e.lowS,prehash:!1},J={lowS:e.lowS,prehash:!1};function le(B,k,D=$){let{seed:N,k2sig:C}=G(B,k,D),U=e;return rc(U.hash.outputLen,U.nByteLength,U.hmac)(N,C)}u.BASE._setWindowSize(8);function $e(B,k,D,N=J){let C=B;if(k=_e("msgHash",k),D=_e("publicKey",D),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:K}=N,H,Z;try{if(typeof C=="string"||Lt(C))try{H=g.fromDER(C)}catch(De){if(!(De instanceof jr.Err))throw De;H=g.fromCompact(C)}else if(typeof C=="object"&&typeof C.r=="bigint"&&typeof C.s=="bigint"){let{r:De,s:je}=C;H=new g(De,je)}else throw new Error("PARSE");Z=u.fromHex(D)}catch(De){if(De.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;K&&(k=e.hash(k));let{r:ee,s:ce}=H,te=T(k),se=c(ce),Te=a(te*se),Ee=a(ee*se),ze=u.BASE.multiplyAndAddUnsafe(Z,Te,Ee)?.toAffine();return ze?a(ze.x)===ee:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:E,sign:le,verify:$e,ProjectivePoint:u,Signature:g,utils:x}}var qs=class extends Tn{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,I0(e);let n=bi(r);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 i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return Rn(this),this.iHash.update(e),this}digestInto(e){Rn(this),Qa(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:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Dc=(t,e,r)=>new qs(t,e).update(r).digest();Dc.create=(t,e)=>new qs(t,e);function i2(t){return{hash:t,hmac:(e,...r)=>Dc(t,e,As(...r)),randomBytes:Bn}}function _h(t,e){let r=n=>vh({...t,...i2(n)});return Object.freeze({...r(e),create:r})}var Ih=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Sh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),s2=BigInt(1),Nc=BigInt(2),Ah=(t,e)=>(t+e/Nc)/e;function o2(t){let e=Ih,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,f=xe(l,r,e)*l%e,d=xe(f,r,e)*l%e,p=xe(d,Nc,e)*u%e,h=xe(p,i,e)*p%e,m=xe(h,s,e)*h%e,y=xe(m,a,e)*m%e,g=xe(y,c,e)*y%e,x=xe(g,a,e)*m%e,b=xe(x,r,e)*l%e,A=xe(b,o,e)*h%e,E=xe(A,n,e)*u%e,_=xe(E,Nc,e);if(!kc.eql(kc.sqr(_),t))throw new Error("Cannot find square root");return _}var kc=Ls(Ih,void 0,void 0,{sqrt:o2}),Nt=_h({a:BigInt(0),b:BigInt(7),Fp:kc,n:Sh,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{let e=Sh,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-s2*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=Ah(s*t,e),c=Ah(-n*t,e),u=he(t-a*r-c*i,e),l=he(-a*n-c*s,e),f=u>o,d=l>o;if(f&&(u=e-u),d&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},wh),A4=BigInt(0);var I4=Nt.ProjectivePoint;function Ch(){return Nt.utils.randomPrivateKey()}function Rh(t,e){let r=Ge.digest(e instanceof Uint8Array?e:e.subarray());if(wt(r))return r.then(({digest:n})=>Nt.sign(n,t).toDERRawBytes()).catch(n=>{throw new S(String(n),"ERR_INVALID_INPUT")});try{return Nt.sign(r.digest,t).toDERRawBytes()}catch(n){throw new S(String(n),"ERR_INVALID_INPUT")}}function Th(t,e,r){let n=Ge.digest(r instanceof Uint8Array?r:r.subarray());if(wt(n))return n.then(({digest:i})=>Nt.verify(e,i,t)).catch(i=>{throw new S(String(i),"ERR_INVALID_INPUT")});try{return Nt.verify(e,n.digest,t)}catch(i){throw new S(String(i),"ERR_INVALID_INPUT")}}function Bh(t){return Nt.ProjectivePoint.fromHex(t).toRawBytes(!0)}function Lh(t){try{Nt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Oc(t){try{Nt.ProjectivePoint.fromHex(t)}catch(e){throw new S(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Ph(t){try{return Nt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Bi=class{_key;constructor(e){Oc(e),this._key=e}verify(e,r){return Th(this._key,r,e)}marshal(){return Bh(this._key)}get bytes(){return Ht.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ie(this.bytes,e.bytes)}async hash(){let e=Ge.digest(this.bytes),r;return wt(e)?{bytes:r}=await e:r=e.bytes,r}},Li=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??Ph(e),Lh(this._key),Oc(this._publicKey)}sign(e){return Rh(this._key,e)}get public(){return new Bi(this._publicKey)}marshal(){return this._key}get bytes(){return Gt.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ie(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return wt(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ie(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function c2(t){return new Li(t)}function u2(t){return new Bi(t)}async function l2(){let t=Ch();return new Li(t)}var Rr={rsa:Lc,ed25519:Ic,secp256k1:Mc};function Uc(t){let e=Object.keys(Rr).join(" / ");return new S(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Fc(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return Rr[t];throw Uc(t)}async function Dh(t,e){return Fc(t).generateKeyPair(e??2048)}function Pi(t){let e=Ht.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Rr.rsa.unmarshalRsaPublicKey(r);case be.Ed25519:return Rr.ed25519.unmarshalEd25519PublicKey(r);case be.Secp256k1:return Rr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Uc(e.Type??"unknown")}}function Nh(t,e){return e=(e??"rsa").toLowerCase(),Fc(e),t.bytes}async function Kc(t){let e=Gt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Rr.rsa.unmarshalRsaPrivateKey(r);case be.Ed25519:return Rr.ed25519.unmarshalEd25519PrivateKey(r);case be.Secp256k1:return Rr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Uc(e.Type??"RSA")}}function kh(t,e){return e=(e??"rsa").toLowerCase(),Fc(e),t.bytes}var gt=we(Vc(),1);gt.default.formatters.b=t=>t==null?"undefined":Ae.baseEncode(t);gt.default.formatters.t=t=>t==null?"undefined":dt.baseEncode(t);gt.default.formatters.m=t=>t==null?"undefined":Sn.baseEncode(t);gt.default.formatters.p=t=>t==null?"undefined":t.toString();gt.default.formatters.c=t=>t==null?"undefined":t.toString();gt.default.formatters.k=t=>t==null?"undefined":t.toString();gt.default.formatters.a=t=>t==null?"undefined":t.toString();function S2(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function zs(){return{forComponent(t){return A2(t)}}}function A2(t){let e=S2(`${t}:trace`);return gt.default.enabled(`${t}:trace`)&&gt.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,gt.default)(`${t}:trace`)),Object.assign((0,gt.default)(t),{error:(0,gt.default)(`${t}:error`),trace:e})}var I2=Symbol.for("nodejs.util.inspect.custom"),Fh=Object.values(wr).map(t=>t.decoder).reduce((t,e)=>t.or(e),wr.identity.decoder),Kh=114,$c=36,zc=37,Di=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[_a]=!0;toString(){return this.string==null&&(this.string=Ae.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ct.createV1(Kh,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ie(this.multihash.bytes,e);if(typeof e=="string")return Le(e).equals(this);if(e?.multihash?.bytes!=null)return Ie(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[I2](){return`PeerId(${this.toString()})`}},en=class extends Di{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},tn=class extends Di{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},rn=class extends Di{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function qh(t){if(t.type==="RSA")return new en(t);if(t.type==="Ed25519")return new tn(t);if(t.type==="secp256k1")return new rn(t);throw new S("Not a PeerId","ERR_INVALID_PARAMETERS")}function Le(t,e){if(e=e??Fh,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Vr(Ae.decode(`z${t}`));return t.startsWith("12D")?new tn({multihash:r}):t.startsWith("16U")?new rn({multihash:r}):new en({multihash:r})}return qn(Fh.decode(t))}function qn(t){try{let e=Vr(t);if(e.code===br.code){if(e.digest.length===$c)return new tn({multihash:e});if(e.digest.length===zc)return new rn({multihash:e})}if(e.code===Ge.code)return new en({multihash:e})}catch{return C2(Ct.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function C2(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==Kh)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===Ge.code)return new en({multihash:t.multihash});if(e.code===br.code){if(e.digest.length===$c)return new tn({multihash:t.multihash});if(e.digest.length===zc)return new rn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Hs(t,e){return t.length===$c?new tn({multihash:$t(br.code,t),privateKey:e}):t.length===zc?new rn({multihash:$t(br.code,t),privateKey:e}):new en({multihash:await Ge.digest(t),publicKey:t,privateKey:e})}function nn(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var et=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return nn(this.map.entries(),e=>[Le(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,Le(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return nn(this.map.keys(),e=>Le(e))}values(){return this.map.values()}get size(){return this.map.size}};var vt=class t{set;constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.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 nn(this.set.entries(),e=>{let r=Le(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=Le(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return nn(this.set.values(),e=>Le(e))}intersection(e){let r=new t;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new t;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new t;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var Hc;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Hc||(Hc={}));var Vh=async()=>{let t=await Dh("Ed25519"),e=await T2(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function T2(t){return Hs(Nh(t.public),kh(t))}var B2=Math.pow(2,7),L2=Math.pow(2,14),P2=Math.pow(2,21),Gc=Math.pow(2,28),Wc=Math.pow(2,35),Yc=Math.pow(2,42),Qc=Math.pow(2,49),ae=128,tt=127;function rt(t){if(t<B2)return 1;if(t<L2)return 2;if(t<P2)return 3;if(t<Gc)return 4;if(t<Wc)return 5;if(t<Yc)return 6;if(t<Qc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function D2(t,e,r=0){switch(rt(t)){case 8:e[r++]=t&255|ae,t/=128;case 7:e[r++]=t&255|ae,t/=128;case 6:e[r++]=t&255|ae,t/=128;case 5:e[r++]=t&255|ae,t/=128;case 4:e[r++]=t&255|ae,t>>>=7;case 3:e[r++]=t&255|ae,t>>>=7;case 2:e[r++]=t&255|ae,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function N2(t,e,r=0){switch(rt(t)){case 8:e.set(r++,t&255|ae),t/=128;case 7:e.set(r++,t&255|ae),t/=128;case 6:e.set(r++,t&255|ae),t/=128;case 5:e.set(r++,t&255|ae),t/=128;case 4:e.set(r++,t&255|ae),t>>>=7;case 3:e.set(r++,t&255|ae),t>>>=7;case 2:e.set(r++,t&255|ae),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function k2(t,e){let r=t[e],n=0;if(n+=r&tt,r<ae||(r=t[e+1],n+=(r&tt)<<7,r<ae)||(r=t[e+2],n+=(r&tt)<<14,r<ae)||(r=t[e+3],n+=(r&tt)<<21,r<ae)||(r=t[e+4],n+=(r&tt)*Gc,r<ae)||(r=t[e+5],n+=(r&tt)*Wc,r<ae)||(r=t[e+6],n+=(r&tt)*Yc,r<ae)||(r=t[e+7],n+=(r&tt)*Qc,r<ae))return n;throw new RangeError("Could not decode varint")}function O2(t,e){let r=t.get(e),n=0;if(n+=r&tt,r<ae||(r=t.get(e+1),n+=(r&tt)<<7,r<ae)||(r=t.get(e+2),n+=(r&tt)<<14,r<ae)||(r=t.get(e+3),n+=(r&tt)<<21,r<ae)||(r=t.get(e+4),n+=(r&tt)*Gc,r<ae)||(r=t.get(e+5),n+=(r&tt)*Wc,r<ae)||(r=t.get(e+6),n+=(r&tt)*Yc,r<ae)||(r=t.get(e+7),n+=(r&tt)*Qc,r<ae))return n;throw new RangeError("Could not decode varint")}function lt(t,e,r=0){return e==null&&(e=Rt(rt(t))),e instanceof Uint8Array?D2(t,e,r):N2(t,e,r)}function kt(t,e=0){return t instanceof Uint8Array?k2(t,e):O2(t,e)}function Ni(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function cr(t=0){return globalThis.Buffer?.alloc!=null?Ni(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function ki(t=0){return globalThis.Buffer?.allocUnsafe!=null?Ni(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Xc(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=ki(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Ni(r)}function $h(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var Hh=Symbol.for("@achingbrain/uint8arraylist");function zh(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function Gs(t){return!!t?.[Hh]}var Ve=class t{bufs;length;[Hh]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Gs(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Gs(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=zh(this.bufs,e);return r.buf[r.index]}set(e,r){let n=zh(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(Gs(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:i}=this._subList(e,r);return Xc(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Xc(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new t;return s.length=i,s.bufs=[...n],s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!Gs(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){l=Math.max(1,d-a[p]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=ki(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=cr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=cr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=cr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=ki(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=cr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=cr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=cr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=cr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=cr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!$h(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Gh={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Oi;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Oi||(Oi={}));var Vn=class t{static createFromProtobuf=async e=>{let r=Oi.decode(e),n=await Hs(r.publicKey);return new t({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(e,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=e.domain,i=e.codec,s=e.marshal(),o=Wh(n,i,s),c=await(await Kc(r.privateKey)).sign(o.subarray());return new t({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(e,r)=>{let n=await t.createFromProtobuf(e);if(!await n.validate(r))throw new S("envelope signature is not valid for the given domain",Gh.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Oi.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Ie(this.marshal(),e.marshal())}async validate(e){let r=Wh(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return Pi(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Wh=(t,e,r)=>{let n=Y(t),i=lt(n.byteLength),s=lt(e.length),o=lt(r.length);return new Ve(i,n,s,e,o,r)};function Yh(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}var Ws=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Qh=45,M2=15,$n=new Ws;function Zc(t){if(!(t.length>M2))return $n.new(t).parseWith(()=>$n.readIPv4Addr())}function jc(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Qh))return $n.new(t).parseWith(()=>$n.readIPv6Addr())}function Ys(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Qh))return $n.new(t).parseWith(()=>$n.readIPAddr())}var TR=parseInt("0xFFFF",16),BR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Qs(t){return!!Zc(t)}function Xs(t){return!!jc(t)}function zn(t){return!!Ys(t)}var jh=Qs,V2=Xs,Jc=function(t){let e=0;if(t=t.toString().trim(),jh(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(V2(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=jh(r[n]),o;s&&(o=Jc(r[n]),r[n]=ie(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,ie(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},Jh=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Hn={},eu={},z2=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];z2.forEach(t=>{let e=H2(...t);eu[e.code]=e,Hn[e.name]=e});function H2(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function ue(t){if(typeof t=="number"){if(eu[t]!=null)return eu[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Hn[t]!=null)return Hn[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var d8=ue("ip4"),p8=ue("ip6"),m8=ue("ipcidr");function ru(t,e){switch(ue(t).code){case 4:case 41:return W2(e);case 42:return rd(e);case 6:case 273:case 33:case 132:return id(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return rd(e);case 421:return Z2(e);case 444:return nd(e);case 445:return nd(e);case 466:return X2(e);default:return ie(e,"base16")}}function nu(t,e){switch(ue(t).code){case 4:return ed(e);case 41:return ed(e);case 42:return td(e);case 6:case 273:case 33:case 132:return iu(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return td(e);case 421:return Y2(e);case 444:return j2(e);case 445:return J2(e);case 466:return Q2(e);default:return Y(e,"base16")}}var tu=Object.values(wr).map(t=>t.decoder),G2=function(){let t=tu[0].or(tu[1]);return tu.slice(2).forEach(e=>t=t.or(e)),t}();function ed(t){if(!zn(t))throw new Error("invalid ip address");return Jc(t)}function W2(t){let e=Jh(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!zn(e))throw new Error("invalid ip address");return e}function iu(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function id(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function td(t){let e=Y(t),r=Uint8Array.from(lt(e.length));return qe([r,e],r.length+e.length)}function rd(t){let e=kt(t);if(t=t.slice(rt(e)),t.length!==e)throw new Error("inconsistent lengths");return ie(t)}function Y2(t){let e;t[0]==="Q"||t[0]==="1"?e=Vr(Ae.decode(`z${t}`)).bytes:e=Ct.parse(t).multihash.bytes;let r=Uint8Array.from(lt(e.length));return qe([r,e],r.length+e.length)}function Q2(t){let e=G2.decode(t),r=Uint8Array.from(lt(e.length));return qe([r,e],r.length+e.length)}function X2(t){let e=kt(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+ie(r,"base64url")}function Z2(t){let e=kt(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return ie(r,"base58btc")}function j2(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=dt.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 i=iu(n);return qe([r,i],r.length+i.length)}function J2(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=dt.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 i=iu(n);return qe([r,i],r.length+i.length)}function nd(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=ie(e,"base32"),i=id(r);return`${n}:${i}`}function sd(t){t=su(t);let e=[],r=[],n=null,i=t.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<i.length;s++){let o=i[s],a=ue(o);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw ad("invalid address: "+t);if(a.path===!0){n=su(i.slice(s).join("/")),e.push([a.code,nu(a.code,n)]),r.push([a.code,n]);break}let c=nu(a.code,i[s]);e.push([a.code,c]),r.push([a.code,ru(a.code,c)])}return{string:od(r),bytes:au(e),tuples:e,stringTuples:r,path:n}}function ou(t){let e=[],r=[],n=null,i=0;for(;i<t.length;){let s=kt(t,i),o=rt(s),a=ue(s),c=ew(a,t.slice(i+o));if(c===0){e.push([s]),r.push([s]),i+=o;continue}let u=t.slice(i+o,i+o+c);if(i+=c+o,i>t.length)throw ad("Invalid address Uint8Array: "+ie(t,"base16"));e.push([s,u]);let l=ru(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:od(r),tuples:e,stringTuples:r,path:n}}function od(t){let e=[];return t.map(r=>{let n=ue(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),su(e.join("/"))}function au(t){return qe(t.map(e=>{let r=ue(e[0]),n=Uint8Array.from(lt(r.code));return e.length>1&&e[1]!=null&&(n=qe([n,e[1]])),n}))}function ew(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=kt(e instanceof Uint8Array?e:Uint8Array.from(e));return r+rt(r)}}function su(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function ad(t){return new Error("Error parsing address: "+t)}var tw=Symbol.for("nodejs.util.inspect.custom"),cu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),rw=[ue("dns").code,ue("dns4").code,ue("dns6").code,ue("dnsaddr").code],Zs=class t{bytes;#e;#i;#s;#a;[cu]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=ou(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=sd(e)}else if(Tr(e))r=ou(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#i=r.tuples,this.#s=r.stringTuples,this.#a=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,i,s="",o=ue("tcp"),a=ue("udp"),c=ue("ip4"),u=ue("ip6"),l=ue("dns6"),f=ue("ip6zone");for(let[p,h]of this.stringTuples())p===f.code&&(s=`%${h??""}`),rw.includes(p)&&(r=o.name,i=443,n=`${h??""}${s}`,e=p===l.code?6:4),(p===o.code||p===a.code)&&(r=ue(p).name,i=parseInt(h??"")),(p===c.code||p===u.code)&&(r=ue(p).name,n=`${h??""}${s}`,e=p===u.code?6:4);if(e==null||r==null||n==null||i==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:r,port:i}}protos(){return this.#i.map(([e])=>Object.assign({},ue(e)))}protoCodes(){return this.#i.map(([e])=>e)}protoNames(){return this.#i.map(([e])=>ue(e).name)}tuples(){return this.#i}stringTuples(){return this.#s}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(au(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,i])=>{n===Hn.p2p.code&&e.push([n,i]),n===Hn["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ie(Ae.decode(`z${n}`),"base58btc"):ie(Ct.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return Ie(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=js.get(r.name);if(n==null)throw new S(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[tw](){return`Multiaddr(${this.#e})`}};var js=new Map;function Tr(t){return!!t?.[cu]}function ke(t){return new Zs(t)}var cd="libp2p-peer-record",ud=Uint8Array.from([3,1]);var Mi;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Qe((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>Ye(s,n.codec()),n.decode=s=>We(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Qe((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>Ye(n,t.codec()),t.decode=n=>We(n,t.codec())})(Mi||(Mi={}));var on=class t{static createFromProtobuf=e=>{let r=Mi.decode(e),n=qn(r.peerId),i=(r.addresses??[]).map(o=>ke(o.multiaddr)),s=r.seq;return new t({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=cd;static CODEC=ud;peerId;multiaddrs;seqNumber;domain=t.DOMAIN;codec=t.CODEC;marshaled;constructor(e){let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Mi.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof t)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Yh(this.multiaddrs,e.multiaddrs))}};function nw(t){return t[Symbol.asyncIterator]!=null}function iw(t){if(nw(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var Ui=iw;var an=we(fd(),1);var ur=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},lu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},hd=t=>globalThis.DOMException===void 0?new lu(t):new DOMException(t),dd=t=>{let e=t.reason===void 0?hd("This operation was aborted."):t.reason;return e instanceof Error?e:hd(e)};function lr(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,c=new Promise((u,l)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(dd(d)),d.addEventListener("abort",()=>{l(dd(d))})}if(r===Number.POSITIVE_INFINITY){t.then(u,l);return}let f=new ur;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await t)}catch(d){l(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}function fu(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Ki=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=fu(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var Gn=class extends an.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ki,...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.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#g(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#g(),!0):!1}}return!1}#g(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}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.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=lr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof ur&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};var Br={},Wn=t=>{t.addEventListener("message",e=>{Wn.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Wn.dispatchEvent("message",t,e)})};Wn.addEventListener=(t,e)=>{Br[t]==null&&(Br[t]=[]),Br[t].push(e)};Wn.removeEventListener=(t,e)=>{Br[t]!=null&&(Br[t]=Br[t].filter(r=>r===e))};Wn.dispatchEvent=function(t,e,r){Br[t]!=null&&Br[t].forEach(n=>n(e,r))};var hu=Wn;var du="lock:worker:request-read",pu="lock:worker:release-read",mu="lock:master:grant-read",yu="lock:worker:request-write",gu="lock:worker:release-write",xu="lock:master:grant-write";var pd=(t=21)=>Math.random().toString().substring(2);var md=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},yd=(t,e,r,n)=>async()=>{let i=pd();return globalThis.postMessage({type:e,identifier:i,name:t}),new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},aw={singleProcess:!1},gd=t=>{if(t=Object.assign({},aw,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return hu.addEventListener("message",md(r,"requestReadLock",du,pu,mu)),hu.addEventListener("message",md(r,"requestWriteLock",yu,gu,xu)),r}return{isWorker:!0,readLock:r=>yd(r,du,mu,pu),writeLock:r=>yd(r,yu,xu,gu)}};var cn={},Lr;async function bu(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>lr((async()=>{await new Promise(i=>{r(()=>{i()})})})(),{milliseconds:e.timeout})),n}var cw=(t,e)=>{if(Lr.isWorker===!0)return{readLock:Lr.readLock(t,e),writeLock:Lr.writeLock(t,e)};let r=new Gn({concurrency:1}),n;return{async readLock(){if(n!=null)return bu(n,e);n=new Gn({concurrency:e.concurrency,autoStart:!1});let i=n,s=bu(n,e);return r.add(async()=>{i.start(),await i.onIdle().then(()=>{n===i&&(n=null)})}),s},async writeLock(){return n=null,bu(r,e)}}},uw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function wu(t){let e=Object.assign({},uw,t);return Lr==null&&(Lr=gd(e),Lr.isWorker!==!0&&(Lr.addEventListener("requestReadLock",r=>{cn[r.data.name]!=null&&cn[r.data.name].readLock().then(async n=>r.data.handler().finally(()=>{n()}))}),Lr.addEventListener("requestWriteLock",async r=>{cn[r.data.name]!=null&&cn[r.data.name].writeLock().then(async n=>r.data.handler().finally(()=>{n()}))}))),cn[e.name]==null&&(cn[e.name]=cw(e.name,e)),cn[e.name]}var Xe={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var Yn;(function(t){let e;(function(i){let s;i.codec=()=>(s==null&&(s=Qe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Ye(o,i.codec()),i.decode=o=>We(o,i.codec())})(e=t.Peer$metadataEntry||(t.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=Qe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),to.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=to.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Ye(o,i.codec()),i.decode=o=>We(o,i.codec())})(r=t.Peer$tagsEntry||(t.Peer$tagsEntry={}));let n;t.codec=()=>(n==null&&(n=Qe((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),eo.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),t.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),t.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(eo.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=t.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=t.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),t.encode=i=>Ye(i,t.codec()),t.decode=i=>We(i,t.codec())})(Yn||(Yn={}));var eo;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(eo||(eo={}));var to;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(to||(to={}));function Qn(t,e){let r=Yn.decode(e);r.publicKey!=null&&t.publicKey==null&&(t=qh({...t,publicKey:t.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:t,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:ke(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var fr="/",xd=new TextEncoder().encode(fr),ro=xd[0],un=class t{_buf;constructor(e,r){if(typeof e=="string")this._buf=Y(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ro)throw new Error("Invalid key")}toString(e="utf8"){return ie(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new t(e.join(fr))}static random(){return new t(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new t(e):typeof e.uint8Array=="function"?new t(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=xd),this._buf[0]!==ro){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ro,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ro;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return t.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(fr).slice(1)}type(){return lw(this.baseNamespace())}name(){return fw(this.baseNamespace())}instance(e){return new t(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(fr)||(e+=fr),e+=this.type(),new t(e)}parent(){let e=this.list();return e.length===1?new t(fr):new t(e.slice(0,-1).join(fr))}child(e){return this.toString()===fr?e:e.toString()===fr?this:new t(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 t.withNamespaces([...this.namespaces(),...hw(e.map(r=>r.namespaces()))])}};function lw(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function fw(t){let e=t.split(":");return e[e.length-1]}function hw(t){return[].concat(...t)}var Eu="/peers/";function Xn(t){if(!bs(t)||t.type==null)throw new S("Invalid PeerId",Xe.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new un(`${Eu}${e}`)}async function bd(t,e,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=ke(i.multiaddr)),!Tr(i.multiaddr))throw new S("Multiaddr was invalid",Xe.ERR_INVALID_PARAMETERS);if(!await e(t,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function io(t,e,r,n){if(e==null)throw new S("Invalid PeerData",Xe.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&t.publicKey!=null&&!Ie(e.publicKey,t.publicKey))throw new S("publicKey bytes do not match peer id publicKey bytes",Xe.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!t.equals(i.id))throw new S("peer id did not match existing peer id",Xe.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(o=new Set(e.protocols)),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=no(f,{validate:wd})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=no(f,{validate:Ed,map:vd})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(r==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(o=new Set([...o,...e.protocols])),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[d,p]of f)p==null?a.delete(d):a.set(d,p);a=no([...a.entries()],{validate:wd})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),d=new Map(c);for(let[p,h]of f)h==null?d.delete(p):d.set(p,h);c=no([...d.entries()],{validate:Ed,map:vd})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let l={addresses:await bd(t,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,d)=>f.localeCompare(d)),metadata:a,tags:c,publicKey:i?.id.publicKey??e.publicKey??t.publicKey,peerRecordEnvelope:u};return t.type!=="RSA"&&delete l.publicKey,l}function no(t,e){let r=new Map;for(let[n,i]of t)i!=null&&e.validate(n,i);for(let[n,i]of t.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,e.map?.(n,i)??i);return r}function wd(t,e){if(typeof t!="string")throw new S("Metadata key must be a string",Xe.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new S("Metadata value must be a Uint8Array",Xe.ERR_INVALID_PARAMETERS)}function Ed(t,e){if(typeof t!="string")throw new S("Tag name must be a string",Xe.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new S("Tag value must be an integer",Xe.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new S("Tag value must be between 0-100",Xe.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new S("Tag ttl must be an integer",Xe.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new S("Tag ttl must be between greater than 0",Xe.ERR_INVALID_PARAMETERS)}}function vd(t,e){let r;return e.expiry!=null&&(r=e.expiry),e.ttl!=null&&(r=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:r}}function so(t,e,r){let n=t.toString().split("/")[2],i=dt.decode(n),s=qn(i),o=r.get(s);if(o!=null)return o;let a=Qn(s,e);return r.set(s,a),a}function dw(t,e){return t==null?{}:{prefix:Eu,filters:(t.filters??[]).map(r=>({key:n,value:i})=>r(so(n,i,e))),orders:(t.orders??[]).map(r=>(n,i)=>r(so(n.key,n.value,e),so(i.key,i.value,e)))}}var oo=class{peerId;datastore;lock;addressFilter;constructor(e,r={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=r.addressFilter,this.lock=wu({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(Xn(e))}async delete(e){if(this.peerId.equals(e))throw new S("Cannot delete self peer",Xe.ERR_INVALID_PARAMETERS);await this.datastore.delete(Xn(e))}async load(e){let r=await this.datastore.get(Xn(e));return Qn(e,r)}async save(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await io(e,r,"patch",{addressFilter:this.addressFilter});return this.#i(e,s,n,i)}async patch(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await io(e,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#i(e,s,n,i)}async merge(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await io(e,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#i(e,s,n,i)}async*all(e){let r=new et;for await(let{key:n,value:i}of this.datastore.query(dw(e??{},r))){let s=so(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let r=await this.datastore.get(Xn(e)),n=Qn(e,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#i(e,r,n,i){let s=Yn.encode(r);return n!=null&&Ie(s,n)?{peer:Qn(e,s),previous:i,updated:!1}:(await this.datastore.put(Xn(e),s),{peer:Qn(e,s),previous:i,updated:!0})}};var ao=class{store;events;peerId;log;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new oo(e,r)}async forEach(e,r){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 i of this.store.all(r))e(i)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let r=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await Ui(this.store.all(e))}finally{this.log.trace("all release read lock"),r()}}async delete(e){this.log.trace("delete await write lock");let r=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"),r()}}async has(e){this.log.trace("has await read lock");let r=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"),r()}}async get(e){this.log.trace("get await read lock");let r=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"),r()}}async save(e,r){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let i=await this.store.save(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,r){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let i=await this.store.patch(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,r){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let i=await this.store.merge(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,r){let n=await Vn.openAndCertify(e,on.DOMAIN);if(r?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=on.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await Vn.createFromProtobuf(s.peerRecordEnvelope),a=on.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#e(e,r){r.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function pw(t){return t[Symbol.asyncIterator]!=null}function mw(t){if(pw(t))return(async()=>{for await(let e of t);})();for(let e of t);}var vu=mw;function yw(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var _d=yw;function gw(t){return t[Symbol.asyncIterator]!=null}function xw(t,e){if(gw(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=_d(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let o=e;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var ln=xw;function bw(t){return t[Symbol.asyncIterator]!=null}function ww(t,e){return bw(t)?async function*(){yield*(await Ui(t)).sort(e)}():function*(){yield*Ui(t).sort(e)}()}var _u=ww;function Ew(t){return t[Symbol.asyncIterator]!=null}function vw(t,e){return Ew(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var Su=vw;var co=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await vu(this.putMany(e,n)),e=[],await vu(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=ln(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>ln(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>_u(i,s),n)),e.offset!=null){let i=0,s=e.offset;n=ln(n,()=>i++>=s)}return e.limit!=null&&(n=Su(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=ln(n,s=>s.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>ln(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>_u(i,s),n)),e.offset!=null){let i=e.offset,s=0;n=ln(n,()=>s++>=i)}return e.limit!=null&&(n=Su(n,e.limit)),n}};var Id=we(Au(),1);function Cd(t){return t=t??new Error("Not Found"),(0,Id.default)(t,"ERR_NOT_FOUND")}var uo=class extends co{data;constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw Cd();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new un(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new un(e)}};function Rd(t,e){let r;return function(){let n=function(){r=void 0,t()};clearTimeout(r),r=setTimeout(n,e)}}var Aw=t=>t;function Iu(t,e){let r=t.getPeerId();return r!=null&&Le(r).equals(e)&&(t=t.decapsulate(ke(`/p2p/${e.toString()}`))),t}var lo=class{log;components;listen;announce;observed;announceFilter;constructor(e,r={}){let{listen:n=[],announce:i=[]}=r;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Aw,this._updatePeerStoreAddresses=Rd(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>ke(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(r=>{this.log.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(e=>ke(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>ke(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>ke(e))}addObservedAddr(e){e=Iu(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=Iu(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=Iu(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>ke(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Cu=class{components={};_started=!1;constructor(e={}){this.components={};for(let[r,n]of Object.entries(e))this.components[r]=n;this.components.logger==null&&(this.components.logger=zs())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(r=>r0(r)).map(async r=>{await r[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")}},Iw=["metrics","connectionProtector"],Cw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Td(t={}){let e=new Cu(t);return new Proxy(e,{get(n,i,s){if(typeof i=="string"&&!Cw.includes(i)){let o=e.components[i];if(o==null&&!Iw.includes(i))throw new S(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?e.components[i]=s:Reflect.set(n,i,s),!0}})}var Od=we(Bd(),1);var Ld="[a-fA-F\\d:]",Pr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${Ld})|(?<=${Ld})(?=\\s|$))`:"",Ot="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Pe="[a-fA-F\\d]{1,4}",fo=`
37
+ SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Ip.exports=Wu});var Cp=q(()=>{});var Bp=q((zB,Tp)=>{Tp.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var Dp=q((GB,Lp)=>{var aE=Bp(),Yu=ht();Lp.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return!this._storage[e].expiresAt||i>0?(this._storage[e].value=this._storage[e].value+r,new Yu(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new aE(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new Yu(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new Yu(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var Xu=q((WB,Np)=>{var cE=zi(),uE=Dp(),Pp=ht(),Qu=class extends cE{constructor(e={}){super(e),this._memoryStorage=new uE}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new Pp(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new Pp(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};Np.exports=Qu});var qp=q((YB,Kp)=>{var kp=Cp(),lE=fi(),fE=zi(),Mp=Xu(),hE=ht(),At="rate_limiter_flexible",ti=null,Op=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:At,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},Up=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&Up.call(this,t)},30)},Jn=function(t,e,r,n,i){let s={channel:At,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):Up.call(this,s)},Fp=function(t,e){if(!e||e.channel!==At||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{Op(t,e,"resolve",n)}).catch(n=>{Op(t,e,"reject",n)})},dE=function(t){if(!t||t.channel!==At||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new hE(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},pE=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},ei=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=lE.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Zu=class{constructor(){if(ti)return ti;this._rateLimiters={},kp.setMaxListeners(0),kp.on("message",(e,r)=>{r&&r.channel===At&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new Mp(r.opts)),e.send({channel:At,type:"init",keyPrefix:r.opts.keyPrefix})):Fp.call(this,e,r)}),ti=this}},ju=class{constructor(e){if(ti)return ti;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===At&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new Mp(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:At,channel:At,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=At,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Fp.call(this,o,s)}})}),ti=this}},Ju=class extends fE{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===At&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:dE.call(this,r)}),process.send({channel:At,type:"init",opts:pE.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=ei.call(this,i,s);Jn.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=ei.call(this,i,s);Jn.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=ei.call(this,i,s);Jn.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=ei.call(this,i,s);Jn.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=ei.call(this,n,i);Jn.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=ei.call(this,n,i);Jn.call(this,"delete",s,e,r)})}};Kp.exports={RateLimiterClusterMaster:Zu,RateLimiterClusterMasterPM2:ju,RateLimiterCluster:Ju}});var $p=q((QB,Vp)=>{var mE=fn(),yE=ht(),el=class extends mE{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new yE;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(d,p)=>{if(d||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let h=Object.assign({},s);h.attemptNumber=h.attemptNumber?h.attemptNumber+1:1,this._upsert(e,r,n,i,h).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let h={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(h)})}):this.client.get(`${e}_expire`,(d,p)=>{if(d)a(d);else{let h=p===!1?0:p,m={consumedPoints:f,msBeforeNext:h>=0?Math.max(h-c,0):-1};o(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};Vp.exports=el});var Gp=q((ZB,Hp)=>{var zp=ht();Hp.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new zp(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new zp(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var Yp=q((JB,Wp)=>{var gE=zi();Wp.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof gE))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var Xp=q((t6,Qp)=>{Qp.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var em=q((n6,Jp)=>{var Zp=Xp(),jp=4294967295,tl="limiter";Jp.exports=class{constructor(e,r={maxQueueSize:jp}){this._queueLimiters={KEY_DEFAULT:new bo(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=tl){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=tl){return this._queueLimiters[r]||(this._queueLimiters[r]=new bo(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var bo=class{constructor(e,r={maxQueueSize:jp,key:tl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new Zp(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new Zp(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var rm=q((s6,tm)=>{var rl=ht();tm.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return e?new rl(e.remainingPoints,Math.min(e.msBeforeNext,r?r.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof rl?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof rl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var im=q((o6,nm)=>{var xE=ht(),bE=fn(),wo=class{constructor(e,r,n){this.key=e,this.points=r,this.expire=n}},wE=25,EE=25,nl=class extends bE{constructor(e,r=null){super(e),this.client=e.storeClient,this.tableName=e.tableName,this.tableCreated=e.tableCreated,this.tableCreated?this._setTTL().finally(()=>{typeof r=="function"&&r()}):this._createTable(e.dynamoTableOpts).then(n=>{this.tableCreated=!0,this._setTTL().finally(()=>{typeof r=="function"&&r()})}).catch(n=>{if(typeof r=="function")r(n);else throw n})}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?"node-rate-limiter-flexible":e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}async _createTable(e){let r={TableName:this.tableName,AttributeDefinitions:[{AttributeName:"key",AttributeType:"S"}],KeySchema:[{AttributeName:"key",KeyType:"HASH"}],ProvisionedThroughput:{ReadCapacityUnits:e&&e.readCapacityUnits?e.readCapacityUnits:wE,WriteCapacityUnits:e&&e.writeCapacityUnits?e.writeCapacityUnits:EE}};try{return await this.client.createTable(r)}catch(n){if(n.__type&&n.__type.includes("ResourceInUseException"))return null;throw n}}async _get(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}}},n=await this.client.getItem(r);return n.Item?new wo(n.Item.key.S,Number(n.Item.points.N),Number(n.Item.expire.N)):null}async _delete(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}},ConditionExpression:"attribute_exists(#k)",ExpressionAttributeNames:{"#k":"key"}};try{return(await this._client.deleteItem(r)).$metadata.httpStatusCode===200}catch(n){if(n.__type&&n.__type.includes("ConditionalCheckFailedException"))return!1;throw n}}async _upsert(e,r,n,i=!1,s={}){if(!this.tableCreated)throw new Error("Table is not created yet");let o=Date.now(),a=o/1e3,c=n>0?(o+n)/1e3:-1;if(i)return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :points, expire = :expire",ExpressionAttributeValues:{":points":{N:r.toString()},":expire":{N:c.toString()}},ReturnValues:"ALL_NEW"});try{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :new_points, expire = :new_expire",ExpressionAttributeValues:{":new_points":{N:r.toString()},":new_expire":{N:c.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire <= :where_expire OR attribute_not_exists(points)",ReturnValues:"ALL_NEW"})}catch{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = points + :new_points",ExpressionAttributeValues:{":new_points":{N:r.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire > :where_expire",ReturnValues:"ALL_NEW"})}}async _baseUpsert(e){if(!this.tableCreated)throw new Error("Table is not created yet");try{let r=await this.client.updateItem(e);return new wo(r.Attributes.key.S,Number(r.Attributes.points.N),Number(r.Attributes.expire.N))}catch(r){throw r}}async _setTTL(){if(!this.tableCreated)throw new Error("Table is not created yet");try{if(await this._isTTLSet())return;let r={TableName:this.tableName,TimeToLiveSpecification:{AttributeName:"expire",Enabled:!0}};return await this.client.updateTimeToLive(r)}catch(e){throw e}}async _isTTLSet(){if(!this.tableCreated)throw new Error("Table is not created yet");try{let e=await this.client.describeTimeToLive({TableName:this.tableName});return e.$metadata.httpStatusCode==200&&e.TimeToLiveDescription.TimeToLiveStatus==="ENABLED"&&e.TimeToLiveDescription.AttributeName==="expire"}catch(e){throw e}}_getRateLimiterRes(e,r,n){let i=new xE;return i.isFirstInDuration=r===n.points,i.consumedPoints=i.isFirstInDuration?r:n.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.expire!=-1?Math.max(n.expire*1e3-Date.now(),0):-1,i}};nm.exports=nl});var om=q((a6,sm)=>{var vE=wp(),_E=_p(),SE=Ap(),AE=Rp(),{RateLimiterClusterMaster:IE,RateLimiterClusterMasterPM2:RE,RateLimiterCluster:CE}=qp(),TE=Xu(),BE=$p(),LE=Gp(),DE=Yp(),PE=em(),NE=rm(),kE=ht(),OE=im();sm.exports={RateLimiterRedis:vE,RateLimiterMongo:_E,RateLimiterMySQL:SE,RateLimiterPostgres:AE,RateLimiterMemory:TE,RateLimiterMemcache:BE,RateLimiterClusterMaster:IE,RateLimiterClusterMasterPM2:RE,RateLimiterCluster:CE,RLWrapperBlackAndWhite:LE,RateLimiterUnion:DE,RateLimiterQueue:PE,BurstyRateLimiter:NE,RateLimiterRes:kE,RateLimiterDynamo:OE}});var cv={};Ue(cv,{createLibp2p:()=>av});var D4=we(li(),1),P4=we(Wf(),1);var Yf=Symbol.for("@libp2p/connection");var xa=Symbol.for("@libp2p/content-routing");var ba=Symbol.for("@libp2p/peer-discovery");var wa=Symbol.for("@libp2p/peer-id");function ds(t){return t!=null&&!!t[wa]}var Ea=Symbol.for("@libp2p/peer-routing");var Qf="keep-alive";var Xf;(function(t){t.Accept="accept",t.Ignore="ignore",t.Reject="reject"})(Xf||(Xf={}));var $v=Symbol.for("@libp2p/transport");var mr;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(mr||(mr={}));var yr=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},S=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}},ps=class extends AggregateError{code;props;constructor(e,r,n,i){super(e,r),this.code=n,this.name=i?.name??"AggregateCodeError",this.props=i??{}}};var ms="ERR_TIMEOUT";var qr=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r={}){return this.dispatchEvent(new _a(e,r))}},va=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},_a=globalThis.CustomEvent??va;var wt=(t,...e)=>{try{[...e]}catch{}};function Zf(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var r2=we(fe(),1);function gr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}var Ca={};Ue(Ca,{base10:()=>fx});var v_=new Uint8Array(0);function jf(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function Jt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function Jf(t){return new TextEncoder().encode(t)}function e0(t){return new TextDecoder().decode(t)}function ox(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,A=new Uint8Array(b);g!==x;){for(var E=h[g],_=0,T=b-1;(E!==0||_<y)&&T!==-1;T--,_++)E+=256*A[T]>>>0,A[T]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=_,g++}for(var D=b-y;D!==b&&A[D]===0;)D++;for(var z=c.repeat(m);D<b;++D)z+=t.charAt(A[D]);return z}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var A=r[h.charCodeAt(m)];if(A===255)return;for(var E=0,_=x-1;(A!==0||E<g)&&_!==-1;_--,E++)A+=a*b[_]>>>0,b[_]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");g=E,m++}if(h[m]!==" "){for(var T=x-g;T!==x&&b[T]===0;)T++;for(var D=new Uint8Array(y+(x-T)),z=y;T!==x;)D[z++]=b[T++];return D}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var ax=ox,cx=ax,r0=cx;var Sa=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Aa=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return n0(this,e)}},Ia=class{decoders;constructor(e){this.decoders=e}or(e){return n0(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function n0(t,e){return new Ia({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var Ra=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Sa(e,r,n),this.decoder=new Aa(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function En({name:t,prefix:e,encode:r,decode:n}){return new Ra(t,e,r,n)}function xr({name:t,prefix:e,alphabet:r}){let{encode:n,decode:i}=r0(r,t);return En({prefix:e,name:t,encode:n,decode:s=>Jt(i(s))})}function ux(t,e,r,n){let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function lx(t,e,r){let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o!==0&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s}function _e({name:t,prefix:e,bitsPerChar:r,alphabet:n}){return En({prefix:e,name:t,encode(i){return lx(i,n,r)},decode(i){return ux(i,n,r,t)}})}var fx=xr({prefix:"9",name:"base10",alphabet:"0123456789"});var Ta={};Ue(Ta,{base16:()=>hx,base16upper:()=>dx});var hx=_e({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),dx=_e({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ba={};Ue(Ba,{base2:()=>px});var px=_e({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var La={};Ue(La,{base256emoji:()=>bx});var i0=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}"),mx=i0.reduce((t,e,r)=>(t[r]=e,t),[]),yx=i0.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function gx(t){return t.reduce((e,r)=>(e+=mx[r],e),"")}function xx(t){let e=[];for(let r of t){let n=yx[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var bx=En({prefix:"\u{1F680}",name:"base256emoji",encode:gx,decode:xx});var Da={};Ue(Da,{base32:()=>dt,base32hex:()=>_x,base32hexpad:()=>Ax,base32hexpadupper:()=>Ix,base32hexupper:()=>Sx,base32pad:()=>Ex,base32padupper:()=>vx,base32upper:()=>wx,base32z:()=>Rx});var dt=_e({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),wx=_e({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ex=_e({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),vx=_e({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),_x=_e({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Sx=_e({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ax=_e({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ix=_e({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Rx=_e({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Pa={};Ue(Pa,{base36:()=>Cx,base36upper:()=>Tx});var Cx=xr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Tx=xr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Na={};Ue(Na,{base58btc:()=>Ie,base58flickr:()=>Bx});var Ie=xr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Bx=xr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ka={};Ue(ka,{base64:()=>vn,base64pad:()=>Lx,base64url:()=>Dx,base64urlpad:()=>Px});var vn=_e({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Lx=_e({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Dx=_e({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Px=_e({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Oa={};Ue(Oa,{base8:()=>Nx});var Nx=_e({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ma={};Ue(Ma,{identity:()=>kx});var kx=En({prefix:"\0",name:"identity",encode:t=>e0(t),decode:t=>Jf(t)});var U_=new TextEncoder,F_=new TextDecoder;var Fa={};Ue(Fa,{identity:()=>br});var Ux=a0,s0=128,Fx=127,Kx=~Fx,qx=Math.pow(2,31);function a0(t,e,r){e=e||[],r=r||0;for(var n=r;t>=qx;)e[r++]=t&255|s0,t/=128;for(;t&Kx;)e[r++]=t&255|s0,t>>>=7;return e[r]=t|0,a0.bytes=r-n+1,e}var Vx=Ua,$x=128,o0=127;function Ua(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Ua.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&o0)<<i:(o&o0)*Math.pow(2,i),i+=7}while(o>=$x);return Ua.bytes=s-n,r}var zx=Math.pow(2,7),Hx=Math.pow(2,14),Gx=Math.pow(2,21),Wx=Math.pow(2,28),Yx=Math.pow(2,35),Qx=Math.pow(2,42),Xx=Math.pow(2,49),Zx=Math.pow(2,56),jx=Math.pow(2,63),Jx=function(t){return t<zx?1:t<Hx?2:t<Gx?3:t<Wx?4:t<Yx?5:t<Qx?6:t<Xx?7:t<Zx?8:t<jx?9:10},e1={encode:Ux,decode:Vx,encodingLength:Jx},t1=e1,pi=t1;function mi(t,e=0){return[pi.decode(t,e),pi.decode.bytes]}function _n(t,e,r=0){return pi.encode(t,e,r),e}function Sn(t){return pi.encodingLength(t)}function $t(t,e){let r=e.byteLength,n=Sn(t),i=n+Sn(r),s=new Uint8Array(i+r);return _n(t,s,0),_n(r,s,n),s.set(e,i),new An(t,r,e,s)}function Vr(t){let e=Jt(t),[r,n]=mi(e),[i,s]=mi(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new An(r,i,o,e)}function c0(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&jf(t.bytes,r.bytes)}}var An=class{code;size;digest;bytes;constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var u0=0,r1="identity",l0=Jt;function n1(t){return $t(u0,l0(t))}var br={code:u0,name:r1,encode:l0,digest:n1};var Va={};Ue(Va,{sha256:()=>Ge,sha512:()=>i1});function qa({name:t,code:e,encode:r}){return new Ka(t,e,r)}var Ka=class{name;code;encode;constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?$t(this.code,r):r.then(n=>$t(this.code,n))}else throw Error("Unknown type, must be binary type")}};function h0(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var Ge=qa({name:"sha2-256",code:18,encode:h0("SHA-256")}),i1=qa({name:"sha2-512",code:19,encode:h0("SHA-512")});function d0(t,e){let{bytes:r,version:n}=t;switch(n){case 0:return o1(r,$a(t),e??Ie.encoder);default:return a1(r,$a(t),e??dt.encoder)}}var p0=new WeakMap;function $a(t){let e=p0.get(t);if(e==null){let r=new Map;return p0.set(t,r),r}return e}var Ct=class t{code;version;multihash;bytes;"/";constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==yi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==c1)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:r}=this.multihash,n=$t(e,r);return t.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&c0(e.multihash,n.multihash)}toString(e){return d0(this,e)}toJSON(){return{"/":d0(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new t(n,i,s,o??m0(n,i,s.bytes))}else if(r[u1]===!0){let{version:n,multihash:i,code:s}=r,o=Vr(i);return t.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==yi)throw new Error(`Version 0 CID must use dag-pb (code: ${yi}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let i=m0(e,r,n.bytes);return new t(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,yi,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,i=Jt(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new An(r.multihashCode,r.digestSize,s,i);return[r.version===0?t.createV0(o):t.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,d]=mi(e.subarray(r));return r+=d,f},i=n(),s=yi;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=s1(e,r),s=t.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return $a(s).set(n,e),s}};function s1(t,e){switch(t[0]){case"Q":{let r=e??Ie;return[Ie.prefix,r.decode(`${Ie.prefix}${t}`)]}case Ie.prefix:{let r=e??Ie;return[Ie.prefix,r.decode(t)]}case dt.prefix:{let r=e??dt;return[dt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function o1(t,e,r){let{prefix:n}=r;if(n!==Ie.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i}function a1(t,e,r){let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i}var yi=112,c1=18;function m0(t,e,r){let n=Sn(t),i=n+Sn(e),s=new Uint8Array(i+r.byteLength);return _n(t,s,0),_n(e,s,n),s.set(r,i),s}var u1=Symbol.for("@ipld/js-cid/CID");var wr={...Ma,...Ba,...Oa,...Ca,...Ta,...Da,...Pa,...Na,...ka,...La},oS={...Va,...Fa};function er(t=0){return globalThis.Buffer?.alloc!=null?gr(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Je(t=0){return globalThis.Buffer?.allocUnsafe!=null?gr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function g0(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var y0=g0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),za=g0("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Je(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),l1={utf8:y0,"utf-8":y0,hex:wr.base16,latin1:za,ascii:za,binary:za,...wr},gs=l1;function Y(t,e="utf8"){let r=gs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?gr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var vc={};Ue(vc,{Ed25519PrivateKey:()=>Qr,Ed25519PublicKey:()=>_i,generateKeyPair:()=>Ib,generateKeyPairFromSeed:()=>J0,unmarshalEd25519PrivateKey:()=>Sb,unmarshalEd25519PublicKey:()=>Ab});function Ee(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var vS=we(Le(),1),_S=we(us(),1),x0=we(fe(),1);function Re(t,e){if(globalThis.Buffer!=null)return gr(globalThis.Buffer.concat(t,e));e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Je(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return gr(r)}function ie(t,e="utf8"){let r=gs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function Tt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Re([new Uint8Array(e-r.length),r])}return ie(r,"base64url")}function pt(t){let e=b0(t);return new x0.default.jsbn.BigInteger(ie(e,"base16"),16)}function b0(t,e){let r=Y(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Re([new Uint8Array(e-r.length),r])}return r}function Et(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}function w0(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function f1(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}function Ha(t,...e){if(!f1(t))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function E0(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");w0(t.outputLen),w0(t.blockLen)}function In(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function v0(t,e){Ha(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var xs=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function _0(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var bs=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Bt=(t,e)=>t<<32-e|t>>>e,h1=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!h1)throw new Error("Non little-endian hardware is not supported");function Ga(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function gi(t){if(typeof t=="string"&&(t=Ga(t)),!_0(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}function ws(...t){let e=0;for(let n=0;n<t.length;n++){let i=t[n];if(!_0(i))throw new Error("Uint8Array expected");e+=i.length}let r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var Rn=class{clone(){return this._cloneInto()}},LS={}.toString;function Es(t){let e=n=>t().update(gi(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function Cn(t=32){if(xs&&typeof xs.getRandomValues=="function")return xs.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function d1(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}var Tn=class extends Rn{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=bs(this.buffer)}update(e){In(this);let{view:r,buffer:n,blockLen:i}=this;e=gi(e);let s=e.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=bs(e);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){In(this),v0(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;d1(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=bs(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%r&&e.buffer.set(n),e}};var vs=BigInt(4294967295),Wa=BigInt(32);function S0(t,e=!1){return e?{h:Number(t&vs),l:Number(t>>Wa&vs)}:{h:Number(t>>Wa&vs)|0,l:Number(t&vs)|0}}function p1(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){let{h:s,l:o}=S0(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}var m1=(t,e)=>BigInt(t>>>0)<<Wa|BigInt(e>>>0),y1=(t,e,r)=>t>>>r,g1=(t,e,r)=>t<<32-r|e>>>r,x1=(t,e,r)=>t>>>r|e<<32-r,b1=(t,e,r)=>t<<32-r|e>>>r,w1=(t,e,r)=>t<<64-r|e>>>r-32,E1=(t,e,r)=>t>>>r-32|e<<64-r,v1=(t,e)=>e,_1=(t,e)=>t,S1=(t,e,r)=>t<<r|e>>>32-r,A1=(t,e,r)=>e<<r|t>>>32-r,I1=(t,e,r)=>e<<r-32|t>>>64-r,R1=(t,e,r)=>t<<r-32|e>>>64-r;function C1(t,e,r,n){let i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:i|0}}var T1=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),B1=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,L1=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),D1=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,P1=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0),N1=(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0;var k1={fromBig:S0,split:p1,toBig:m1,shrSH:y1,shrSL:g1,rotrSH:x1,rotrSL:b1,rotrBH:w1,rotrBL:E1,rotr32H:v1,rotr32L:_1,rotlSH:S1,rotlSL:A1,rotlBH:I1,rotlBL:R1,add:C1,add3L:T1,add3H:B1,add4L:L1,add4H:D1,add5H:N1,add5L:P1},X=k1;var[O1,M1]=X.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(t=>BigInt(t))),Er=new Uint32Array(80),vr=new Uint32Array(80),Ya=class extends Tn{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:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:p,Gl:h,Hh:m,Hl:y}=this;return[e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y]}set(e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=m|0,this.Hl=y|0}process(e,r){for(let b=0;b<16;b++,r+=4)Er[b]=e.getUint32(r),vr[b]=e.getUint32(r+=4);for(let b=16;b<80;b++){let A=Er[b-15]|0,E=vr[b-15]|0,_=X.rotrSH(A,E,1)^X.rotrSH(A,E,8)^X.shrSH(A,E,7),T=X.rotrSL(A,E,1)^X.rotrSL(A,E,8)^X.shrSL(A,E,7),D=Er[b-2]|0,z=vr[b-2]|0,G=X.rotrSH(D,z,19)^X.rotrBH(D,z,61)^X.shrSH(D,z,6),$=X.rotrSL(D,z,19)^X.rotrBL(D,z,61)^X.shrSL(D,z,6),J=X.add4L(T,$,vr[b-7],vr[b-16]),le=X.add4H(J,_,G,Er[b-7],Er[b-16]);Er[b]=le|0,vr[b]=J|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:p,Fl:h,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let A=X.rotrSH(f,d,14)^X.rotrSH(f,d,18)^X.rotrBH(f,d,41),E=X.rotrSL(f,d,14)^X.rotrSL(f,d,18)^X.rotrBL(f,d,41),_=f&p^~f&m,T=d&h^~d&y,D=X.add5L(x,E,T,M1[b],vr[b]),z=X.add5H(D,g,A,_,O1[b],Er[b]),G=D|0,$=X.rotrSH(n,i,28)^X.rotrBH(n,i,34)^X.rotrBH(n,i,39),J=X.rotrSL(n,i,28)^X.rotrBL(n,i,34)^X.rotrBL(n,i,39),le=n&s^n&a^s&a,$e=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=h|0,p=f|0,h=d|0,{h:f,l:d}=X.add(u|0,l|0,z|0,G|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let B=X.add3L(G,J,$e);n=X.add3H(B,z,$,le),i=B|0}({h:n,l:i}=X.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=X.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=X.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=X.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=X.add(this.Eh|0,this.El|0,f|0,d|0),{h:p,l:h}=X.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:m,l:y}=X.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=X.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x)}roundClean(){Er.fill(0),vr.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 Qa=Es(()=>new Ya);var Ss={};Ue(Ss,{bitGet:()=>z1,bitLen:()=>$1,bitMask:()=>xi,bitSet:()=>H1,bytesToHex:()=>rr,bytesToNumberBE:()=>nr,bytesToNumberLE:()=>_r,concatBytes:()=>ir,createHmacDrbg:()=>ja,ensureBytes:()=>Se,equalBytes:()=>q1,hexToBytes:()=>zr,hexToNumber:()=>Za,isBytes:()=>Lt,numberToBytesBE:()=>Sr,numberToBytesLE:()=>Hr,numberToHexUnpadded:()=>C0,numberToVarBytesBE:()=>K1,utf8ToBytes:()=>V1,validateObject:()=>zt});var R0=BigInt(0),_s=BigInt(1),U1=BigInt(2);function Lt(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var F1=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function rr(t){if(!Lt(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=F1[t[r]];return e}function C0(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Za(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return BigInt(t===""?"0":`0x${t}`)}var tr={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function A0(t){if(t>=tr._0&&t<=tr._9)return t-tr._0;if(t>=tr._A&&t<=tr._F)return t-(tr._A-10);if(t>=tr._a&&t<=tr._f)return t-(tr._a-10)}function zr(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);let e=t.length,r=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let i=0,s=0;i<r;i++,s+=2){let o=A0(t.charCodeAt(s)),a=A0(t.charCodeAt(s+1));if(o===void 0||a===void 0){let c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[i]=o*16+a}return n}function nr(t){return Za(rr(t))}function _r(t){if(!Lt(t))throw new Error("Uint8Array expected");return Za(rr(Uint8Array.from(t).reverse()))}function Sr(t,e){return zr(t.toString(16).padStart(e*2,"0"))}function Hr(t,e){return Sr(t,e).reverse()}function K1(t){return zr(C0(t))}function Se(t,e,r){let n;if(typeof e=="string")try{n=zr(e)}catch(s){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Lt(e))n=Uint8Array.from(e);else throw new Error(`${t} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function ir(...t){let e=0;for(let i=0;i<t.length;i++){let s=t[i];if(!Lt(s))throw new Error("Uint8Array expected");e+=s.length}let r=new Uint8Array(e),n=0;for(let i=0;i<t.length;i++){let s=t[i];r.set(s,n),n+=s.length}return r}function q1(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function V1(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function $1(t){let e;for(e=0;t>R0;t>>=_s,e+=1);return e}function z1(t,e){return t>>BigInt(e)&_s}var H1=(t,e,r)=>t|(r?_s:R0)<<BigInt(e),xi=t=>(U1<<BigInt(t-1))-_s,Xa=t=>new Uint8Array(t),I0=t=>Uint8Array.from(t);function ja(t,e,r){if(typeof t!="number"||t<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 r!="function")throw new Error("hmacFn must be a function");let n=Xa(t),i=Xa(t),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Xa())=>{i=a(I0([0]),f),n=a(),f.length!==0&&(i=a(I0([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,d=[];for(;f<e;){n=a();let p=n.slice();d.push(p),f+=n.length}return ir(...d)};return(f,d)=>{o(),c(f);let p;for(;!(p=d(u()));)c();return o(),p}}var G1={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||Lt(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function zt(t,e,r={}){let n=(i,s,o)=>{let a=G1[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(e))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return t}var Oe=BigInt(0),ge=BigInt(1),Gr=BigInt(2),W1=BigInt(3),Ja=BigInt(4),T0=BigInt(5),B0=BigInt(8),Y1=BigInt(9),Q1=BigInt(16);function he(t,e){let r=t%e;return r>=Oe?r:e+r}function X1(t,e,r){if(r<=Oe||e<Oe)throw new Error("Expected power/modulo > 0");if(r===ge)return Oe;let n=ge;for(;e>Oe;)e&ge&&(n=n*t%r),t=t*t%r,e>>=ge;return n}function xe(t,e,r){let n=t;for(;e-- >Oe;)n*=n,n%=r;return n}function As(t,e){if(t===Oe||e<=Oe)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=he(t,e),n=e,i=Oe,s=ge,o=ge,a=Oe;for(;r!==Oe;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==ge)throw new Error("invert: does not exist");return he(i,e)}function Z1(t){let e=(t-ge)/Gr,r,n,i;for(r=t-ge,n=0;r%Gr===Oe;r/=Gr,n++);for(i=Gr;i<t&&X1(i,e,t)!==t-ge;i++);if(n===1){let o=(t+ge)/Ja;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+ge)/Gr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),d=a.pow(c,r);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(d);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let h=a.pow(l,ge<<BigInt(u-p-1));l=a.sqr(h),f=a.mul(f,h),d=a.mul(d,l),u=p}return f}}function j1(t){if(t%Ja===W1){let e=(t+ge)/Ja;return function(n,i){let s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(t%B0===T0){let e=(t-T0)/B0;return function(n,i){let s=n.mul(i,Gr),o=n.pow(s,e),a=n.mul(i,o),c=n.mul(n.mul(a,Gr),o),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return t%Q1,Z1(t)}var L0=(t,e)=>(he(t,e)&ge)===ge,J1=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ec(t){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=J1.reduce((n,i)=>(n[i]="function",n),e);return zt(t,r)}function eb(t,e,r){if(r<Oe)throw new Error("Expected power > 0");if(r===Oe)return t.ONE;if(r===ge)return e;let n=t.ONE,i=e;for(;r>Oe;)r&ge&&(n=t.mul(n,i)),i=t.sqr(i),r>>=ge;return n}function tb(t,e){let r=new Array(e.length),n=e.reduce((s,o,a)=>t.is0(o)?s:(r[a]=s,t.mul(s,o)),t.ONE),i=t.inv(n);return e.reduceRight((s,o,a)=>t.is0(o)?s:(r[a]=t.mul(s,r[a]),t.mul(s,o)),i),r}function tc(t,e){let r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Is(t,e,r=!1,n={}){if(t<=Oe)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:i,nByteLength:s}=tc(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=j1(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:xi(i),ZERO:Oe,ONE:ge,create:c=>he(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Oe<=c&&c<t},is0:c=>c===Oe,isOdd:c=>(c&ge)===ge,neg:c=>he(-c,t),eql:(c,u)=>c===u,sqr:c=>he(c*c,t),add:(c,u)=>he(c+u,t),sub:(c,u)=>he(c-u,t),mul:(c,u)=>he(c*u,t),pow:(c,u)=>eb(a,c,u),div:(c,u)=>he(c*As(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>As(c,t),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>tb(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?Hr(c,s):Sr(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?_r(c):nr(c)}});return Object.freeze(a)}function D0(t,e){if(!t.isOdd)throw new Error("Field doesn't have isOdd");let r=t.sqrt(e);return t.isOdd(r)?t.neg(r):r}function P0(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function rc(t){let e=P0(t);return e+Math.ceil(e/2)}function N0(t,e,r=!1){let n=t.length,i=P0(e),s=rc(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?nr(t):_r(t),a=he(o,e-ge)+ge;return r?Hr(a,i):Sr(a,i)}var nb=BigInt(0),nc=BigInt(1);function Rs(t,e){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=t.ZERO,a=i;for(;s>nb;)s&nc&&(o=o.add(a)),a=a.double(),s>>=nc;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let d=1;d<a;d++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=t.ZERO,l=t.BASE,f=BigInt(2**i-1),d=2**i,p=BigInt(i);for(let h=0;h<a;h++){let m=h*c,y=Number(o&f);o>>=p,y>c&&(y-=d,o+=nc);let g=m,x=m+Math.abs(y)-1,b=h%2!==0,A=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(A,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function bi(t){return ec(t.Fp),zt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...tc(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var Dt=BigInt(0),mt=BigInt(1),Cs=BigInt(2),ib=BigInt(8),sb={zip215:!0};function ob(t){let e=bi(t);return zt(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Ts(t){let e=ob(t),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=Cs<<BigInt(a*8)-mt,l=r.create,f=e.uvRatio||((N,R)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(R))}}catch{return{isValid:!1,value:Dt}}}),d=e.adjustScalarBytes||(N=>N),p=e.domain||((N,R,U)=>{if(R.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),h=N=>typeof N=="bigint"&&Dt<N,m=(N,R)=>h(N)&&h(R)&&N<R,y=N=>N===Dt||m(N,u);function g(N,R){if(m(N,R))return N;throw new Error(`Expected valid scalar < ${R}, got ${typeof N} ${N}`)}function x(N){return N===Dt?N:g(N,n)}let b=new Map;function A(N){if(!(N instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(R,U,K,H){if(this.ex=R,this.ey=U,this.ez=K,this.et=H,!y(R))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(K))throw new Error("z required");if(!y(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(R){if(R instanceof E)throw new Error("extended point not allowed");let{x:U,y:K}=R||{};if(!y(U)||!y(K))throw new Error("invalid affine point");return new E(U,K,mt,l(U*K))}static normalizeZ(R){let U=r.invertBatch(R.map(K=>K.ez));return R.map((K,H)=>K.toAffine(U[H])).map(E.fromAffine)}_setWindowSize(R){this._WINDOW_SIZE=R,b.delete(this)}assertValidity(){let{a:R,d:U}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:K,ey:H,ez:Z,et:ee}=this,ce=l(K*K),te=l(H*H),se=l(Z*Z),Be=l(se*se),ve=l(ce*R),ze=l(se*l(ve+te)),He=l(Be+l(U*l(ce*te)));if(ze!==He)throw new Error("bad point: equation left != right (1)");let ke=l(K*H),je=l(Z*ee);if(ke!==je)throw new Error("bad point: equation left != right (2)")}equals(R){A(R);let{ex:U,ey:K,ez:H}=this,{ex:Z,ey:ee,ez:ce}=R,te=l(U*ce),se=l(Z*H),Be=l(K*ce),ve=l(ee*H);return te===se&&Be===ve}is0(){return this.equals(E.ZERO)}negate(){return new E(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:R}=e,{ex:U,ey:K,ez:H}=this,Z=l(U*U),ee=l(K*K),ce=l(Cs*l(H*H)),te=l(R*Z),se=U+K,Be=l(l(se*se)-Z-ee),ve=te+ee,ze=ve-ce,He=te-ee,ke=l(Be*ze),je=l(ve*He),Qt=l(Be*He),kr=l(ze*ve);return new E(ke,je,kr,Qt)}add(R){A(R);let{a:U,d:K}=e,{ex:H,ey:Z,ez:ee,et:ce}=this,{ex:te,ey:se,ez:Be,et:ve}=R;if(U===BigInt(-1)){let _l=l((Z-H)*(se+te)),Sl=l((Z+H)*(se-te)),Qo=l(Sl-_l);if(Qo===Dt)return this.double();let Al=l(ee*Cs*ve),Il=l(ce*Cs*Be),Rl=Il+Al,Cl=Sl+_l,Tl=Il-Al,Im=l(Rl*Qo),Rm=l(Cl*Tl),Cm=l(Rl*Tl),Tm=l(Qo*Cl);return new E(Im,Rm,Tm,Cm)}let ze=l(H*te),He=l(Z*se),ke=l(ce*K*ve),je=l(ee*Be),Qt=l((H+Z)*(te+se)-ze-He),kr=je-ke,oi=je+ke,vl=l(He-U*ze),vm=l(Qt*kr),_m=l(oi*vl),Sm=l(Qt*vl),Am=l(kr*oi);return new E(vm,_m,Am,Sm)}subtract(R){return this.add(R.negate())}wNAF(R){return D.wNAFCached(this,b,R,E.normalizeZ)}multiply(R){let{p:U,f:K}=this.wNAF(g(R,n));return E.normalizeZ([U,K])[0]}multiplyUnsafe(R){let U=x(R);return U===Dt?T:this.equals(T)||U===mt?this:this.equals(_)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(R){let{ex:U,ey:K,ez:H}=this,Z=this.is0();R==null&&(R=Z?ib:r.inv(H));let ee=l(U*R),ce=l(K*R),te=l(H*R);if(Z)return{x:Dt,y:mt};if(te!==mt)throw new Error("invZ was invalid");return{x:ee,y:ce}}clearCofactor(){let{h:R}=e;return R===mt?this:this.multiplyUnsafe(R)}static fromHex(R,U=!1){let{d:K,a:H}=e,Z=r.BYTES;R=Se("pointHex",R,Z);let ee=R.slice(),ce=R[Z-1];ee[Z-1]=ce&-129;let te=_r(ee);te===Dt||(U?g(te,u):g(te,r.ORDER));let se=l(te*te),Be=l(se-mt),ve=l(K*se-H),{isValid:ze,value:He}=f(Be,ve);if(!ze)throw new Error("Point.fromHex: invalid y coordinate");let ke=(He&mt)===mt,je=(ce&128)!==0;if(!U&&He===Dt&&je)throw new Error("Point.fromHex: x=0 and x_0=1");return je!==ke&&(He=l(-He)),E.fromAffine({x:He,y:te})}static fromPrivateKey(R){return $(R).point}toRawBytes(){let{x:R,y:U}=this.toAffine(),K=Hr(U,r.BYTES);return K[K.length-1]|=R&mt?128:0,K}toHex(){return rr(this.toRawBytes())}}E.BASE=new E(e.Gx,e.Gy,mt,l(e.Gx*e.Gy)),E.ZERO=new E(Dt,mt,mt,Dt);let{BASE:_,ZERO:T}=E,D=Rs(E,a*8);function z(N){return he(N,n)}function G(N){return z(_r(N))}function $(N){let R=a;N=Se("private key",N,R);let U=Se("hashed private key",s(N),2*R),K=d(U.slice(0,R)),H=U.slice(R,2*R),Z=G(K),ee=_.multiply(Z),ce=ee.toRawBytes();return{head:K,prefix:H,scalar:Z,point:ee,pointBytes:ce}}function J(N){return $(N).pointBytes}function le(N=new Uint8Array,...R){let U=ir(...R);return G(s(p(U,Se("context",N),!!i)))}function $e(N,R,U={}){N=Se("message",N),i&&(N=i(N));let{prefix:K,scalar:H,pointBytes:Z}=$(R),ee=le(U.context,K,N),ce=_.multiply(ee).toRawBytes(),te=le(U.context,ce,Z,N),se=z(ee+te*H);x(se);let Be=ir(ce,Hr(se,r.BYTES));return Se("result",Be,a*2)}let B=sb;function k(N,R,U,K=B){let{context:H,zip215:Z}=K,ee=r.BYTES;N=Se("signature",N,2*ee),R=Se("message",R),i&&(R=i(R));let ce=_r(N.slice(ee,2*ee)),te,se,Be;try{te=E.fromHex(U,Z),se=E.fromHex(N.slice(0,ee),Z),Be=_.multiplyUnsafe(ce)}catch{return!1}if(!Z&&te.isSmallOrder())return!1;let ve=le(H,se.toRawBytes(),te.toRawBytes(),R);return se.add(te.multiplyUnsafe(ve)).subtract(Be).clearCofactor().equals(E.ZERO)}return _._setWindowSize(8),{CURVE:e,getPublicKey:J,sign:$e,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:$,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,R=E.BASE){return R._setWindowSize(N),R.multiply(BigInt(3)),R}}}}var sc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),k0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),JS=BigInt(0),ab=BigInt(1),ic=BigInt(2),cb=BigInt(5),O0=BigInt(10),ub=BigInt(20),lb=BigInt(40),M0=BigInt(80);function fb(t){let e=sc,n=t*t%e*t%e,i=xe(n,ic,e)*n%e,s=xe(i,ab,e)*t%e,o=xe(s,cb,e)*s%e,a=xe(o,O0,e)*o%e,c=xe(a,ub,e)*a%e,u=xe(c,lb,e)*c%e,l=xe(u,M0,e)*u%e,f=xe(l,M0,e)*u%e,d=xe(f,O0,e)*o%e;return{pow_p_5_8:xe(d,ic,e)*t%e,b2:n}}function hb(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function db(t,e){let r=sc,n=he(e*e*e,r),i=he(n*n*e,r),s=fb(t*i).pow_p_5_8,o=he(t*n*s,r),a=he(e*o*o,r),c=o,u=he(o*k0,r),l=a===t,f=a===he(-t,r),d=a===he(-t*k0,r);return l&&(o=c),(f||d)&&(o=u),L0(o,r)&&(o=he(-o,r)),{isValid:l||f,value:o}}var sr=Is(sc,void 0,!0),oc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:sr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Qa,randomBytes:Cn,adjustScalarBytes:hb,uvRatio:db},Bn=Ts(oc);function U0(t,e,r){if(e.length>255)throw new Error("Context is too big");return ws(Ga("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,e.length]),e,t)}var eA=Ts({...oc,domain:U0}),tA=Ts({...oc,domain:U0,prehash:Qa});var pb=(sr.ORDER+BigInt(3))/BigInt(8),rA=sr.pow(ic,pb),nA=sr.sqrt(sr.neg(sr.ONE)),iA=(sr.ORDER-BigInt(5))/BigInt(8),sA=BigInt(486662);var oA=D0(sr,sr.neg(BigInt(486664)));var aA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),cA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),uA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),lA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var fA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Ln=32,or=64,Bs=32;function F0(){let t=Bn.utils.randomPrivateKey(),e=Bn.getPublicKey(t);return{privateKey:$0(t,e),publicKey:e}}function K0(t){if(t.length!==Bs)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=Bn.getPublicKey(e);return{privateKey:$0(e,r),publicKey:r}}function q0(t,e){let r=t.subarray(0,Bs);return Bn.sign(e instanceof Uint8Array?e:e.subarray(),r)}function V0(t,e,r){return Bn.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}function $0(t,e){let r=new Uint8Array(or);for(let n=0;n<Bs;n++)r[n]=t[n],r[Bs+n]=e[n];return r}var ct={get(t=globalThis){let e=t.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var ac={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function cc(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=ct.get();r*=8;async function c(f,d){let p=a.getRandomValues(new Uint8Array(s)),h=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:h};typeof d=="string"&&(d=Y(d));let y;if(d.length===0){y=await a.subtle.importKey("jwk",ac,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",ac,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return Re([p,m.iv,new Uint8Array(g)])}async function u(f,d){let p=f.subarray(0,s),h=f.subarray(s,s+n),m=f.subarray(s+n),y={name:e,iv:h};typeof d=="string"&&(d=Y(d));let g;if(d.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},A=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,A,{name:e,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",ac,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},A=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,A,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Dn(t,e){let n=await cc().encrypt(t,e);return vn.encode(n)}var uc=new Float32Array([-0]),Ar=new Uint8Array(uc.buffer);function H0(t,e,r){uc[0]=t,e[r]=Ar[0],e[r+1]=Ar[1],e[r+2]=Ar[2],e[r+3]=Ar[3]}function G0(t,e){return Ar[0]=t[e],Ar[1]=t[e+1],Ar[2]=t[e+2],Ar[3]=t[e+3],uc[0]}var lc=new Float64Array([-0]),et=new Uint8Array(lc.buffer);function W0(t,e,r){lc[0]=t,e[r]=et[0],e[r+1]=et[1],e[r+2]=et[2],e[r+3]=et[3],e[r+4]=et[4],e[r+5]=et[5],e[r+6]=et[6],e[r+7]=et[7]}function Y0(t,e){return et[0]=t[e],et[1]=t[e+1],et[2]=t[e+2],et[3]=t[e+3],et[4]=t[e+4],et[5]=t[e+5],et[6]=t[e+6],et[7]=t[e+7],lc[0]}var yb=BigInt(Number.MAX_SAFE_INTEGER),gb=BigInt(Number.MIN_SAFE_INTEGER),ut=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return Wr;if(e<yb&&e>gb)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,i=e-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Q0&&(i=0n,++n>Q0&&(n=0n))),new t(Number(i),Number(n))}static fromNumber(e){if(e===0)return Wr;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new t(n,i)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):Wr}},Wr=new ut(0,0);Wr.toBigInt=function(){return 0n};Wr.zzEncode=Wr.zzDecode=function(){return this};Wr.length=function(){return 1};var Q0=4294967296n;function X0(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Z0(t,e,r){if(r-e<1)return"";let i,s=[],o=0,a;for(;e<r;)a=t[e++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function fc(t,e,r){let n=r,i,s;for(let o=0;o<t.length;++o)i=t.charCodeAt(o),i<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=i&63|128):(i&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=i&63|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=i&63|128);return r-n}function Pt(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Ls(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var hc=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,Pt(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 Pt(this,4);return Ls(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Pt(this,4);return Ls(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Pt(this,4);let e=G0(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Pt(this,4);let e=Y0(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Pt(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return Z0(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Pt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Pt(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 ut(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Pt(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Pt(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Pt(this,8);let e=Ls(this.buf,this.pos+=4),r=Ls(this.buf,this.pos+=4);return new ut(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}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 dc(t){return new hc(t instanceof Uint8Array?t:t.subarray())}function We(t,e){let r=dc(t);return e.decode(r)}function pc(t){let e=t??8192,r=e>>>1,n,i=e;return function(o){if(o<1||o>r)return Je(o);i+o>e&&(n=Je(e),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var Yr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function mc(){}var gc=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},xb=pc();function bb(t){return globalThis.Buffer!=null?Je(t):xb(t)}var vi=class{len;head;tail;states;constructor(){this.len=0,this.head=new Yr(mc,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new Yr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new xc((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(wi,10,ut.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=ut.fromBigInt(e);return this._push(wi,r.length(),r)}uint64Number(e){let r=ut.fromNumber(e);return this._push(wi,r.length(),r)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=ut.fromBigInt(e).zzEncode();return this._push(wi,r.length(),r)}sint64Number(e){let r=ut.fromNumber(e).zzEncode();return this._push(wi,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(yc,1,e?1:0)}fixed32(e){return this._push(Ei,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=ut.fromBigInt(e);return this._push(Ei,4,r.lo)._push(Ei,4,r.hi)}fixed64Number(e){let r=ut.fromNumber(e);return this._push(Ei,4,r.lo)._push(Ei,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(H0,4,e)}double(e){return this._push(W0,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(yc,1,0):this.uint32(r)._push(Eb,r,e)}string(e){let r=X0(e);return r!==0?this.uint32(r)._push(fc,r,e):this._push(yc,1,0)}fork(){return this.states=new gc(this),this.head=this.tail=new Yr(mc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Yr(mc,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=bb(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function yc(t,e,r){e[r]=t&255}function wb(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var xc=class extends Yr{next;constructor(e,r){super(wb,e,r),this.next=void 0}};function wi(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function Ei(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function Eb(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(vi.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(vb,e,t),this},vi.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(_b,e,t),this});function vb(t,e,r){e.set(t,r)}function _b(t,e,r){t.length<40?fc(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(Y(t),r)}function bc(){return new vi}function Ye(t,e){let r=bc();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Pn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(Pn||(Pn={}));function Ds(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function wc(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return Ds("enum",Pn.VARINT,r,n)}function Qe(t,e){return Ds("message",Pn.LENGTH_DELIMITED,t,e)}var be;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(be||(be={}));var Ec;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(Ec||(Ec={}));(function(t){t.codec=()=>wc(Ec)})(be||(be={}));var Ht;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Ht||(Ht={}));var Gt;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Gt||(Gt={}));var _i=class{_key;constructor(e){this._key=Nn(e,Ln)}verify(e,r){return V0(this._key,r,e)}marshal(){return this._key}get bytes(){return Ht.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ee(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return Et(e)?e.then(({bytes:r})=>r):e.bytes}},Qr=class{_key;_publicKey;constructor(e,r){this._key=Nn(e,or),this._publicKey=Nn(r,Ln)}sign(e){return q0(this._key,e)}get public(){return new _i(this._publicKey)}marshal(){return this._key}get bytes(){return Gt.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ee(this.bytes,e.bytes)}async hash(){let e=Ge.digest(this.bytes),r;return Et(e)?{bytes:r}=await e:r=e.bytes,r}async id(){let e=br.digest(this.public.bytes);return Ie.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Dn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Sb(t){if(t.length>or){t=Nn(t,or+Ln);let n=t.subarray(0,or),i=t.subarray(or,t.length);return new Qr(n,i)}t=Nn(t,or);let e=t.subarray(0,or),r=t.subarray(Ln);return new Qr(e,r)}function Ab(t){return t=Nn(t,Ln),new _i(t)}async function Ib(){let{privateKey:t,publicKey:e}=F0();return new Qr(t,e)}async function J0(t){let{privateKey:e,publicKey:r}=K0(t);return new Qr(e,r)}function Nn(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new S(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var Rb={"P-256":256,"P-384":384,"P-521":521},Cb=Object.keys(Rb),uI=Cb.join(" / ");var Rc={};Ue(Rc,{MAX_KEY_SIZE:()=>Ri,RsaPrivateKey:()=>kn,RsaPublicKey:()=>Ii,fromJwk:()=>Fb,generateKeyPair:()=>Kb,unmarshalRsaPrivateKey:()=>Mb,unmarshalRsaPublicKey:()=>Ub});var Ai=we(fe(),1);var WI=we(ih(),1);function Ns(t){if(isNaN(t)||t<=0)throw new S("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Cn(t)}var TI=we(hs(),1),Ac=we(fe(),1);function sh(t,e){return e.map(r=>pt(t[r]))}function oh(t){return Ac.default.pki.setRsaPrivateKey(...sh(t,["n","e","d","p","q","dp","dq","qi"]))}function ah(t){return Ac.default.pki.setRsaPublicKey(...sh(t,["n","e"]))}var Zr={};Ue(Zr,{jwkToPkcs1:()=>Db,jwkToPkix:()=>Nb,pkcs1ToJwk:()=>Lb,pkixToJwk:()=>Pb});var DI=we(li(),1),PI=we(hs(),1);var ar=we(fe(),1);function Lb(t){let e=ar.default.asn1.fromDer(ie(t,"ascii")),r=ar.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Tt(r.n),e:Tt(r.e),d:Tt(r.d),p:Tt(r.p),q:Tt(r.q),dp:Tt(r.dP),dq:Tt(r.dQ),qi:Tt(r.qInv),alg:"RS256"}}function Db(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=ar.default.pki.privateKeyToAsn1({n:pt(t.n),e:pt(t.e),d:pt(t.d),p:pt(t.p),q:pt(t.q),dP:pt(t.dp),dQ:pt(t.dq),qInv:pt(t.qi)});return Y(ar.default.asn1.toDer(e).getBytes(),"ascii")}function Pb(t){let e=ar.default.asn1.fromDer(ie(t,"ascii")),r=ar.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Tt(r.n),e:Tt(r.e)}}function Nb(t){if(t.n==null||t.e==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=ar.default.pki.publicKeyToAsn1({n:pt(t.n),e:pt(t.e)});return Y(ar.default.asn1.toDer(e).getBytes(),"ascii")}async function ch(t){let e=await ct.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await fh(e);return{privateKey:r[0],publicKey:r[1]}}async function Ic(t){let r=[await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await kb(t)],n=await fh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function uh(t,e){let r=await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ct.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function lh(t,e,r){let n=await ct.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ct.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r instanceof Uint8Array?r:r.subarray())}async function fh(t){if(t.privateKey==null||t.publicKey==null)throw new S("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([ct.get().subtle.exportKey("jwk",t.privateKey),ct.get().subtle.exportKey("jwk",t.publicKey)])}async function kb(t){return ct.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function hh(t,e,r,n){let i=e?ah(t):oh(t),s=ie(r instanceof Uint8Array?r:r.subarray(),"ascii"),o=n(s,i);return Y(o,"ascii")}function dh(t,e){return hh(t,!0,e,(r,n)=>n.encrypt(r))}function ph(t,e){return hh(t,!1,e,(r,n)=>n.decrypt(r))}function ks(t){if(t.kty!=="RSA")throw new S("invalid key type","ERR_INVALID_KEY_TYPE");if(t.n==null)throw new S("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Y(t.n,"base64url").length*8}var Ri=8192,Ii=class{_key;constructor(e){this._key=e}verify(e,r){return lh(this._key,r,e)}marshal(){return Zr.jwkToPkix(this._key)}get bytes(){return Ht.encode({Type:be.RSA,Data:this.marshal()}).subarray()}encrypt(e){return dh(this._key,e)}equals(e){return Ee(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return Et(e)?e.then(({bytes:r})=>r):e.bytes}},kn=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Ns(16)}sign(e){return uh(this._key,e)}get public(){if(this._publicKey==null)throw new S("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ii(this._publicKey)}decrypt(e){return ph(this._key,e)}marshal(){return Zr.jwkToPkcs1(this._key)}get bytes(){return Gt.encode({Type:be.RSA,Data:this.marshal()}).subarray()}equals(e){return Ee(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return Et(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ie(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ai.default.util.ByteBuffer(this.marshal()),i=Ai.default.asn1.fromDer(n),s=Ai.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ai.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return Dn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Mb(t){let e=Zr.pkcs1ToJwk(t);if(ks(e)>Ri)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Ic(e);return new kn(r.privateKey,r.publicKey)}function Ub(t){let e=Zr.pkixToJwk(t);if(ks(e)>Ri)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ii(e)}async function Fb(t){if(ks(t)>Ri)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Ic(t);return new kn(e.privateKey,e.publicKey)}async function Kb(t){if(t>Ri)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await ch(t);return new kn(e.privateKey,e.publicKey)}var Pc={};Ue(Pc,{Secp256k1PrivateKey:()=>Ti,Secp256k1PublicKey:()=>Ci,generateKeyPair:()=>t2,unmarshalSecp256k1PrivateKey:()=>Jb,unmarshalSecp256k1PublicKey:()=>e2});var qb=(t,e,r)=>t&e^~t&r,Vb=(t,e,r)=>t&e^t&r^e&r,$b=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]),Ir=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Rr=new Uint32Array(64),Cc=class extends Tn{constructor(){super(64,32,8,!1),this.A=Ir[0]|0,this.B=Ir[1]|0,this.C=Ir[2]|0,this.D=Ir[3]|0,this.E=Ir[4]|0,this.F=Ir[5]|0,this.G=Ir[6]|0,this.H=Ir[7]|0}get(){let{A:e,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[e,r,n,i,s,o,a,c]}set(e,r,n,i,s,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let f=0;f<16;f++,r+=4)Rr[f]=e.getUint32(r,!1);for(let f=16;f<64;f++){let d=Rr[f-15],p=Rr[f-2],h=Bt(d,7)^Bt(d,18)^d>>>3,m=Bt(p,17)^Bt(p,19)^p>>>10;Rr[f]=m+Rr[f-7]+h+Rr[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let d=Bt(a,6)^Bt(a,11)^Bt(a,25),p=l+d+qb(a,c,u)+$b[f]+Rr[f]|0,m=(Bt(n,2)^Bt(n,13)^Bt(n,22))+Vb(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Rr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var mh=Es(()=>new Cc);function zb(t){let e=bi(t);zt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=e;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Hb,hexToBytes:Gb}=Ss,jr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(t){let{Err:e}=jr;if(t.length<2||t[0]!==2)throw new e("Invalid signature integer tag");let r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Hb(n),l:t.subarray(r+2)}},toSig(t){let{Err:e}=jr,r=typeof t=="string"?Gb(t):t;if(!Lt(r))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:i,l:s}=jr._parseInt(r.subarray(2)),{d:o,l:a}=jr._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},cr=BigInt(0),vt=BigInt(1),n4=BigInt(2),yh=BigInt(3),i4=BigInt(4);function Wb(t){let e=zb(t),{Fp:r}=e,n=e.toBytes||((h,m,y)=>{let g=m.toAffine();return ir(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=e.fromBytes||(h=>{let m=h.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(h){let{a:m,b:y}=e,g=r.sqr(h),x=r.mul(g,h);return r.add(r.add(x,r.mul(h,m)),y)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(h){return typeof h=="bigint"&&cr<h&&h<e.n}function a(h){if(!o(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=e;if(m&&typeof h!="bigint"){if(Lt(h)&&(h=rr(h)),typeof h!="string"||!m.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let b;try{b=typeof h=="bigint"?h:nr(Se("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return g&&(b=he(b,x)),a(b),b}let u=new Map;function l(h){if(!(h instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(Se("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:A,pz:E}=m,_=r.eql(r.mul(y,E),r.mul(b,x)),T=r.eql(r.mul(g,E),r.mul(A,x));return _&&T}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=e,g=r.mul(y,yh),{px:x,py:b,pz:A}=this,E=r.ZERO,_=r.ZERO,T=r.ZERO,D=r.mul(x,x),z=r.mul(b,b),G=r.mul(A,A),$=r.mul(x,b);return $=r.add($,$),T=r.mul(x,A),T=r.add(T,T),E=r.mul(m,T),_=r.mul(g,G),_=r.add(E,_),E=r.sub(z,_),_=r.add(z,_),_=r.mul(E,_),E=r.mul($,E),T=r.mul(g,T),G=r.mul(m,G),$=r.sub(D,G),$=r.mul(m,$),$=r.add($,T),T=r.add(D,D),D=r.add(T,D),D=r.add(D,G),D=r.mul(D,$),_=r.add(_,D),G=r.mul(b,A),G=r.add(G,G),D=r.mul(G,$),E=r.sub(E,D),T=r.mul(G,z),T=r.add(T,T),T=r.add(T,T),new f(E,_,T)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:A,pz:E}=m,_=r.ZERO,T=r.ZERO,D=r.ZERO,z=e.a,G=r.mul(e.b,yh),$=r.mul(y,b),J=r.mul(g,A),le=r.mul(x,E),$e=r.add(y,g),B=r.add(b,A);$e=r.mul($e,B),B=r.add($,J),$e=r.sub($e,B),B=r.add(y,x);let k=r.add(b,E);return B=r.mul(B,k),k=r.add($,le),B=r.sub(B,k),k=r.add(g,x),_=r.add(A,E),k=r.mul(k,_),_=r.add(J,le),k=r.sub(k,_),D=r.mul(z,B),_=r.mul(G,le),D=r.add(_,D),_=r.sub(J,D),D=r.add(J,D),T=r.mul(_,D),J=r.add($,$),J=r.add(J,$),le=r.mul(z,le),B=r.mul(G,B),J=r.add(J,le),le=r.sub($,le),le=r.mul(z,le),B=r.add(B,le),$=r.mul(J,B),T=r.add(T,$),$=r.mul(k,B),_=r.mul($e,_),_=r.sub(_,$),$=r.mul($e,J),D=r.mul(k,D),D=r.add(D,$),new f(_,T,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===cr)return y;if(a(m),m===vt)return this;let{endo:g}=e;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:A,k2:E}=g.splitScalar(m),_=y,T=y,D=this;for(;b>cr||E>cr;)b&vt&&(_=_.add(D)),E&vt&&(T=T.add(D)),D=D.double(),b>>=vt,E>>=vt;return x&&(_=_.negate()),A&&(T=T.negate()),T=new f(r.mul(T.px,g.beta),T.py,T.pz),_.add(T)}multiply(m){a(m);let y=m,g,x,{endo:b}=e;if(b){let{k1neg:A,k1:E,k2neg:_,k2:T}=b.splitScalar(y),{p:D,f:z}=this.wNAF(E),{p:G,f:$}=this.wNAF(T);D=p.constTimeNegate(A,D),G=p.constTimeNegate(_,G),G=new f(r.mul(G.px,b.beta),G.py,G.pz),g=D.add(G),x=z.add($)}else{let{p:A,f:E}=this.wNAF(y);g=A,x=E}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(E,_)=>_===cr||_===vt||!E.equals(x)?E.multiplyUnsafe(_):E.multiply(_),A=b(this,y).add(b(m,g));return A.is0()?void 0:A}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let A=r.mul(y,m),E=r.mul(g,m),_=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(_,r.ONE))throw new Error("invZ was invalid");return{x:A,y:E}}isTorsionFree(){let{h:m,isTorsionFree:y}=e;if(m===vt)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=e;return m===vt?this:y?y(f,this):this.multiplyUnsafe(e.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return rr(this.toRawBytes(m))}}f.BASE=new f(e.Gx,e.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let d=e.nBitLength,p=Rs(f,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function Yb(t){let e=bi(t);return zt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function gh(t){let e=Yb(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(B){return cr<B&&B<r.ORDER}function a(B){return he(B,n)}function c(B){return As(B,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:d}=Wb({...e,toBytes(B,k,P){let N=k.toAffine(),R=r.toBytes(N.x),U=ir;return P?U(Uint8Array.from([k.hasEvenY()?2:3]),R):U(Uint8Array.from([4]),R,r.toBytes(N.y))},fromBytes(B){let k=B.length,P=B[0],N=B.subarray(1);if(k===i&&(P===2||P===3)){let R=nr(N);if(!o(R))throw new Error("Point is not on curve");let U=f(R),K=r.sqrt(U),H=(K&vt)===vt;return(P&1)===1!==H&&(K=r.neg(K)),{x:R,y:K}}else if(k===s&&P===4){let R=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:R,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=B=>rr(Sr(B,e.nByteLength));function h(B){let k=n>>vt;return B>k}function m(B){return h(B)?a(-B):B}let y=(B,k,P)=>nr(B.slice(k,P));class g{constructor(k,P,N){this.r=k,this.s=P,this.recovery=N,this.assertValidity()}static fromCompact(k){let P=e.nByteLength;return k=Se("compactSignature",k,P*2),new g(y(k,0,P),y(k,P,2*P))}static fromDER(k){let{r:P,s:N}=jr.toSig(Se("DER",k));return new g(P,N)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:P,s:N,recovery:R}=this,U=T(Se("msgHash",k));if(R==null||![0,1,2,3].includes(R))throw new Error("recovery id invalid");let K=R===2||R===3?P+e.n:P;if(K>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=R&1?"03":"02",Z=u.fromHex(H+p(K)),ee=c(K),ce=a(-U*ee),te=a(N*ee),se=u.BASE.multiplyAndAddUnsafe(Z,ce,te);if(!se)throw new Error("point at infinify");return se.assertValidity(),se}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return zr(this.toDERHex())}toDERHex(){return jr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return zr(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(B){try{return l(B),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let B=rc(e.n);return N0(e.randomBytes(B),e.n)},precompute(B=8,k=u.BASE){return k._setWindowSize(B),k.multiply(BigInt(3)),k}};function b(B,k=!0){return u.fromPrivateKey(B).toRawBytes(k)}function A(B){let k=Lt(B),P=typeof B=="string",N=(k||P)&&B.length;return k?N===i||N===s:P?N===2*i||N===2*s:B instanceof u}function E(B,k,P=!0){if(A(B))throw new Error("first arg must be private key");if(!A(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(B)).toRawBytes(P)}let _=e.bits2int||function(B){let k=nr(B),P=B.length*8-e.nBitLength;return P>0?k>>BigInt(P):k},T=e.bits2int_modN||function(B){return a(_(B))},D=xi(e.nBitLength);function z(B){if(typeof B!="bigint")throw new Error("bigint expected");if(!(cr<=B&&B<D))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Sr(B,e.nByteLength)}function G(B,k,P=$){if(["recovered","canonical"].some(ve=>ve in P))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:R}=e,{lowS:U,prehash:K,extraEntropy:H}=P;U==null&&(U=!0),B=Se("msgHash",B),K&&(B=Se("prehashed msgHash",N(B)));let Z=T(B),ee=l(k),ce=[z(ee),z(Z)];if(H!=null){let ve=H===!0?R(r.BYTES):H;ce.push(Se("extraEntropy",ve))}let te=ir(...ce),se=Z;function Be(ve){let ze=_(ve);if(!d(ze))return;let He=c(ze),ke=u.BASE.multiply(ze).toAffine(),je=a(ke.x);if(je===cr)return;let Qt=a(He*a(se+je*ee));if(Qt===cr)return;let kr=(ke.x===je?0:2)|Number(ke.y&vt),oi=Qt;return U&&h(Qt)&&(oi=m(Qt),kr^=1),new g(je,oi,kr)}return{seed:te,k2sig:Be}}let $={lowS:e.lowS,prehash:!1},J={lowS:e.lowS,prehash:!1};function le(B,k,P=$){let{seed:N,k2sig:R}=G(B,k,P),U=e;return ja(U.hash.outputLen,U.nByteLength,U.hmac)(N,R)}u.BASE._setWindowSize(8);function $e(B,k,P,N=J){let R=B;if(k=Se("msgHash",k),P=Se("publicKey",P),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:K}=N,H,Z;try{if(typeof R=="string"||Lt(R))try{H=g.fromDER(R)}catch(ke){if(!(ke instanceof jr.Err))throw ke;H=g.fromCompact(R)}else if(typeof R=="object"&&typeof R.r=="bigint"&&typeof R.s=="bigint"){let{r:ke,s:je}=R;H=new g(ke,je)}else throw new Error("PARSE");Z=u.fromHex(P)}catch(ke){if(ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;K&&(k=e.hash(k));let{r:ee,s:ce}=H,te=T(k),se=c(ce),Be=a(te*se),ve=a(ee*se),ze=u.BASE.multiplyAndAddUnsafe(Z,Be,ve)?.toAffine();return ze?a(ze.x)===ee:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:E,sign:le,verify:$e,ProjectivePoint:u,Signature:g,utils:x}}var Os=class extends Rn{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,E0(e);let n=gi(r);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 i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return In(this),this.iHash.update(e),this}digestInto(e){In(this),Ha(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:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Tc=(t,e,r)=>new Os(t,e).update(r).digest();Tc.create=(t,e)=>new Os(t,e);function Qb(t){return{hash:t,hmac:(e,...r)=>Tc(t,e,ws(...r)),randomBytes:Cn}}function xh(t,e){let r=n=>gh({...t,...Qb(n)});return Object.freeze({...r(e),create:r})}var Eh=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),bh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xb=BigInt(1),Bc=BigInt(2),wh=(t,e)=>(t+e/Bc)/e;function Zb(t){let e=Eh,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,f=xe(l,r,e)*l%e,d=xe(f,r,e)*l%e,p=xe(d,Bc,e)*u%e,h=xe(p,i,e)*p%e,m=xe(h,s,e)*h%e,y=xe(m,a,e)*m%e,g=xe(y,c,e)*y%e,x=xe(g,a,e)*m%e,b=xe(x,r,e)*l%e,A=xe(b,o,e)*h%e,E=xe(A,n,e)*u%e,_=xe(E,Bc,e);if(!Lc.eql(Lc.sqr(_),t))throw new Error("Cannot find square root");return _}var Lc=Is(Eh,void 0,void 0,{sqrt:Zb}),Nt=xh({a:BigInt(0),b:BigInt(7),Fp:Lc,n:bh,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{let e=bh,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Xb*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=wh(s*t,e),c=wh(-n*t,e),u=he(t-a*r-c*i,e),l=he(-a*n-c*s,e),f=u>o,d=l>o;if(f&&(u=e-u),d&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},mh),y4=BigInt(0);var g4=Nt.ProjectivePoint;function vh(){return Nt.utils.randomPrivateKey()}function _h(t,e){let r=Ge.digest(e instanceof Uint8Array?e:e.subarray());if(Et(r))return r.then(({digest:n})=>Nt.sign(n,t).toDERRawBytes()).catch(n=>{throw new S(String(n),"ERR_INVALID_INPUT")});try{return Nt.sign(r.digest,t).toDERRawBytes()}catch(n){throw new S(String(n),"ERR_INVALID_INPUT")}}function Sh(t,e,r){let n=Ge.digest(r instanceof Uint8Array?r:r.subarray());if(Et(n))return n.then(({digest:i})=>Nt.verify(e,i,t)).catch(i=>{throw new S(String(i),"ERR_INVALID_INPUT")});try{return Nt.verify(e,n.digest,t)}catch(i){throw new S(String(i),"ERR_INVALID_INPUT")}}function Ah(t){return Nt.ProjectivePoint.fromHex(t).toRawBytes(!0)}function Ih(t){try{Nt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Dc(t){try{Nt.ProjectivePoint.fromHex(t)}catch(e){throw new S(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Rh(t){try{return Nt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Ci=class{_key;constructor(e){Dc(e),this._key=e}verify(e,r){return Sh(this._key,r,e)}marshal(){return Ah(this._key)}get bytes(){return Ht.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ee(this.bytes,e.bytes)}async hash(){let e=Ge.digest(this.bytes),r;return Et(e)?{bytes:r}=await e:r=e.bytes,r}},Ti=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??Rh(e),Ih(this._key),Dc(this._publicKey)}sign(e){return _h(this._key,e)}get public(){return new Ci(this._publicKey)}marshal(){return this._key}get bytes(){return Gt.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ee(this.bytes,e.bytes)}hash(){let e=Ge.digest(this.bytes);return Et(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ie(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Dn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Jb(t){return new Ti(t)}function e2(t){return new Ci(t)}async function t2(){let t=vh();return new Ti(t)}var Cr={rsa:Rc,ed25519:vc,secp256k1:Pc};function Nc(t){let e=Object.keys(Cr).join(" / ");return new S(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function kc(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return Cr[t];throw Nc(t)}async function Ch(t,e){return kc(t).generateKeyPair(e??2048)}function Bi(t){let e=Ht.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Cr.rsa.unmarshalRsaPublicKey(r);case be.Ed25519:return Cr.ed25519.unmarshalEd25519PublicKey(r);case be.Secp256k1:return Cr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Nc(e.Type??"unknown")}}function Th(t,e){return e=(e??"rsa").toLowerCase(),kc(e),t.bytes}async function Oc(t){let e=Gt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Cr.rsa.unmarshalRsaPrivateKey(r);case be.Ed25519:return Cr.ed25519.unmarshalEd25519PrivateKey(r);case be.Secp256k1:return Cr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Nc(e.Type??"RSA")}}function Bh(t,e){return e=(e??"rsa").toLowerCase(),kc(e),t.bytes}var gt=we(Uc(),1);gt.default.formatters.b=t=>t==null?"undefined":Ie.baseEncode(t);gt.default.formatters.t=t=>t==null?"undefined":dt.baseEncode(t);gt.default.formatters.m=t=>t==null?"undefined":vn.baseEncode(t);gt.default.formatters.p=t=>t==null?"undefined":t.toString();gt.default.formatters.c=t=>t==null?"undefined":t.toString();gt.default.formatters.k=t=>t==null?"undefined":t.toString();gt.default.formatters.a=t=>t==null?"undefined":t.toString();function m2(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Fs(){return{forComponent(t){return y2(t)}}}function y2(t){let e=m2(`${t}:trace`);return gt.default.enabled(`${t}:trace`)&&gt.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,gt.default)(`${t}:trace`)),Object.assign((0,gt.default)(t),{error:(0,gt.default)(`${t}:error`),trace:e})}var g2=Symbol.for("nodejs.util.inspect.custom"),Nh=Object.values(wr).map(t=>t.decoder).reduce((t,e)=>t.or(e),wr.identity.decoder),kh=114,Fc=36,Kc=37,Li=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[wa]=!0;toString(){return this.string==null&&(this.string=Ie.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ct.createV1(kh,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ee(this.multihash.bytes,e);if(typeof e=="string")return De(e).equals(this);if(e?.multihash?.bytes!=null)return Ee(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[g2](){return`PeerId(${this.toString()})`}},en=class extends Li{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},tn=class extends Li{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},rn=class extends Li{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function Oh(t){if(t.type==="RSA")return new en(t);if(t.type==="Ed25519")return new tn(t);if(t.type==="secp256k1")return new rn(t);throw new S("Not a PeerId","ERR_INVALID_PARAMETERS")}function De(t,e){if(e=e??Nh,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Vr(Ie.decode(`z${t}`));return t.startsWith("12D")?new tn({multihash:r}):t.startsWith("16U")?new rn({multihash:r}):new en({multihash:r})}return Fn(Nh.decode(t))}function Fn(t){try{let e=Vr(t);if(e.code===br.code){if(e.digest.length===Fc)return new tn({multihash:e});if(e.digest.length===Kc)return new rn({multihash:e})}if(e.code===Ge.code)return new en({multihash:e})}catch{return x2(Ct.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function x2(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==kh)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===Ge.code)return new en({multihash:t.multihash});if(e.code===br.code){if(e.digest.length===Fc)return new tn({multihash:t.multihash});if(e.digest.length===Kc)return new rn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Ks(t,e){return t.length===Fc?new tn({multihash:$t(br.code,t),privateKey:e}):t.length===Kc?new rn({multihash:$t(br.code,t),privateKey:e}):new en({multihash:await Ge.digest(t),publicKey:t,privateKey:e})}function nn(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var lt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return nn(this.map.entries(),e=>[De(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,De(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return nn(this.map.keys(),e=>De(e))}values(){return this.map.values()}get size(){return this.map.size}};var _t=class t{set;constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.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 nn(this.set.entries(),e=>{let r=De(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=De(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return nn(this.set.values(),e=>De(e))}intersection(e){let r=new t;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new t;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new t;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var qc;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(qc||(qc={}));var Mh=async()=>{let t=await Ch("Ed25519"),e=await w2(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function w2(t){return Ks(Th(t.public),Bh(t))}var E2=Math.pow(2,7),v2=Math.pow(2,14),_2=Math.pow(2,21),Vc=Math.pow(2,28),$c=Math.pow(2,35),zc=Math.pow(2,42),Hc=Math.pow(2,49),ae=128,tt=127;function rt(t){if(t<E2)return 1;if(t<v2)return 2;if(t<_2)return 3;if(t<Vc)return 4;if(t<$c)return 5;if(t<zc)return 6;if(t<Hc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function S2(t,e,r=0){switch(rt(t)){case 8:e[r++]=t&255|ae,t/=128;case 7:e[r++]=t&255|ae,t/=128;case 6:e[r++]=t&255|ae,t/=128;case 5:e[r++]=t&255|ae,t/=128;case 4:e[r++]=t&255|ae,t>>>=7;case 3:e[r++]=t&255|ae,t>>>=7;case 2:e[r++]=t&255|ae,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function A2(t,e,r=0){switch(rt(t)){case 8:e.set(r++,t&255|ae),t/=128;case 7:e.set(r++,t&255|ae),t/=128;case 6:e.set(r++,t&255|ae),t/=128;case 5:e.set(r++,t&255|ae),t/=128;case 4:e.set(r++,t&255|ae),t>>>=7;case 3:e.set(r++,t&255|ae),t>>>=7;case 2:e.set(r++,t&255|ae),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function I2(t,e){let r=t[e],n=0;if(n+=r&tt,r<ae||(r=t[e+1],n+=(r&tt)<<7,r<ae)||(r=t[e+2],n+=(r&tt)<<14,r<ae)||(r=t[e+3],n+=(r&tt)<<21,r<ae)||(r=t[e+4],n+=(r&tt)*Vc,r<ae)||(r=t[e+5],n+=(r&tt)*$c,r<ae)||(r=t[e+6],n+=(r&tt)*zc,r<ae)||(r=t[e+7],n+=(r&tt)*Hc,r<ae))return n;throw new RangeError("Could not decode varint")}function R2(t,e){let r=t.get(e),n=0;if(n+=r&tt,r<ae||(r=t.get(e+1),n+=(r&tt)<<7,r<ae)||(r=t.get(e+2),n+=(r&tt)<<14,r<ae)||(r=t.get(e+3),n+=(r&tt)<<21,r<ae)||(r=t.get(e+4),n+=(r&tt)*Vc,r<ae)||(r=t.get(e+5),n+=(r&tt)*$c,r<ae)||(r=t.get(e+6),n+=(r&tt)*zc,r<ae)||(r=t.get(e+7),n+=(r&tt)*Hc,r<ae))return n;throw new RangeError("Could not decode varint")}function ft(t,e,r=0){return e==null&&(e=Je(rt(t))),e instanceof Uint8Array?S2(t,e,r):A2(t,e,r)}function kt(t,e=0){return t instanceof Uint8Array?I2(t,e):R2(t,e)}var Fh=Symbol.for("@achingbrain/uint8arraylist");function Uh(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function qs(t){return!!t?.[Fh]}var Ve=class t{bufs;length;[Fh]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(qs(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(qs(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=Uh(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Uh(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(qs(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:i}=this._subList(e,r);return Re(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Re(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new t;return s.length=i,s.bufs=[...n],s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!qs(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){l=Math.max(1,d-a[p]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=Je(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=Je(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Ee(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Kh={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Di;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Di||(Di={}));var Kn=class t{static createFromProtobuf=async e=>{let r=Di.decode(e),n=await Ks(r.publicKey);return new t({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(e,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=e.domain,i=e.codec,s=e.marshal(),o=qh(n,i,s),c=await(await Oc(r.privateKey)).sign(o.subarray());return new t({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(e,r)=>{let n=await t.createFromProtobuf(e);if(!await n.validate(r))throw new S("envelope signature is not valid for the given domain",Kh.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Di.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Ee(this.marshal(),e.marshal())}async validate(e){let r=qh(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return Bi(this.peerId.publicKey).verify(r.subarray(),this.signature)}},qh=(t,e,r)=>{let n=Y(t),i=ft(n.byteLength),s=ft(e.length),o=ft(r.length);return new Ve(i,n,s,e,o,r)};function Vh(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}var Vs=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var $h=45,C2=15,qn=new Vs;function Gc(t){if(!(t.length>C2))return qn.new(t).parseWith(()=>qn.readIPv4Addr())}function Wc(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>$h))return qn.new(t).parseWith(()=>qn.readIPv6Addr())}function $s(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>$h))return qn.new(t).parseWith(()=>qn.readIPAddr())}var d8=parseInt("0xFFFF",16),p8=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function zs(t){return!!Gc(t)}function Hs(t){return!!Wc(t)}function Vn(t){return!!$s(t)}var Gh=zs,P2=Hs,Yc=function(t){let e=0;if(t=t.toString().trim(),Gh(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(P2(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Gh(r[n]),o;s&&(o=Yc(r[n]),r[n]=ie(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,ie(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},Wh=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var $n={},Qc={},k2=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];k2.forEach(t=>{let e=O2(...t);Qc[e.code]=e,$n[e.name]=e});function O2(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function ue(t){if(typeof t=="number"){if(Qc[t]!=null)return Qc[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if($n[t]!=null)return $n[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var Z8=ue("ip4"),j8=ue("ip6"),J8=ue("ipcidr");function Zc(t,e){switch(ue(t).code){case 4:case 41:return U2(e);case 42:return Xh(e);case 6:case 273:case 33:case 132:return jh(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Xh(e);case 421:return V2(e);case 444:return Zh(e);case 445:return Zh(e);case 466:return q2(e);default:return ie(e,"base16")}}function jc(t,e){switch(ue(t).code){case 4:return Yh(e);case 41:return Yh(e);case 42:return Qh(e);case 6:case 273:case 33:case 132:return Jc(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Qh(e);case 421:return F2(e);case 444:return $2(e);case 445:return z2(e);case 466:return K2(e);default:return Y(e,"base16")}}var Xc=Object.values(wr).map(t=>t.decoder),M2=function(){let t=Xc[0].or(Xc[1]);return Xc.slice(2).forEach(e=>t=t.or(e)),t}();function Yh(t){if(!Vn(t))throw new Error("invalid ip address");return Yc(t)}function U2(t){let e=Wh(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Vn(e))throw new Error("invalid ip address");return e}function Jc(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function jh(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Qh(t){let e=Y(t),r=Uint8Array.from(ft(e.length));return Re([r,e],r.length+e.length)}function Xh(t){let e=kt(t);if(t=t.slice(rt(e)),t.length!==e)throw new Error("inconsistent lengths");return ie(t)}function F2(t){let e;t[0]==="Q"||t[0]==="1"?e=Vr(Ie.decode(`z${t}`)).bytes:e=Ct.parse(t).multihash.bytes;let r=Uint8Array.from(ft(e.length));return Re([r,e],r.length+e.length)}function K2(t){let e=M2.decode(t),r=Uint8Array.from(ft(e.length));return Re([r,e],r.length+e.length)}function q2(t){let e=kt(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+ie(r,"base64url")}function V2(t){let e=kt(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return ie(r,"base58btc")}function $2(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=dt.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 i=Jc(n);return Re([r,i],r.length+i.length)}function z2(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=dt.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 i=Jc(n);return Re([r,i],r.length+i.length)}function Zh(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=ie(e,"base32"),i=jh(r);return`${n}:${i}`}function Jh(t){t=eu(t);let e=[],r=[],n=null,i=t.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<i.length;s++){let o=i[s],a=ue(o);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw td("invalid address: "+t);if(a.path===!0){n=eu(i.slice(s).join("/")),e.push([a.code,jc(a.code,n)]),r.push([a.code,n]);break}let c=jc(a.code,i[s]);e.push([a.code,c]),r.push([a.code,Zc(a.code,c)])}return{string:ed(r),bytes:ru(e),tuples:e,stringTuples:r,path:n}}function tu(t){let e=[],r=[],n=null,i=0;for(;i<t.length;){let s=kt(t,i),o=rt(s),a=ue(s),c=H2(a,t.slice(i+o));if(c===0){e.push([s]),r.push([s]),i+=o;continue}let u=t.slice(i+o,i+o+c);if(i+=c+o,i>t.length)throw td("Invalid address Uint8Array: "+ie(t,"base16"));e.push([s,u]);let l=Zc(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:ed(r),tuples:e,stringTuples:r,path:n}}function ed(t){let e=[];return t.map(r=>{let n=ue(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),eu(e.join("/"))}function ru(t){return Re(t.map(e=>{let r=ue(e[0]),n=Uint8Array.from(ft(r.code));return e.length>1&&e[1]!=null&&(n=Re([n,e[1]])),n}))}function H2(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=kt(e instanceof Uint8Array?e:Uint8Array.from(e));return r+rt(r)}}function eu(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function td(t){return new Error("Error parsing address: "+t)}var G2=Symbol.for("nodejs.util.inspect.custom"),nu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),W2=[ue("dns").code,ue("dns4").code,ue("dns6").code,ue("dnsaddr").code],Gs=class t{bytes;#e;#t;#s;#a;[nu]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=tu(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=Jh(e)}else if(Tr(e))r=tu(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#s=r.stringTuples,this.#a=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,i,s="",o=ue("tcp"),a=ue("udp"),c=ue("ip4"),u=ue("ip6"),l=ue("dns6"),f=ue("ip6zone");for(let[p,h]of this.stringTuples())p===f.code&&(s=`%${h??""}`),W2.includes(p)&&(r=o.name,i=443,n=`${h??""}${s}`,e=p===l.code?6:4),(p===o.code||p===a.code)&&(r=ue(p).name,i=parseInt(h??"")),(p===c.code||p===u.code)&&(r=ue(p).name,n=`${h??""}${s}`,e=p===u.code?6:4);if(e==null||r==null||n==null||i==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:r,port:i}}protos(){return this.#t.map(([e])=>Object.assign({},ue(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>ue(e).name)}tuples(){return this.#t}stringTuples(){return this.#s}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(ru(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,i])=>{n===$n.p2p.code&&e.push([n,i]),n===$n["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ie(Ie.decode(`z${n}`),"base58btc"):ie(Ct.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return Ee(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Ws.get(r.name);if(n==null)throw new S(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[G2](){return`Multiaddr(${this.#e})`}};var Ws=new Map;function Tr(t){return!!t?.[nu]}function Ae(t){return new Gs(t)}var rd="libp2p-peer-record",nd=Uint8Array.from([3,1]);var Pi;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Qe((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>Ye(s,n.codec()),n.decode=s=>We(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Qe((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>Ye(n,t.codec()),t.decode=n=>We(n,t.codec())})(Pi||(Pi={}));var on=class t{static createFromProtobuf=e=>{let r=Pi.decode(e),n=Fn(r.peerId),i=(r.addresses??[]).map(o=>Ae(o.multiaddr)),s=r.seq;return new t({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=rd;static CODEC=nd;peerId;multiaddrs;seqNumber;domain=t.DOMAIN;codec=t.CODEC;marshaled;constructor(e){let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Pi.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof t)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Vh(this.multiaddrs,e.multiaddrs))}};function Y2(t){return t[Symbol.asyncIterator]!=null}function Q2(t){if(Y2(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var Ni=Q2;var su=we(sd(),1);var Oi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},ou=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},od=t=>globalThis.DOMException===void 0?new ou(t):new DOMException(t),ad=t=>{let e=t.reason===void 0?od("This operation was aborted."):t.reason;return e instanceof Error?e:od(e)};function Mi(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,c=new Promise((u,l)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(ad(d)),d.addEventListener("abort",()=>{l(ad(d))})}if(r===Number.POSITIVE_INFINITY){t.then(u,l);return}let f=new Oi;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await t)}catch(d){l(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}function au(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Ui=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=au(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var zn=class extends su.default{#e;#t;#s=0;#a;#c;#p=0;#n;#u;#r;#m;#i=0;#l;#o;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ui,...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.#y=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#t||this.#s<this.#a}get#w(){return this.#i<this.#l}#E(){this.#i--,this.#f(),this.emit("next")}#v(){this.#x(),this.#g(),this.#u=void 0}get#_(){let e=Date.now();if(this.#n===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#i:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#i===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#r.dequeue();return r?(this.emit("active"),r(),e&&this.#g(),!0):!1}}return!1}#g(){this.#t||this.#n!==void 0||(this.#n=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#i===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#s=this.#e?this.#i:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}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.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#r.enqueue(async()=>{this.#i++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=Mi(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof Oi&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#d("next",()=>this.#r.size<e)}async onIdle(){this.#i===0&&this.#r.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#i}get isPaused(){return this.#o}};var Br={},Hn=t=>{t.addEventListener("message",e=>{Hn.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Hn.dispatchEvent("message",t,e)})};Hn.addEventListener=(t,e)=>{Br[t]==null&&(Br[t]=[]),Br[t].push(e)};Hn.removeEventListener=(t,e)=>{Br[t]!=null&&(Br[t]=Br[t].filter(r=>r===e))};Hn.dispatchEvent=function(t,e,r){Br[t]!=null&&Br[t].forEach(n=>n(e,r))};var cu=Hn;var uu="lock:worker:request-read",lu="lock:worker:release-read",fu="lock:master:grant-read",hu="lock:worker:request-write",du="lock:worker:release-write",pu="lock:master:grant-write";var cd=(t=21)=>Math.random().toString().substring(2);var ud=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},ld=(t,e,r,n)=>async()=>{let i=cd();return globalThis.postMessage({type:e,identifier:i,name:t}),new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},j2={singleProcess:!1},fd=t=>{if(t=Object.assign({},j2,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return cu.addEventListener("message",ud(r,"requestReadLock",uu,lu,fu)),cu.addEventListener("message",ud(r,"requestWriteLock",hu,du,pu)),r}return{isWorker:!0,readLock:r=>ld(r,uu,fu,lu),writeLock:r=>ld(r,hu,pu,du)}};var an={},Lr;async function mu(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>Mi((async()=>{await new Promise(i=>{r(()=>{i()})})})(),{milliseconds:e.timeout})),n}var J2=(t,e)=>{if(Lr.isWorker===!0)return{readLock:Lr.readLock(t,e),writeLock:Lr.writeLock(t,e)};let r=new zn({concurrency:1}),n;return{async readLock(){if(n!=null)return mu(n,e);n=new zn({concurrency:e.concurrency,autoStart:!1});let i=n,s=mu(n,e);return r.add(async()=>{i.start(),await i.onIdle().then(()=>{n===i&&(n=null)})}),s},async writeLock(){return n=null,mu(r,e)}}},ew={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function yu(t){let e=Object.assign({},ew,t);return Lr==null&&(Lr=fd(e),Lr.isWorker!==!0&&(Lr.addEventListener("requestReadLock",r=>{an[r.data.name]!=null&&an[r.data.name].readLock().then(async n=>r.data.handler().finally(()=>{n()}))}),Lr.addEventListener("requestWriteLock",async r=>{an[r.data.name]!=null&&an[r.data.name].writeLock().then(async n=>r.data.handler().finally(()=>{n()}))}))),an[e.name]==null&&(an[e.name]=J2(e.name,e)),an[e.name]}var Xe={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var Gn;(function(t){let e;(function(i){let s;i.codec=()=>(s==null&&(s=Qe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Ye(o,i.codec()),i.decode=o=>We(o,i.codec())})(e=t.Peer$metadataEntry||(t.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=Qe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Xs.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=Xs.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Ye(o,i.codec()),i.decode=o=>We(o,i.codec())})(r=t.Peer$tagsEntry||(t.Peer$tagsEntry={}));let n;t.codec=()=>(n==null&&(n=Qe((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Qs.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),t.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),t.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(Qs.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=t.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=t.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),t.encode=i=>Ye(i,t.codec()),t.decode=i=>We(i,t.codec())})(Gn||(Gn={}));var Qs;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Qs||(Qs={}));var Xs;(function(t){let e;t.codec=()=>(e==null&&(e=Qe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Ye(r,t.codec()),t.decode=r=>We(r,t.codec())})(Xs||(Xs={}));function Wn(t,e){let r=Gn.decode(e);r.publicKey!=null&&t.publicKey==null&&(t=Oh({...t,publicKey:t.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:t,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:Ae(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var ur="/",hd=new TextEncoder().encode(ur),Zs=hd[0],cn=class t{_buf;constructor(e,r){if(typeof e=="string")this._buf=Y(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Zs)throw new Error("Invalid key")}toString(e="utf8"){return ie(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new t(e.join(ur))}static random(){return new t(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new t(e):typeof e.uint8Array=="function"?new t(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=hd),this._buf[0]!==Zs){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Zs,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Zs;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return t.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(ur).slice(1)}type(){return tw(this.baseNamespace())}name(){return rw(this.baseNamespace())}instance(e){return new t(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(ur)||(e+=ur),e+=this.type(),new t(e)}parent(){let e=this.list();return e.length===1?new t(ur):new t(e.slice(0,-1).join(ur))}child(e){return this.toString()===ur?e:e.toString()===ur?this:new t(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 t.withNamespaces([...this.namespaces(),...nw(e.map(r=>r.namespaces()))])}};function tw(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function rw(t){let e=t.split(":");return e[e.length-1]}function nw(t){return[].concat(...t)}var gu="/peers/";function Yn(t){if(!ds(t)||t.type==null)throw new S("Invalid PeerId",Xe.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new cn(`${gu}${e}`)}async function dd(t,e,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=Ae(i.multiaddr)),!Tr(i.multiaddr))throw new S("Multiaddr was invalid",Xe.ERR_INVALID_PARAMETERS);if(!await e(t,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function Js(t,e,r,n){if(e==null)throw new S("Invalid PeerData",Xe.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&t.publicKey!=null&&!Ee(e.publicKey,t.publicKey))throw new S("publicKey bytes do not match peer id publicKey bytes",Xe.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!t.equals(i.id))throw new S("peer id did not match existing peer id",Xe.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(o=new Set(e.protocols)),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=js(f,{validate:pd})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=js(f,{validate:md,map:yd})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(r==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(o=new Set([...o,...e.protocols])),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[d,p]of f)p==null?a.delete(d):a.set(d,p);a=js([...a.entries()],{validate:pd})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),d=new Map(c);for(let[p,h]of f)h==null?d.delete(p):d.set(p,h);c=js([...d.entries()],{validate:md,map:yd})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let l={addresses:await dd(t,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,d)=>f.localeCompare(d)),metadata:a,tags:c,publicKey:i?.id.publicKey??e.publicKey??t.publicKey,peerRecordEnvelope:u};return t.type!=="RSA"&&delete l.publicKey,l}function js(t,e){let r=new Map;for(let[n,i]of t)i!=null&&e.validate(n,i);for(let[n,i]of t.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,e.map?.(n,i)??i);return r}function pd(t,e){if(typeof t!="string")throw new S("Metadata key must be a string",Xe.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new S("Metadata value must be a Uint8Array",Xe.ERR_INVALID_PARAMETERS)}function md(t,e){if(typeof t!="string")throw new S("Tag name must be a string",Xe.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new S("Tag value must be an integer",Xe.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new S("Tag value must be between 0-100",Xe.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new S("Tag ttl must be an integer",Xe.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new S("Tag ttl must be between greater than 0",Xe.ERR_INVALID_PARAMETERS)}}function yd(t,e){let r;return e.expiry!=null&&(r=e.expiry),e.ttl!=null&&(r=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:r}}function eo(t,e,r){let n=t.toString().split("/")[2],i=dt.decode(n),s=Fn(i),o=r.get(s);if(o!=null)return o;let a=Wn(s,e);return r.set(s,a),a}function iw(t,e){return t==null?{}:{prefix:gu,filters:(t.filters??[]).map(r=>({key:n,value:i})=>r(eo(n,i,e))),orders:(t.orders??[]).map(r=>(n,i)=>r(eo(n.key,n.value,e),eo(i.key,i.value,e)))}}var to=class{peerId;datastore;lock;addressFilter;constructor(e,r={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=r.addressFilter,this.lock=yu({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(Yn(e))}async delete(e){if(this.peerId.equals(e))throw new S("Cannot delete self peer",Xe.ERR_INVALID_PARAMETERS);await this.datastore.delete(Yn(e))}async load(e){let r=await this.datastore.get(Yn(e));return Wn(e,r)}async save(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Js(e,r,"patch",{addressFilter:this.addressFilter});return this.#t(e,s,n,i)}async patch(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Js(e,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async merge(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Js(e,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async*all(e){let r=new lt;for await(let{key:n,value:i}of this.datastore.query(iw(e??{},r))){let s=eo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let r=await this.datastore.get(Yn(e)),n=Wn(e,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#t(e,r,n,i){let s=Gn.encode(r);return n!=null&&Ee(s,n)?{peer:Wn(e,s),previous:i,updated:!1}:(await this.datastore.put(Yn(e),s),{peer:Wn(e,s),previous:i,updated:!0})}};var ro=class{store;events;peerId;log;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new to(e,r)}async forEach(e,r){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 i of this.store.all(r))e(i)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let r=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await Ni(this.store.all(e))}finally{this.log.trace("all release read lock"),r()}}async delete(e){this.log.trace("delete await write lock");let r=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"),r()}}async has(e){this.log.trace("has await read lock");let r=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"),r()}}async get(e){this.log.trace("get await read lock");let r=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"),r()}}async save(e,r){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let i=await this.store.save(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,r){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let i=await this.store.patch(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,r){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let i=await this.store.merge(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,r){let n=await Kn.openAndCertify(e,on.DOMAIN);if(r?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=on.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await Kn.createFromProtobuf(s.peerRecordEnvelope),a=on.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#e(e,r){r.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function sw(t){return t[Symbol.asyncIterator]!=null}function ow(t){if(sw(t))return(async()=>{for await(let e of t);})();for(let e of t);}var xu=ow;function aw(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var gd=aw;function cw(t){return t[Symbol.asyncIterator]!=null}function uw(t,e){if(cw(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=gd(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let o=e;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var un=uw;function lw(t){return t[Symbol.asyncIterator]!=null}function fw(t,e){return lw(t)?async function*(){yield*(await Ni(t)).sort(e)}():function*(){yield*Ni(t).sort(e)}()}var bu=fw;function hw(t){return t[Symbol.asyncIterator]!=null}function dw(t,e){return hw(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var wu=dw;var no=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await xu(this.putMany(e,n)),e=[],await xu(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=un(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>un(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>bu(i,s),n)),e.offset!=null){let i=0,s=e.offset;n=un(n,()=>i++>=s)}return e.limit!=null&&(n=wu(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=un(n,s=>s.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>un(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>bu(i,s),n)),e.offset!=null){let i=e.offset,s=0;n=un(n,()=>s++>=i)}return e.limit!=null&&(n=wu(n,e.limit)),n}};var wd=we(Eu(),1);function Ed(t){return t=t??new Error("Not Found"),(0,wd.default)(t,"ERR_NOT_FOUND")}var io=class extends no{data;constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw Ed();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new cn(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new cn(e)}};function vd(t,e){let r;return function(){let n=function(){r=void 0,t()};clearTimeout(r),r=setTimeout(n,e)}}var yw=t=>t;function vu(t,e){let r=t.getPeerId();return r!=null&&De(r).equals(e)&&(t=t.decapsulate(Ae(`/p2p/${e.toString()}`))),t}var so=class{log;components;listen;announce;observed;announceFilter;constructor(e,r={}){let{listen:n=[],announce:i=[]}=r;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??yw,this._updatePeerStoreAddresses=vd(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>Ae(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(r=>{this.log.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(e=>Ae(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>Ae(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>Ae(e))}addObservedAddr(e){e=vu(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=vu(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=vu(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>Ae(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var _u=class{components={};_started=!1;constructor(e={}){this.components={};for(let[r,n]of Object.entries(e))this.components[r]=n;this.components.logger==null&&(this.components.logger=Fs())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(r=>Zf(r)).map(async r=>{await r[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")}},gw=["metrics","connectionProtector"],xw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function _d(t={}){let e=new _u(t);return new Proxy(e,{get(n,i,s){if(typeof i=="string"&&!xw.includes(i)){let o=e.components[i];if(o==null&&!gw.includes(i))throw new S(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?e.components[i]=s:Reflect.set(n,i,s),!0}})}var Bd=we(Sd(),1);var Ad="[a-fA-F\\d:]",Dr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${Ad})|(?<=${Ad})(?=\\s|$))`:"",Ot="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Pe="[a-fA-F\\d]{1,4}",oo=`
38
38
  (?:
39
39
  (?:${Pe}:){7}(?:${Pe}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
40
  (?:${Pe}:){6}(?:${Ot}|:${Pe}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
@@ -45,20 +45,20 @@
45
45
  (?:${Pe}:){1}(?:(?::${Pe}){0,4}:${Ot}|(?::${Pe}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
46
  (?::(?:(?::${Pe}){0,5}:${Ot}|(?::${Pe}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
47
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Rw=new RegExp(`(?:^${Ot}$)|(?:^${fo}$)`),Tw=new RegExp(`^${Ot}$`),Bw=new RegExp(`^${fo}$`),Ru=t=>t&&t.exact?Rw:new RegExp(`(?:${Pr(t)}${Ot}${Pr(t)})|(?:${Pr(t)}${fo}${Pr(t)})`,"g");Ru.v4=t=>t&&t.exact?Tw:new RegExp(`${Pr(t)}${Ot}${Pr(t)}`,"g");Ru.v6=t=>t&&t.exact?Bw:new RegExp(`${Pr(t)}${fo}${Pr(t)}`,"g");var Pd=Ru;var Md=we(Nd(),1),{isValid:Lw,parse:Pw}=Md.default,Dw=["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"],Nw=Dw.map(t=>new Od.Netmask(t));function kw(t){for(let e of Nw)if(e.contains(t))return!0;return!1}function kd(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^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(t)||/^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(t)||/^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(t)||/^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(t)||/^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(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var Ud=t=>{if(Lw(t)){let e=Pw(t);if(e.kind()==="ipv4")return kw(e.toNormalizedString());if(e.kind()==="ipv6")return kd(t)}else if(zn(t)&&Pd.v6().test(t))return kd(t)};var po=Ud;function Fd(t={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let r=e.stringTuples();return r[0][0]===4||r[0][0]===41?!!po(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...t}}function Ow(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,A=new Uint8Array(b);g!==x;){for(var E=h[g],_=0,T=b-1;(E!==0||_<y)&&T!==-1;T--,_++)E+=256*A[T]>>>0,A[T]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=_,g++}for(var P=b-y;P!==b&&A[P]===0;)P++;for(var z=c.repeat(m);P<b;++P)z+=t.charAt(A[P]);return z}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var A=r[h.charCodeAt(m)];if(A===255)return;for(var E=0,_=x-1;(A!==0||E<g)&&_!==-1;_--,E++)A+=a*b[_]>>>0,b[_]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");g=E,m++}if(h[m]!==" "){for(var T=x-g;T!==x&&b[T]===0;)T++;for(var P=new Uint8Array(y+(x-T)),z=y;T!==x;)P[z++]=b[T++];return P}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var Mw=Ow,Uw=Mw,Kd=Uw;var q3=new Uint8Array(0);var qd=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Tu=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Bu=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Vd(this,e)}},Lu=class{constructor(e){this.decoders=e}or(e){return Vd(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Vd=(t,e)=>new Lu({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Pu=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Tu(e,r,n),this.decoder=new Bu(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},$d=({name:t,prefix:e,encode:r,decode:n})=>new Pu(t,e,r,n),Du=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=Kd(r,e);return $d({prefix:t,name:e,encode:n,decode:s=>qd(i(s))})},Fw=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},Kw=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Vi=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>$d({prefix:e,name:t,encode(i){return Kw(i,n,r)},decode(i){return Fw(i,n,r,t)}});var zd=Du({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),W3=Du({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var X3=Vi({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Z3=Vi({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Hd=Vi({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),j3=Vi({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var qw=t=>t.toString().split("/").slice(1),$i=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),Ce=t=>({match:e=>$i(r=>r===t).match(e),pattern:t}),go=()=>({match:t=>$i(e=>typeof e=="string").match(t),pattern:"{string}"}),Gd=()=>({match:t=>$i(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),_t=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{zd.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),mo=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{Hd.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),Wt=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),Yt=(...t)=>({match:e=>{let r;for(let n of t){let i=n.match(e);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),Re=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function Oe(...t){function e(i){let s=qw(i);for(let o of t){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return e(i)!==!1}function n(i){let s=e(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var ku=Re(Ce("dns4"),go()),Ou=Re(Ce("dns6"),go()),Mu=Re(Ce("dnsaddr"),go()),Wd=Re(Ce("dns"),go()),iB=Oe(ku),sB=Oe(Ou),oB=Oe(Mu),aB=Oe(Yt(Wd,Mu,ku,Ou)),Yd=Re(Ce("ip4"),$i(Qs)),Qd=Re(Ce("ip6"),$i(Xs)),Xd=Yt(Yd,Qd),zi=Yt(Xd,Wd,ku,Ou,Mu),cB=Oe(zi),uB=Oe(Yd),lB=Oe(Qd),fB=Oe(Xd),xo=Re(zi,Ce("tcp"),Gd()),Hi=Re(zi,Ce("udp"),Gd()),Vw=Yt(xo,Hi),hB=Oe(xo),dB=Oe(Hi),Uu=Re(Hi,Ce("quic")),bo=Re(Hi,Ce("quic-v1")),$w=Yt(Uu,bo),pB=Oe(Uu),mB=Oe(bo),Nu=Yt(zi,xo,Hi,Uu,bo),Zd=Yt(Re(Nu,Ce("ws"),Wt(_t()))),yB=Oe(Zd),jd=Yt(Re(Nu,Ce("wss"),Wt(_t())),Re(Nu,Ce("tls"),Ce("ws"),Wt(_t()))),gB=Oe(jd),Jd=Re(Vw,Ce("webrtc-direct"),mo(),Wt(mo()),Wt(_t())),xB=Oe(Jd),ep=Re(bo,Ce("webtransport"),mo(),mo(),Wt(_t())),bB=Oe(ep),yo=Yt(Zd,jd,Re(xo,Wt(_t())),Re($w,Wt(_t())),Re(zi,Wt(_t())),Jd,ep,_t()),wB=Oe(yo),zw=Re(yo,Ce("p2p-circuit"),_t()),Fu=Oe(zw),Hw=Yt(Re(yo,Ce("p2p-circuit"),Ce("webrtc"),_t()),Re(yo,Ce("webrtc"),Wt(_t())),Ce("webrtc")),EB=Oe(Hw);function Ku(t){try{let{address:e}=t.nodeAddress();return!!po(e)}catch{return!0}}function Gw(t,e){let r=Ku(t.multiaddr),n=Ku(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Ww(t,e){return t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}function Yw(t,e){let r=Fu.exactMatch(t.multiaddr),n=Fu.exactMatch(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Zn(t,e){let r=Gw(t,e);if(r!==0)return r;let n=Yw(t,e);return n!==0?n:Ww(t,e)}var Vu=we(Vc(),1),$u=we(np(),1);function wo(t,e,r){return`${t}?name=${e}&type=${r}`}async function ip(t,e){return await(await fetch(t,{headers:new Headers({accept:"application/dns-json"}),signal:e})).json()}function fn(t,e){return`${e}_${t}`}var qu=Object.assign((0,Vu.default)("dns-over-http-resolver"),{error:(0,Vu.default)("dns-over-http-resolver:error")}),zu=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(e={}){this._cache=new $u.default({max:e?.maxCache??100}),this._TXTcache=new $u.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??ip,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>{e.abort()})}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return this.resolve4(e);case"AAAA":return this.resolve6(e);case"TXT":return this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(fn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(wo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(fn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),qu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(fn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(wo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(fn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),qu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(fn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(wo(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(fn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),qu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},sp=zu;var op=sp;var{code:Jw}=ue("dnsaddr");async function jn(t,e={}){let r=new op;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===Jw)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var mp=we(pp(),1),_o=mp.default;var hr;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(hr||(hr={}));var F;(function(t){t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var sE={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:jn},addressSorter:Zn},transportManager:{faultTolerance:gr.FATAL_ALL}};function yp(t){let e=_o(sE,t);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new S(hr.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return e}var ym=we(hm(),1);function Io(t){if(bs(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:Le(r),t.forEach(n=>{if(!Tr(n))throw new S("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=Le(i);if(e==null||!e.equals(s))throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function Se(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function cl(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Wi=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=cl(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var Yi=class extends an.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Wi,...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.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#g(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#g(),!0):!1}}return!1}#g(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}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.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=lr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof ur&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};function GE(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var ul=class{#e=[];enqueue(e,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new S("missing peer id",Aa);let s={priority:i,peerId:n,run:e};if(this.size>0&&this.#e[this.size-1].priority>=i){this.#e.push(s);return}let o=GE(this.#e,s,(a,c)=>c.priority-a.priority);this.#e.splice(o,0,s)}dequeue(){return this.#e.shift()?.run}filter(e){if(e.peerId!=null){let r=e.peerId;return this.#e.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}},Co=class extends Yi{results;constructor(e={}){super({...e,queueClass:ul}),this.results=new et}hasJob(e){return this.sizeBy({peerId:e})>0}async joinJob(e){let r=this.results.get(e);if(r==null)throw new S("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Se(),this.results.set(e,r)),r.promise}async add(e,r){let n=r?.peerId;if(n==null)throw new S("missing peer id",Aa);return this.results.set(r.peerId,!0),super.add(async i=>{try{let s=await e(i),o=this.results.get(n);return o!=null&&o!==!0&&o.resolve(s),s}catch(s){let o=this.results.get(n);throw o!=null&&o!==!0&&o.reject(s),s}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};var Ro="last-dial-failure";var To=5,Bo=100,Lo=50,dm=1e3*60*7;var dn={minConnections:To,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:dm,autoDialDiscoveredPeersDebounce:10},Po=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??dn.minConnections,this.autoDialPriority=r.autoDialPriority??dn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??dn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??dn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??dn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??dn.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new Co({concurrency:r.autoDialConcurrency??dn.autoDialConcurrency}),this.queue.addListener("error",i=>{this.log.error("error during auto-dial",i)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{this.log.error(i)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{this.log.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),r=e.size;if(r>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",r,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new vt(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new et;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,d=o.get(l.id)??0;return f>d?-1:f<d?1:0}).filter(u=>{let l=u.metadata.get(Ro);if(l==null)return!0;let f=parseInt(ie(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){this.log("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{this.log.error("could not connect to peerStore stored peer",l)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var pm={maxConnections:Bo,allow:[]},Do=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??pm.maxConnections,this.allow=r.allow??pm.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new et;for(let a of e){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,d=c.timeline.open;return f<d?1:f>d?-1:0}),o=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function No(t){let e=new globalThis.AbortController;function r(){e.abort();for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of t){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}function dl(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Qi=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=dl(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var ii=class extends an.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Qi,...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.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#g(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#g(),!0):!1}}return!1}#g(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}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.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=lr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof ur&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};async function pl(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await QE(t,e),o=(await Promise.all(n.map(async a=>pl(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return e.log("resolved %s to",t,o.map(a=>a.toString())),o}async function QE(t,e){try{return t=ke(t.toString()),await t.resolve(e)}catch(r){return e.log.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}function mm(...t){let e=[];for(let n of t)n!=null&&(ht(1/0,n),e.push(n));let r=No(e);return ht(1/0,r),r}var ko={addressSorter:Zn,maxParallelDials:Lo,maxPeerAddrsToDial:25,dialTimeout:3e4,resolvers:{dnsaddr:jn}},Oo=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;log;constructor(e,r={}){this.addressSorter=r.addressSorter??ko.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??ko.maxPeerAddrsToDial,this.dialTimeout=r.dialTimeout??ko.dialTimeout,this.connections=r.connections??new et,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController,ht(1/0,this.shutDownController.signal),this.pendingDialCount=e.metrics?.registerMetric("libp2p_dial_queue_pending_dials"),this.inProgressDialCount=e.metrics?.registerMetric("libp2p_dial_queue_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))js.set(n,i);this.queue=new ii({concurrency:r.maxParallelDials??ko.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{this.log.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}start(){this.shutDownController=new AbortController}stop(){this.shutDownController.abort(),this.queue.clear()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=Io(e),s=i.map(d=>({multiaddr:d,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(d){throw o.clear(),d}let c=Array.from(this.connections.values()).flat().find(d=>r.force===!0?!1:a.find(p=>p.multiaddr.equals(d.remoteAddr)));if(c!=null)return this.log("already connected to %a",c.remoteAddr),c;let u=this.pendingDials.find(d=>!!(d.peerId!=null&&n!=null&&d.peerId.equals(n)||a.map(({multiaddr:p})=>p.toString()).join()===d.multiaddrs.map(p=>p.toString()).join()));if(u!=null)return this.log("joining existing dial target for %p",n),o.clear(),u.promise;this.log("creating dial target for",a.map(({multiaddr:d})=>d.toString()));let l={id:XE(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:d})=>d)};l.promise=this.performDial(l,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(d=>d.id!==l.id),o.clear()}).catch(async d=>{if(this.log.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),d),n!=null)try{await this.peerStore.patch(n,{metadata:{[Ro]:Y(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new S(d.message,ws):d}),this.pendingDials.push(l);let f=await l.promise;return c=Array.from(this.connections.values()).flat().find(d=>r.force===!0?!1:d.id!==f.id&&d.remoteAddr.equals(f.remoteAddr)),c!=null?(this.log("already connected to %a",c.remoteAddr),await f.close(),c):(this.log("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(e){let r=No([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);return ht(1/0,r),r}async calculateMultiaddrs(e,r=[],n={}){if(e!=null){if(this.peerId.equals(e))throw new S("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(e)===!0)throw new S("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.peerStore.get(e);r.push(...l.addresses),this.log("loaded multiaddrs for %p",e,r.map(({multiaddr:f})=>f.toString()))}catch(l){if(l.code!==F.ERR_NOT_FOUND)throw l}}}let i=(await Promise.all(r.map(async l=>{let f=await pl(l.multiaddr,{...n,log:this.log});return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(d=>({multiaddr:d,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;i=i.map(f=>f.multiaddr.protos().pop()?.path===!0?f:f.multiaddr.getPeerId()==null?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f)}let s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return e!=null&&f!=null?e.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),d=o.get(f);if(d!=null){d.isCertified=d.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(this.log("addresses for %p before filtering",e??"unknown peer",i.map(({multiaddr:l})=>l.toString())),this.log("addresses for %p after filtering",e??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new S("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new S("dial with more addresses than allowed",F.ERR_TOO_MANY_ADDRESSES);let c=[];for(let l of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(l.multiaddr)||c.push(l);let u=c.sort(this.addressSorter);if(u.length===0)throw new S("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(e,r={}){let n=e.multiaddrs.map(()=>new AbortController);try{let i=new ii({concurrency:1});i.on("error",o=>{this.log.error("error dialing %s %o",e.multiaddrs,o)});let s=await Promise.any(e.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new S("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=mm(c.signal,r.signal);u.addEventListener("abort",()=>{this.log("dial to %a aborted",o)});let l=Se();return await i.add(async()=>{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new vn);return}await this.queue.add(async()=>{try{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new vn);return}e.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){this.log("multiple dials succeeded, closing superfluous connection"),f.close().catch(d=>{this.log.error("error closing superfluous connection",d)}),l.reject(new vn);return}n[a]=void 0,n.forEach(d=>{d!==void 0&&d.abort()}),this.log("dial to %a succeeded",o),l.resolve(f)}catch(f){this.log.error("error during dial of %a",o,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),l.promise}));if(s==null)throw new S("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",s}catch(i){throw e.status="error",e.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function XE(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var JE=50,pn={minConnections:To,maxConnections:Bo,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Mo=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??pn.maxConnections;let n=r.minConnections??pn.minConnections;if(this.maxConnections<n)throw new S("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new et,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>ke(i)),this.deny=(r.deny??[]).map(i=>ke(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??pn.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new ym.RateLimiterMemory({points:r.inboundConnectionThreshold??pn.inboundConnectionThreshold,duration:1}),this.autoDial=new Po({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??pn.autoDialConcurrency,autoDialPriority:r.autoDialPriority??pn.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??pn.autoDialMaxQueueLength}),this.connectionPruner=new Do({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Oo({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater,logger:e.logger},{addressSorter:r.addressSorter??Zn,maxParallelDials:r.maxParallelDials??Lo,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:jn},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.dialQueue.start(),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[r=>r.tags.has(e0)]});await Promise.all(e.map(async r=>{await this.openConnection(r.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){this.log.error(i)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(r=>{this.log.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=Io(e);if(n!=null&&r.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??JE}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(e,r={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,i),!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(){return this.dialQueue.pendingDials}};var Uo=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}},si=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Uo(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new Uo(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var gl=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function gm(t={}){return ev(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function ev(t,e){e=e??{};let r=e.onEnd,n=new si,i,s,o,a=Se(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(t(n))}catch(b){g(b)}return i}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Se()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new si,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},d=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new si,d(),{done:!0}),h=y=>(d(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:h,push:f,end:d,get readableLength(){return n.size},onEmpty:async y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((A,E)=>{b=()=>{E(new gl)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength},onEmpty:y=>m.onEmpty(y)},i}function tv(t){return t[Symbol.asyncIterator]!=null}function rv(...t){let e=[];for(let r of t)tv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=gm({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Xi=rv;var Fo=globalThis.CustomEvent??Event;async function*Zi(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,i=new EventTarget,s=[],o=Se(),a=Se(),c=!1,u,l=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of t){if(s.length===r&&(o=Se(),await o.promise),l)break;let m={done:!1};s.push(m),h().then(y=>{m.done=!0,m.ok=!0,m.value=y,i.dispatchEvent(new Fo("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new Fo("task-complete"))})}c=!0,i.dispatchEvent(new Fo("task-complete"))}catch(h){u=h,i.dispatchEvent(new Fo("task-complete"))}});function f(){return n?s[0]?.done:!!s.find(h=>h.done)}function*d(){for(;s.length>0&&s[0].done;){let h=s[0];if(s.shift(),h.ok)yield h.value;else throw l=!0,o.resolve(),h.err;o.resolve()}}function*p(){for(;f();)for(let h=0;h<s.length;h++)if(s[h].done){let m=s[h];if(s.splice(h,1),h--,m.ok)yield m.value;else throw l=!0,o.resolve(),m.err;o.resolve()}}for(;;){if(f()||(a=Se(),await a.promise),u!=null)throw u;if(n?yield*d():yield*p(),c&&s.length===0)break}}var Ko=class{log;routers;started;components;constructor(e,r){this.log=e.logger.forComponent("libp2p:content-routing"),this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new vt;for await(let s of Zi(async function*(){let o=Xi(...n.routers.map(a=>a.findProviders(e,r)));for await(let a of o)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.components.peerRouting.findPeer(a.id,{...r,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs",c);return}return a}}()))s!=null&&s.multiaddrs.length!==0&&(await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!i.has(s.id)&&(i.add(s.id),yield s))}async provide(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new S(hr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(e,r,n)}))}async get(e,r){if(!this.isStarted())throw new S(hr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,r)))}};var qo=class{log;peerId;peerStore;routers;constructor(e,r){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=r.routers??[]}async findPeer(e,r){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new S("Should not try to find self",F.ERR_FIND_SELF);let n=this,i=Xi(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,r)}catch(o){n.log.error(o)}}()));for await(let s of i)if(s!=null)return await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),s;throw new S(hr.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(e,r={}){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new vt;for await(let s of Zi(async function*(){let o=Xi(...n.routers.map(a=>a.getClosestPeers(e,r)));for await(let a of o)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...r,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}),!i.has(s.id)&&(i.add(s.id),yield s))}};var xl=32,bl=64,Vo=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw new S(`No handler registered for protocol ${e}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new S(`Handler already registered for protocol ${e}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=_o.bind({ignoreUndefined:!0})({maxInboundStreams:xl,maxOutboundStreams:bl},n);this.handlers.set(e,{handler:r,options:i}),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,r){if(r==null)throw new S("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==F.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(e){let{peer:r,previous:n}=e.detail,i=(n?.protocols??[]).filter(s=>!r.protocols.includes(s));for(let s of i){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onDisconnect?.(r.id)}}_onPeerIdentify(e){let r=e.detail.protocols,n=e.detail.connection,i=e.detail.peerId;for(let s of r){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(i,n)}}};var wl=class extends Map{metric;constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function xm(t){let{name:e,metrics:r}=t,n;return r!=null?n=new wl({name:e,metrics:r}):n=new Map,n}var $o=class{log;components;transports;listeners;faultTolerance;started;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=xm({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??gr.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new S("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new S(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}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[r,n]of this.listeners)for(this.log("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),this.log("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new S(`No transport available for address ${String(e)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let d=f.findIndex(p=>p===l);f.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==gr.NO_FATAL)throw new S(`Transport (${n}) could not listen on any available address`,F.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===gr.FATAL_ALL)throw new S(n,F.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let r=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var Ze="/multistream/1.0.0";var zo=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function Ho(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new zo(r?.errorMessage,r?.errorCode));let n,i=new zo(r?.errorMessage,r?.errorCode);try{return await Promise.race([t,new Promise((s,o)=>{n=()=>{o(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var El=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Se(),this.haveNext=Se()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let e=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Se(),e}async throw(e){return this.ended=!0,e!=null&&this.haveNext.reject(e),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return await this._push(void 0),e}async push(e,r){await this._push(e,r)}async end(e,r){e!=null?await this.throw(e):await this._push(void 0,r)}async _push(e,r){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Se(),await Ho(this.needNext.promise,r?.signal,r)}};function bm(){return new El}var Go=class extends Error{code;constructor(e,r){super(e),this.code=r}},vl=class extends Go{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function wm(t,e){let r=bm();t.sink(r).catch(async o=>{await r.end(o)}),t.sink=async o=>{for await(let a of o)await r.push(a);await r.end()};let n=t.source;t.source[Symbol.iterator]!=null?n=t.source[Symbol.iterator]():t.source[Symbol.asyncIterator]!=null&&(n=t.source[Symbol.asyncIterator]());let i=new Ve;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((l,f)=>{c=()=>{f(new vl("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:f,value:d}=await Promise.race([n.next(),u]);return f===!0?new Ve:d}for(;i.byteLength<o;){let{value:f,done:d}=await Promise.race([n.next(),u]);if(d===!0)throw new Go("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(f)}let l=i.sublist(0,o);return i.consume(o),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await r.push(o,a):await r.push(o.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let o=t.source;t.source=async function*(){e?.yieldBytes===!1?yield i:yield*i,yield*o}()}return t}}}function Em(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function vm(t=0){return globalThis.Buffer?.allocUnsafe!=null?Em(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Wo(t){return t[Symbol.asyncIterator]!=null}var Yo=t=>{let e=rt(t),r=vm(e);return lt(t,r),Yo.bytes=e,r};Yo.bytes=0;function mn(t,e){e=e??{};let r=e.lengthEncoder??Yo;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Wo(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}mn.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Yo;return new Ve(r(t.byteLength),t)};var oi=we(Au(),1);var nv=8,iv=1024*1024*4,yn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(yn||(yn={}));var Sl=t=>{let e=kt(t);return Sl.bytes=rt(e),e};Sl.bytes=0;function _l(t,e){let r=new Ve,n=yn.LENGTH,i=-1,s=e?.lengthDecoder??Sl,o=e?.maxLengthLength??nv,a=e?.maxDataLength??iv;function*c(){for(;r.byteLength>0;){if(n===yn.LENGTH)try{if(i=s(r),i<0)throw(0,oi.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,oi.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=yn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,oi.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===yn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=yn.LENGTH}}}return Wo(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,oi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,oi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}_l.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return _l(n,{...e??{},onLength:s=>{r=s}})};var Qo=class extends Error{code;constructor(e,r){super(e),this.code=r}},_m=t=>kt(t);_m.bytes=0;function ji(t,e={}){let r=wm(t,e);return e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=rt(e.maxDataLength)),{read:async i=>{let s=-1,o=new Ve,a=e?.lengthDecoder??_m;for(;;){o.append(await r.read(1,i));try{s=a(o)}catch(c){if(c instanceof RangeError)continue;throw c}if(e?.maxLengthLength!=null&&o.byteLength>e.maxLengthLength)throw new Qo("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(s>-1)break}if(e?.maxDataLength!=null&&s>e.maxDataLength)throw new Qo("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(s,i)},write:async(i,s)=>{await r.write(mn.single(i,e),s)},writeV:async(i,s)=>{let o=new Ve(...i.map(a=>mn.single(a,e)));await r.write(o,s)},unwrap:()=>r.unwrap()}}var ov=Y(`
49
- `);async function gn(t,e,r){await t.write(e,r)}async function Sm(t,e,r){await t.writeV(e,r)}async function av(t,e){let r=await t.read(e);if(r.byteLength===0||r.get(r.byteLength-1)!==ov[0])throw e.log.error("Invalid mss message - missing newline",r),new S("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return r.sublist(0,-1)}async function Nr(t,e){let r=await av(t,e);return ie(r.subarray())}async function Ji(t,e,r){if(e=Array.isArray(e)?[...e]:[e],e.length===1&&r.negotiateFully===!1)return cv(t,e[0],r);let n=ji(t,{...r,maxDataLength:1024}),i=e.shift();if(i==null)throw new Error("At least one protocol must be specified");r.log.trace('select: write ["%s", "%s"]',Ze,i);let s=Y(`${Ze}
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),bw=new RegExp(`(?:^${Ot}$)|(?:^${oo}$)`),ww=new RegExp(`^${Ot}$`),Ew=new RegExp(`^${oo}$`),Su=t=>t&&t.exact?bw:new RegExp(`(?:${Dr(t)}${Ot}${Dr(t)})|(?:${Dr(t)}${oo}${Dr(t)})`,"g");Su.v4=t=>t&&t.exact?ww:new RegExp(`${Dr(t)}${Ot}${Dr(t)}`,"g");Su.v6=t=>t&&t.exact?Ew:new RegExp(`${Dr(t)}${oo}${Dr(t)}`,"g");var Id=Su;var Ld=we(Cd(),1),{isValid:vw,parse:_w}=Ld.default,Sw=["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"],Aw=Sw.map(t=>new Bd.Netmask(t));function Iw(t){for(let e of Aw)if(e.contains(t))return!0;return!1}function Td(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^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(t)||/^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(t)||/^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(t)||/^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(t)||/^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(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var Dd=t=>{if(vw(t)){let e=_w(t);if(e.kind()==="ipv4")return Iw(e.toNormalizedString());if(e.kind()==="ipv6")return Td(t)}else if(Vn(t)&&Id.v6().test(t))return Td(t)};var co=Dd;function Pd(t={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let r=e.stringTuples();return r[0][0]===4||r[0][0]===41?!!co(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...t}}function Rw(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,A=new Uint8Array(b);g!==x;){for(var E=h[g],_=0,T=b-1;(E!==0||_<y)&&T!==-1;T--,_++)E+=256*A[T]>>>0,A[T]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=_,g++}for(var D=b-y;D!==b&&A[D]===0;)D++;for(var z=c.repeat(m);D<b;++D)z+=t.charAt(A[D]);return z}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var A=r[h.charCodeAt(m)];if(A===255)return;for(var E=0,_=x-1;(A!==0||E<g)&&_!==-1;_--,E++)A+=a*b[_]>>>0,b[_]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");g=E,m++}if(h[m]!==" "){for(var T=x-g;T!==x&&b[T]===0;)T++;for(var D=new Uint8Array(y+(x-T)),z=y;T!==x;)D[z++]=b[T++];return D}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var Cw=Rw,Tw=Cw,Nd=Tw;var A3=new Uint8Array(0);var kd=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Au=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Iu=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Od(this,e)}},Ru=class{constructor(e){this.decoders=e}or(e){return Od(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Od=(t,e)=>new Ru({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Cu=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Au(e,r,n),this.decoder=new Iu(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Md=({name:t,prefix:e,encode:r,decode:n})=>new Cu(t,e,r,n),Tu=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=Nd(r,e);return Md({prefix:t,name:e,encode:n,decode:s=>kd(i(s))})},Bw=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},Lw=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Ki=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Md({prefix:e,name:t,encode(i){return Lw(i,n,r)},decode(i){return Bw(i,n,r,t)}});var Ud=Tu({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),L3=Tu({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var N3=Ki({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),k3=Ki({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fd=Ki({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),O3=Ki({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Dw=t=>t.toString().split("/").slice(1),qi=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),Ce=t=>({match:e=>qi(r=>r===t).match(e),pattern:t}),fo=()=>({match:t=>qi(e=>typeof e=="string").match(t),pattern:"{string}"}),Kd=()=>({match:t=>qi(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),St=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{Ud.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),uo=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{Fd.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),Wt=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),Yt=(...t)=>({match:e=>{let r;for(let n of t){let i=n.match(e);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),Te=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function Me(...t){function e(i){let s=Dw(i);for(let o of t){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return e(i)!==!1}function n(i){let s=e(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Lu=Te(Ce("dns4"),fo()),Du=Te(Ce("dns6"),fo()),Pu=Te(Ce("dnsaddr"),fo()),qd=Te(Ce("dns"),fo()),V3=Me(Lu),$3=Me(Du),z3=Me(Pu),H3=Me(Yt(qd,Pu,Lu,Du)),Vd=Te(Ce("ip4"),qi(zs)),$d=Te(Ce("ip6"),qi(Hs)),zd=Yt(Vd,$d),Vi=Yt(zd,qd,Lu,Du,Pu),G3=Me(Vi),W3=Me(Vd),Y3=Me($d),Q3=Me(zd),ho=Te(Vi,Ce("tcp"),Kd()),$i=Te(Vi,Ce("udp"),Kd()),Pw=Yt(ho,$i),X3=Me(ho),Z3=Me($i),Nu=Te($i,Ce("quic")),po=Te($i,Ce("quic-v1")),Nw=Yt(Nu,po),j3=Me(Nu),J3=Me(po),Bu=Yt(Vi,ho,$i,Nu,po),Hd=Yt(Te(Bu,Ce("ws"),Wt(St()))),eB=Me(Hd),Gd=Yt(Te(Bu,Ce("wss"),Wt(St())),Te(Bu,Ce("tls"),Ce("ws"),Wt(St()))),tB=Me(Gd),Wd=Te(Pw,Ce("webrtc-direct"),uo(),Wt(uo()),Wt(St())),rB=Me(Wd),Yd=Te(po,Ce("webtransport"),uo(),uo(),Wt(St())),nB=Me(Yd),lo=Yt(Hd,Gd,Te(ho,Wt(St())),Te(Nw,Wt(St())),Te(Vi,Wt(St())),Wd,Yd,St()),iB=Me(lo),kw=Te(lo,Ce("p2p-circuit"),St()),ku=Me(kw),Ow=Yt(Te(lo,Ce("p2p-circuit"),Ce("webrtc"),St()),Te(lo,Ce("webrtc"),Wt(St())),Ce("webrtc")),sB=Me(Ow);function Ou(t){try{let{address:e}=t.nodeAddress();return!!co(e)}catch{return!0}}function Mw(t,e){let r=Ou(t.multiaddr),n=Ou(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Uw(t,e){return t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}function Fw(t,e){let r=ku.exactMatch(t.multiaddr),n=ku.exactMatch(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Qn(t,e){let r=Mw(t,e);if(r!==0)return r;let n=Fw(t,e);return n!==0?n:Uw(t,e)}var Uu=we(Uc(),1),Fu=we(Zd(),1);function mo(t,e,r){return`${t}?name=${e}&type=${r}`}async function jd(t,e){return await(await fetch(t,{headers:new Headers({accept:"application/dns-json"}),signal:e})).json()}function ln(t,e){return`${e}_${t}`}var Mu=Object.assign((0,Uu.default)("dns-over-http-resolver"),{error:(0,Uu.default)("dns-over-http-resolver:error")}),Ku=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(e={}){this._cache=new Fu.default({max:e?.maxCache??100}),this._TXTcache=new Fu.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??jd,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>{e.abort()})}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return this.resolve4(e);case"AAAA":return this.resolve6(e);case"TXT":return this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(ln(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(mo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(ln(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Mu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(ln(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(mo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(ln(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Mu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(ln(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(mo(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(ln(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Mu.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Jd=Ku;var ep=Jd;var{code:zw}=ue("dnsaddr");async function Xn(t,e={}){let r=new ep;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===zw)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var up=we(cp(),1),xo=up.default;var lr;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(lr||(lr={}));var F;(function(t){t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var Xw={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:Xn},addressSorter:Qn},transportManager:{faultTolerance:mr.FATAL_ALL}};function lp(t){let e=xo(Xw,t);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new S(lr.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return e}var lm=we(om(),1);function Eo(t){if(ds(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:De(r),t.forEach(n=>{if(!Tr(n))throw new S("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=De(i);if(e==null||!e.equals(s))throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function Ne(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var vo=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}},ri=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new vo(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new vo(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var il=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function _o(t={}){return ME(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function ME(t,e){e=e??{};let r=e.onEnd,n=new ri,i,s,o,a=Ne(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(t(n))}catch(b){g(b)}return i}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ne()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new ri,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},d=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new ri,d(),{done:!0}),h=y=>(d(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:h,push:f,end:d,get readableLength(){return n.size},onEmpty:async y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((A,E)=>{b=()=>{E(new il)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength},onEmpty:y=>m.onEmpty(y)},i}var sl=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function So(t,e,r,n){let i=new sl(n?.errorMessage,n?.errorCode);return r?.aborted===!0?Promise.reject(i):new Promise((s,o)=>{let a=u=>{n?.filter?.(u)!==!1&&(t.removeEventListener(e,a),r?.removeEventListener("abort",c),s(u))},c=()=>{t.removeEventListener(e,a),r?.removeEventListener("abort",c),o(i)};t.addEventListener(e,a),r?.addEventListener("abort",c)})}var Ao=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function ni(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new Ao(r?.errorMessage,r?.errorCode));let n,i=new Ao(r?.errorMessage,r?.errorCode);try{return await Promise.race([t,new Promise((s,o)=>{n=()=>{o(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Io=class{deferred;signal;where;constructor(e,r){this.signal=r,this.deferred=Ne(),this.where=e,this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(new yr)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function UE(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ro=class{id;fn;options;priority;recipients;status;timeline;controller;constructor(e,r,n=0){this.id=UE(),this.status="queued",this.fn=e,this.priority=n,this.options=r,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,wt(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((r,n)=>r&&n.signal?.aborted===!0,!0)&&this.controller.abort(new yr)}async join(e={}){let r=new Io(new Error("where").stack,e.signal);return this.recipients.push(r),e.signal?.addEventListener("abort",this.onAbort),r.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await ni(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(r=>{r.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(r=>{r.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.signal?.removeEventListener("abort",this.onAbort)})}};function FE(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var ii=class extends qr{concurrency;queue;pending;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let r of this.queue)if(r.status==="queued"){e=r;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let r=0;r<this.queue.length;r++)if(this.queue[r]===e){this.queue.splice(r,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){if(this.queue[this.size-1]?.priority>=e.priority){this.queue.push(e);return}let r=FE(this.queue,e,(n,i)=>i.priority-n.priority);this.queue.splice(r,0,e)}async add(e,r){r?.signal?.throwIfAborted();let n=new Ro(e,r,r?.priority),i=n.join(r).then(s=>(this.safeDispatchEvent("completed",{detail:s}),s)).catch(s=>{throw this.safeDispatchEvent("error",{detail:s}),s});return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),i}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new yr)}),this.clear()}async onEmpty(e){this.size!==0&&await So(this,"empty",e?.signal)}async onSizeLessThan(e,r){this.size<e||await So(this,"next",r?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await So(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 r=_o({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),r.end(c)},i=c=>{c.detail!=null&&r.push(c.detail)},s=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new S("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",i),this.addEventListener("error",s),this.addEventListener("idle",o),e?.signal?.addEventListener("abort",a);try{yield*r}finally{this.removeEventListener("completed",i),this.removeEventListener("error",s),this.removeEventListener("idle",o),e?.signal?.removeEventListener("abort",a),n()}}};var Co=class extends ii{has(e){return this.find(e)!=null}find(e){return this.queue.find(r=>e.equals(r.options.peerId))}};var To="last-dial-failure";var Bo=5,Lo=100,Do=50,am=1e3*60*7;var hn={minConnections:Bo,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:am,autoDialDiscoveredPeersDebounce:10},Po=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??hn.minConnections,this.autoDialPriority=r.autoDialPriority??hn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??hn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??hn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??hn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??hn.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new Co({concurrency:r.autoDialConcurrency??hn.autoDialConcurrency,metricName:"libp2p_autodial_queue",metrics:e.metrics}),this.queue.addEventListener("error",i=>{this.log.error("error during auto-dial",i.detail)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{this.log.error(i)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{this.log.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),r=e.size;if(r>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",r,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new _t(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.has(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new lt;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,d=o.get(l.id)??0;return f>d?-1:f<d?1:0}).filter(u=>{let l=u.metadata.get(To);if(l==null)return!0;let f=parseInt(ie(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){this.log("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{this.log.error("could not connect to peerStore stored peer",l)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var cm={maxConnections:Lo,allow:[]},No=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??cm.maxConnections,this.allow=r.allow??cm.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new lt;for(let a of e){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,d=c.timeline.open;return f<d?1:f>d?-1:0}),o=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function um(t){let e=new globalThis.AbortController;function r(){e.abort();for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of t){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}async function ul(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await VE(t,e),o=(await Promise.all(n.map(async a=>ul(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return e.log("resolved %s to",t,o.map(a=>a.toString())),o}async function VE(t,e){try{return t=Ae(t.toString()),await t.resolve(e)}catch(r){return e.log.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}var ko={addressSorter:Qn,maxParallelDials:Do,maxPeerAddrsToDial:25,dialTimeout:3e4,resolvers:{dnsaddr:Xn}},Oo=class{queue;components;addressSorter;maxPeerAddrsToDial;dialTimeout;shutDownController;connections;log;constructor(e,r={}){this.addressSorter=r.addressSorter??ko.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??ko.maxPeerAddrsToDial,this.dialTimeout=r.dialTimeout??ko.dialTimeout,this.connections=r.connections??new lt,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.shutDownController=new AbortController,wt(1/0,this.shutDownController.signal);for(let[n,i]of Object.entries(r.resolvers??{}))Ws.set(n,i);this.queue=new ii({concurrency:r.maxParallelDials??ko.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("error",n=>{this.log.error("error in dial queue",n.detail)})}start(){this.shutDownController=new AbortController}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=Eo(e),s=Array.from(this.connections.values()).flat().find(a=>r.force===!0?!1:a.remotePeer.equals(n)?!0:i.find(c=>c.equals(a.remoteAddr)));if(s!=null)return this.log("already connected to %a",s.remoteAddr),s;let o=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 i)if(c.has(u.toString()))return!0;return!1});if(o!=null){this.log("joining existing dial target for %p",n);for(let a of i)o.options.multiaddrs.add(a.toString());return o.join(r)}return this.log("creating dial target for %p",n,i.map(a=>a.toString())),this.queue.add(async a=>{let c=this.createDialAbortController(a?.signal),u;try{u=await this.calculateMultiaddrs(n,a?.multiaddrs,{...a,signal:c}),u.map(({multiaddr:l})=>l.toString()).forEach(l=>{a?.multiaddrs.add(l)})}catch(l){throw c.clear(),l}try{let l=0,f=[];for(let d of u){if(l===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",l,n),new S("Peer had more than maxPeerAddrsToDial",F.ERR_TOO_MANY_ADDRESSES);l++;try{let p=await this.components.transportManager.dial(d.multiaddr,{...a,signal:c});return this.log("dial to %a succeeded",d.multiaddr),p}catch(p){if(this.log.error("dial failed to %a",d.multiaddr,p),n!=null)try{await this.components.peerStore.patch(n,{metadata:{[To]:Y(Date.now().toString())}})}catch(h){this.log.error("could not update last dial failure key for %p",n,h)}if(c.aborted)throw new S(p.message,ms);f.push(p)}}throw f.length===1?f[0]:new ps(f,"All multiaddr dials failed",F.ERR_TRANSPORT_DIAL_FAILED)}finally{c.clear()}},{peerId:n,priority:r.priority,multiaddrs:new Set(i.map(a=>a.toString())),signal:r.signal})}createDialAbortController(e){let r=um([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);return wt(1/0,r),r}async calculateMultiaddrs(e,r=new Set,n={}){let i=[...r].map(f=>({multiaddr:Ae(f),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new S("Tried to dial self",F.ERR_DIALED_SELF);if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new S("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(i.length===0){this.log("loading multiaddrs for %p",e);try{let f=await this.components.peerStore.get(e);i.push(...f.addresses),this.log("loaded multiaddrs for %p",e,i.map(({multiaddr:d})=>d.toString()))}catch(f){if(f.code!==F.ERR_NOT_FOUND)throw f}}if(i.length===0){this.log("looking up multiaddrs for %p in the peer routing",e);try{let f=await this.components.peerRouting.findPeer(e);this.log("found multiaddrs for %p in the peer routing",e,i.map(({multiaddr:d})=>d.toString())),i.push(...f.multiaddrs.map(d=>({multiaddr:d,isCertified:!1})))}catch(f){f.code!==F.ERR_NO_ROUTERS_AVAILABLE&&this.log.error("looking up multiaddrs for %p in the peer routing failed",e,f)}}}let s=(await Promise.all(i.map(async f=>{let d=await ul(f.multiaddr,{...n,log:this.log});return d.length===1&&d[0].equals(f.multiaddr)?f:d.map(p=>({multiaddr:p,isCertified:!1}))}))).flat();if(e!=null){let f=`/p2p/${e.toString()}`;s=s.map(d=>d.multiaddr.protos().pop()?.path===!0?d:d.multiaddr.getPeerId()==null?{multiaddr:d.multiaddr.encapsulate(f),isCertified:d.isCertified}:d)}let o=s.filter(f=>{if(this.components.transportManager.transportForMultiaddr(f.multiaddr)==null)return!1;let d=f.multiaddr.getPeerId();return e!=null&&d!=null?e.equals(d):!0}),a=new Map;for(let f of o){let d=f.multiaddr.toString(),p=a.get(d);if(p!=null){p.isCertified=p.isCertified||f.isCertified||!1;continue}a.set(d,f)}let c=[...a.values()];if(c.length===0)throw new S("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);let u=[];for(let f of c)this.components.connectionGater.denyDialMultiaddr!=null&&await this.components.connectionGater.denyDialMultiaddr(f.multiaddr)||u.push(f);let l=u.sort(this.addressSorter);if(l.length===0)throw new S("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return this.log.trace("addresses for %p before filtering",e??"unknown peer",s.map(({multiaddr:f})=>f.toString())),this.log.trace("addresses for %p after filtering",e??"unknown peer",l.map(({multiaddr:f})=>f.toString())),l}};var HE=50,dn={minConnections:Bo,maxConnections:Lo,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Mo=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??dn.maxConnections;let n=r.minConnections??dn.minConnections;if(this.maxConnections<n)throw new S("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new lt,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>Ae(i)),this.deny=(r.deny??[]).map(i=>Ae(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??dn.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new lm.RateLimiterMemory({points:r.inboundConnectionThreshold??dn.inboundConnectionThreshold,duration:1}),this.autoDial=new Po({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??dn.autoDialConcurrency,autoDialPriority:r.autoDialPriority??dn.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??dn.autoDialMaxQueueLength}),this.connectionPruner=new No({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Oo(e,{addressSorter:r.addressSorter??Qn,maxParallelDials:r.maxParallelDials??Do,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Xn},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.dialQueue.start(),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[r=>r.tags.has(Qf)]});await Promise.all(e.map(async r=>{await this.openConnection(r.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){this.log.error(i)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(r=>{this.log.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=Eo(e);if(n!=null&&r.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??HE}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(e,r={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,i),!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(r=>({id:r.id,status:e[r.status],peerId:r.options.peerId,multiaddrs:[...r.options.multiaddrs].map(n=>Ae(n))}))}};function GE(t){return t[Symbol.asyncIterator]!=null}function WE(...t){let e=[];for(let r of t)GE(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=_o({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Hi=WE;var Uo=class{routers;started;components;constructor(e,r){this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new _t;for await(let s of Hi(...n.routers.map(o=>o.findProviders(e,r))))s!=null&&(s.multiaddrs.length>0&&await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!i.has(s.id)&&(i.add(s.id),yield s))}async provide(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new S(lr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(e,r,n)}))}async get(e,r){if(!this.isStarted())throw new S(lr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,r)))}};var Fo=globalThis.CustomEvent??Event;async function*hl(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,i=new EventTarget,s=[],o=Ne(),a=Ne(),c=!1,u,l=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of t){if(s.length===r&&(o=Ne(),await o.promise),l)break;let m={done:!1};s.push(m),h().then(y=>{m.done=!0,m.ok=!0,m.value=y,i.dispatchEvent(new Fo("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new Fo("task-complete"))})}c=!0,i.dispatchEvent(new Fo("task-complete"))}catch(h){u=h,i.dispatchEvent(new Fo("task-complete"))}});function f(){return n?s[0]?.done:!!s.find(h=>h.done)}function*d(){for(;s.length>0&&s[0].done;){let h=s[0];if(s.shift(),h.ok)yield h.value;else throw l=!0,o.resolve(),h.err;o.resolve()}}function*p(){for(;f();)for(let h=0;h<s.length;h++)if(s[h].done){let m=s[h];if(s.splice(h,1),h--,m.ok)yield m.value;else throw l=!0,o.resolve(),m.err;o.resolve()}}for(;;){if(f()||(a=Ne(),await a.promise),u!=null)throw u;if(n?yield*d():yield*p(),c&&s.length===0)break}}var Ko=class{log;peerId;peerStore;routers;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=r.routers??[]}async findPeer(e,r){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new S("Should not try to find self",F.ERR_FIND_SELF);let n=this,i=Hi(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,r)}catch(o){n.log.error(o)}}()));for await(let s of i)if(s!=null)return s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),s;throw new S(lr.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(e,r={}){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new _t;for await(let s of hl(async function*(){let o=Hi(...n.routers.map(a=>a.getClosestPeers(e,r)));for await(let a of o)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...r,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}),!i.has(s.id)&&(i.add(s.id),yield s))}};var dl=32,pl=64,qo=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw new S(`No handler registered for protocol ${e}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new S(`Handler already registered for protocol ${e}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=xo.bind({ignoreUndefined:!0})({maxInboundStreams:dl,maxOutboundStreams:pl},n);this.handlers.set(e,{handler:r,options:i}),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,r){if(r==null)throw new S("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==F.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(e){let{peer:r,previous:n}=e.detail,i=(n?.protocols??[]).filter(s=>!r.protocols.includes(s));for(let s of i){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onDisconnect?.(r.id)}}_onPeerIdentify(e){let r=e.detail.protocols,n=e.detail.connection,i=e.detail.peerId;for(let s of r){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(i,n)}}};var ml=class extends Map{metric;constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function fm(t){let{name:e,metrics:r}=t,n;return r!=null?n=new ml({name:e,metrics:r}):n=new Map,n}var Vo=class{log;components;transports;listeners;faultTolerance;started;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=fm({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??mr.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new S("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new S(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}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[r,n]of this.listeners)for(this.log("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),this.log("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new S(`No transport available for address ${String(e)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let d=f.findIndex(p=>p===l);f.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==mr.NO_FATAL)throw new S(`Transport (${n}) could not listen on any available address`,F.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===mr.FATAL_ALL)throw new S(n,F.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let r=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var Ze="/multistream/1.0.0";var yl=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Ne(),this.haveNext=Ne()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let e=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Ne(),e}async throw(e){return this.ended=!0,e!=null&&this.haveNext.reject(e),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return await this._push(void 0),e}async push(e,r){await this._push(e,r)}async end(e,r){e!=null?await this.throw(e):await this._push(void 0,r)}async _push(e,r){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ne(),await ni(this.needNext.promise,r?.signal,r)}};function hm(){return new yl}var $o=class extends Error{code;constructor(e,r){super(e),this.code=r}},gl=class extends $o{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function dm(t,e){let r=hm();t.sink(r).catch(async o=>{await r.end(o)}),t.sink=async o=>{for await(let a of o)await r.push(a);await r.end()};let n=t.source;t.source[Symbol.iterator]!=null?n=t.source[Symbol.iterator]():t.source[Symbol.asyncIterator]!=null&&(n=t.source[Symbol.asyncIterator]());let i=new Ve;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((l,f)=>{c=()=>{f(new gl("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:f,value:d}=await Promise.race([n.next(),u]);return f===!0?new Ve:d}for(;i.byteLength<o;){let{value:f,done:d}=await Promise.race([n.next(),u]);if(d===!0)throw new $o("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(f)}let l=i.sublist(0,o);return i.consume(o),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await r.push(o,a):await r.push(o.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let o=t.source;t.source=async function*(){e?.yieldBytes===!1?yield i:yield*i,yield*o}()}return t}}}function zo(t){return t[Symbol.asyncIterator]!=null}var Ho=t=>{let e=rt(t),r=Je(e);return ft(t,r),Ho.bytes=e,r};Ho.bytes=0;function pn(t,e){e=e??{};let r=e.lengthEncoder??Ho;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return zo(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}pn.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Ho;return new Ve(r(t.byteLength),t)};var si=we(Eu(),1);var YE=8,QE=1024*1024*4,mn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(mn||(mn={}));var bl=t=>{let e=kt(t);return bl.bytes=rt(e),e};bl.bytes=0;function xl(t,e){let r=new Ve,n=mn.LENGTH,i=-1,s=e?.lengthDecoder??bl,o=e?.maxLengthLength??YE,a=e?.maxDataLength??QE;function*c(){for(;r.byteLength>0;){if(n===mn.LENGTH)try{if(i=s(r),i<0)throw(0,si.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,si.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=mn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,si.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===mn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=mn.LENGTH}}}return zo(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,si.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,si.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}xl.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return xl(n,{...e??{},onLength:s=>{r=s}})};var Go=class extends Error{code;constructor(e,r){super(e),this.code=r}},pm=t=>kt(t);pm.bytes=0;function Gi(t,e={}){let r=dm(t,e);return e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=rt(e.maxDataLength)),{read:async i=>{let s=-1,o=new Ve,a=e?.lengthDecoder??pm;for(;;){o.append(await r.read(1,i));try{s=a(o)}catch(c){if(c instanceof RangeError)continue;throw c}if(e?.maxLengthLength!=null&&o.byteLength>e.maxLengthLength)throw new Go("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(s>-1)break}if(e?.maxDataLength!=null&&s>e.maxDataLength)throw new Go("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(s,i)},write:async(i,s)=>{await r.write(pn.single(i,e),s)},writeV:async(i,s)=>{let o=new Ve(...i.map(a=>pn.single(a,e)));await r.write(o,s)},unwrap:()=>r.unwrap()}}var ZE=Y(`
49
+ `);async function yn(t,e,r){await t.write(e,r)}async function mm(t,e,r){await t.writeV(e,r)}async function jE(t,e){let r=await t.read(e);if(r.byteLength===0||r.get(r.byteLength-1)!==ZE[0])throw e.log.error("Invalid mss message - missing newline",r),new S("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return r.sublist(0,-1)}async function Nr(t,e){let r=await jE(t,e);return ie(r.subarray())}async function Wi(t,e,r){if(e=Array.isArray(e)?[...e]:[e],e.length===1&&r.negotiateFully===!1)return JE(t,e[0],r);let n=Gi(t,{...r,maxDataLength:1024}),i=e.shift();if(i==null)throw new Error("At least one protocol must be specified");r.log.trace('select: write ["%s", "%s"]',Ze,i);let s=Y(`${Ze}
50
50
  `),o=Y(`${i}
51
- `);await Sm(n,[s,o],r),r.log.trace("select: reading multistream-select header");let a=await Nr(n,r);if(r.log.trace('select: read "%s"',a),a===Ze&&(r.log.trace("select: reading protocol response"),a=await Nr(n,r),r.log.trace('select: read "%s"',a)),a===i)return{stream:n.unwrap(),protocol:i};for(let c of e){r.log.trace('select: write "%s"',c),await gn(n,Y(`${c}
52
- `),r),r.log.trace("select: reading protocol response");let u=await Nr(n,r);if(r.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}function cv(t,e,r){let n=t.sink.bind(t),i=t.source,s=!1,o=!1,a=Se(),c=!1,u=!1,l=Se(),f=!1,d=!1,p=Se(),h=ji({sink:n,source:i},{...r,maxDataLength:1024});t.sink=async x=>{let{sink:b}=h.unwrap();await b(async function*(){let A=!1;for await(let E of x){if(u&&await l.promise,c)yield E;else{u=!0,r.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',Ze,e,E.byteLength);let _=`${e}
51
+ `);await mm(n,[s,o],r),r.log.trace("select: reading multistream-select header");let a=await Nr(n,r);if(r.log.trace('select: read "%s"',a),a===Ze&&(r.log.trace("select: reading protocol response"),a=await Nr(n,r),r.log.trace('select: read "%s"',a)),a===i)return{stream:n.unwrap(),protocol:i};for(let c of e){r.log.trace('select: write "%s"',c),await yn(n,Y(`${c}
52
+ `),r),r.log.trace("select: reading protocol response");let u=await Nr(n,r);if(r.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}function JE(t,e,r){let n=t.sink.bind(t),i=t.source,s=!1,o=!1,a=Ne(),c=!1,u=!1,l=Ne(),f=!1,d=!1,p=Ne(),h=Gi({sink:n,source:i},{...r,maxDataLength:1024});t.sink=async x=>{let{sink:b}=h.unwrap();await b(async function*(){let A=!1;for await(let E of x){if(u&&await l.promise,c)yield E;else{u=!0,r.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',Ze,e,E.byteLength);let _=`${e}
53
53
  `;yield new Ve(Uint8Array.from([19]),Y(`${Ze}
54
- `),lt(_.length),Y(_),E).subarray(),r.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',Ze,e,E.byteLength),c=!0,u=!1,l.resolve(),m().catch(T=>{r.log.error("could not finish optimistic protocol negotiation of %s",e,T)})}A=!0}A||await m()}())};async function m(){if(o){r.log.trace("optimistic: already negotiating %s stream",e),await a.promise;return}o=!0;try{c||(r.log.trace("optimistic: doing send protocol for %s stream",e),await y()),f||(r.log.trace("optimistic: doing read protocol for %s stream",e),await g())}finally{o=!1,s=!0,a.resolve()}}async function y(){if(u){await l.promise;return}u=!0;try{r.log.trace('optimistic: write ["%s", "%s", data] in source',Ze,e),await h.writeV([Y(`${Ze}
54
+ `),ft(_.length),Y(_),E).subarray(),r.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',Ze,e,E.byteLength),c=!0,u=!1,l.resolve(),m().catch(T=>{r.log.error("could not finish optimistic protocol negotiation of %s",e,T)})}A=!0}A||await m()}())};async function m(){if(o){r.log.trace("optimistic: already negotiating %s stream",e),await a.promise;return}o=!0;try{c||(r.log.trace("optimistic: doing send protocol for %s stream",e),await y()),f||(r.log.trace("optimistic: doing read protocol for %s stream",e),await g())}finally{o=!1,s=!0,a.resolve()}}async function y(){if(u){await l.promise;return}u=!0;try{r.log.trace('optimistic: write ["%s", "%s", data] in source',Ze,e),await h.writeV([Y(`${Ze}
55
55
  `),Y(`${e}
56
- `)]),r.log.trace('optimistic: wrote ["%s", "%s", data] in source',Ze,e)}finally{c=!0,u=!1,l.resolve()}}async function g(){if(d){await p.promise;return}d=!0;try{r.log.trace("optimistic: reading multistream select header");let x=await Nr(h,r);if(r.log.trace('optimistic: read multistream select header "%s"',x),x===Ze&&(x=await Nr(h,r)),r.log.trace('optimistic: read protocol "%s", expecting "%s"',x,e),x!==e)throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}finally{f=!0,d=!1,p.resolve()}}if(t.source=async function*(){await m(),r.log.trace('optimistic: reading data from "%s" stream',e),yield*h.unwrap().source}(),t.closeRead!=null){let x=t.closeRead.bind(t);t.closeRead=async b=>{s||await m().catch(A=>{r.log.error("could not negotiate protocol before close read",A)}),await x(b)}}if(t.closeWrite!=null){let x=t.closeWrite.bind(t);t.closeWrite=async b=>{s||await m().catch(A=>{r.log.error("could not negotiate protocol before close write",A)}),await x(b)}}if(t.close!=null){let x=t.close.bind(t);t.close=async b=>{let A=[];u&&A.push(l.promise),d&&A.push(p.promise),A.length>0?await Ho(Promise.all(A),b?.signal):(s=!0,o=!1,a.resolve()),await x(b)}}return{stream:t,protocol:e}}async function es(t,e,r){e=Array.isArray(e)?e:[e],r.log.trace("handle: available protocols %s",e);let n=ji(t,{...r,maxDataLength:1024,maxLengthLength:2});for(;;){r.log.trace("handle: reading incoming string");let i=await Nr(n,r);if(r.log.trace('handle: read "%s"',i),i===Ze){r.log.trace('handle: respond with "%s" for "%s"',Ze,i),await gn(n,Y(`${Ze}
57
- `),r),r.log.trace('handle: responded with "%s" for "%s"',Ze,i);continue}if(e.includes(i))return r.log.trace('handle: respond with "%s" for "%s"',i,i),await gn(n,Y(`${i}
58
- `),r),r.log.trace('handle: responded with "%s" for "%s"',i,i),{stream:n.unwrap(),protocol:i};if(i==="ls"){let s=new Ve(...e.map(o=>mn.single(Y(`${o}
56
+ `)]),r.log.trace('optimistic: wrote ["%s", "%s", data] in source',Ze,e)}finally{c=!0,u=!1,l.resolve()}}async function g(){if(d){await p.promise;return}d=!0;try{r.log.trace("optimistic: reading multistream select header");let x=await Nr(h,r);if(r.log.trace('optimistic: read multistream select header "%s"',x),x===Ze&&(x=await Nr(h,r)),r.log.trace('optimistic: read protocol "%s", expecting "%s"',x,e),x!==e)throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}finally{f=!0,d=!1,p.resolve()}}if(t.source=async function*(){await m(),r.log.trace('optimistic: reading data from "%s" stream',e),yield*h.unwrap().source}(),t.closeRead!=null){let x=t.closeRead.bind(t);t.closeRead=async b=>{s||await m().catch(A=>{r.log.error("could not negotiate protocol before close read",A)}),await x(b)}}if(t.closeWrite!=null){let x=t.closeWrite.bind(t);t.closeWrite=async b=>{s||await m().catch(A=>{r.log.error("could not negotiate protocol before close write",A)}),await x(b)}}if(t.close!=null){let x=t.close.bind(t);t.close=async b=>{let A=[];u&&A.push(l.promise),d&&A.push(p.promise),A.length>0?await ni(Promise.all(A),b?.signal):(s=!0,o=!1,a.resolve()),await x(b)}}return{stream:t,protocol:e}}async function Yi(t,e,r){e=Array.isArray(e)?e:[e],r.log.trace("handle: available protocols %s",e);let n=Gi(t,{...r,maxDataLength:1024,maxLengthLength:2});for(;;){r.log.trace("handle: reading incoming string");let i=await Nr(n,r);if(r.log.trace('handle: read "%s"',i),i===Ze){r.log.trace('handle: respond with "%s" for "%s"',Ze,i),await yn(n,Y(`${Ze}
57
+ `),r),r.log.trace('handle: responded with "%s" for "%s"',Ze,i);continue}if(e.includes(i))return r.log.trace('handle: respond with "%s" for "%s"',i,i),await yn(n,Y(`${i}
58
+ `),r),r.log.trace('handle: responded with "%s" for "%s"',i,i),{stream:n.unwrap(),protocol:i};if(i==="ls"){let s=new Ve(...e.map(o=>pn.single(Y(`${o}
59
59
  `))),Y(`
60
- `));r.log.trace('handle: respond with "%s" for %s',e,i),await gn(n,s,r),r.log.trace('handle: responded with "%s" for %s',e,i);continue}r.log('handle: respond with "na" for "%s"',i),await gn(n,Y(`na
61
- `),r),r.log('handle: responded with "na" for "%s"',i)}}var lv=500,Al=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[Jf]=!0;get streams(){return this._getStreams()}async newStream(e,r){if(this.status==="closing")throw new S("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new S("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&r?.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,r);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 r=AbortSignal.timeout(lv);ht(1/0,r),e={...e,signal:r}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(r=>{r.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function Im(t){return new Al(t)}var hv=3e4;function dv(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return xl}function pv(t,e,r={}){try{let{options:n}=e.getHandler(t);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??bl}function Cm(t,e,r){let n=0;return r.streams.forEach(i=>{i.direction===e&&i.protocol===t&&n++}),n}var Zo=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,r){this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=e.events}async shouldBlockConnection(e,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(e,r))throw new S(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new S("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{e.abort(new S("inbound upgrade timeout",ws))};u.addEventListener("abort",l,{once:!0}),ht(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new S("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(e.log("protecting the inbound connection"),f=await d.protect(e))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let d={...f,...i};await this.shouldBlockConnection(s,d,"denyInboundEncryptedConnection")}else{let d=e.remoteAddr.getPeerId();if(d==null)throw new S("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=Le(d);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw e.log.error("failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;n!=null&&(i=Le(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new S("Encryption was skipped but no peer id was passed",F.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw e.log.error("failed to upgrade outbound connection",f),await e.close(f),f}return await this.shouldBlockConnection(o,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=e,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:h=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await es(h,m,{log:h.log,yieldBytes:!1});if(f==null)return;f.log("incoming stream opened on %s",g);let x=dv(g,this.components.registrar);if(Cm(g,"inbound",f)===x){let A=new S(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw h.abort(A),A}h.source=y.source,h.sink=y.sink,h.protocol=g,y.closeWrite!=null&&(h.closeWrite=y.closeWrite),y.closeRead!=null&&(h.closeRead=y.closeRead),y.close!=null&&(h.close=y.close),await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(h,f),this._onStream({connection:f,stream:h,protocol:g})}).catch(async m=>{f.log.error("error handling incoming stream id %s",h.id,m.message,m.code,m.stack),h.timeline.close==null&&await h.close()})}}),l=async(h,m={})=>{if(u==null)throw new S("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);f.log("starting new stream for protocols %s",h);let y=await u.newStream();f.log.trace("started new stream %s for protocols %s",y.id,h);try{if(m.signal==null){y.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h);let E=AbortSignal.timeout(hv);ht(1/0,E),m={...m,signal:E}}y.log.trace("selecting protocol from protocols %s",h);let{stream:g,protocol:x}=await Ji(y,h,{...m,log:y.log,yieldBytes:!0});y.log("selected protocol %s",x);let b=pv(x,this.components.registrar,m);if(Cm(x,"outbound",f)>=b){let E=new S(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(E),E}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,g.closeWrite!=null&&(y.closeWrite=g.closeWrite),g.closeRead!=null&&(y.closeRead=g.closeRead),g.close!=null&&(y.close=g.close),this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw f.log.error("could not create new stream for protocols %s",h,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new S(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(h=>{f.log.error("error piping data through muxer",h)}));let d=i.timeline;i.timeline=new Proxy(d,{set:(...h)=>(f!=null&&h[1]==="close"&&h[2]!=null&&d.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){f.log.error("error closing connection after timeline close",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{f.log.error("error thrown while dispatching connection:close event",m)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let p=()=>{throw new S("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=Im({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,logger:this.components.logger,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async h=>{u!=null&&(f.log.trace("close muxer"),await u.close(h)),f.log.trace("close maconn"),await i.close(h),f.log.trace("closed maconn")},abort:h=>{i.abort(h),u?.abort(h)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await es(e,r,{log:e.log}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return e.log("encrypting inbound connection using",i),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw e.log.error("encrypting inbound connection to %p failed",n),new S(n.message,F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:i,protocol:s}=await Ji(e,n,{log:e.log,yieldBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw e.log.error("encrypting outbound connection to %p failed",i),new S(i.message,F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:i,protocol:s}=await Ji(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing outbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());e.log("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await es(e,n,{log:e.log}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing inbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var Rm="1.1.0",Tm="libp2p";var Il=class extends mi{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let r=new mi,n=r.dispatchEvent.bind(r);r.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new Ca(a.type,{detail:a.detail}));return c||u},ht(1/0,r),this.peerId=e.peerId,this.logger=e.logger??zs(),this.log=this.logger.forComponent("libp2p"),this.services={};let i=this.components=Td({peerId:e.peerId,nodeInfo:e.nodeInfo??{name:Tm,version:Rm},logger:this.logger,events:r,datastore:e.datastore??new uo,connectionGater:Fd(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new ao(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),i.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)};i.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Zo(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new $o(this.components,e.transportManager)),this.configureComponent("connectionManager",new Mo(this.components,e.connectionManager)),this.configureComponent("registrar",new Vo(this.components)),this.configureComponent("addressManager",new lo(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new qo(this.components,{routers:s}));let o=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ko(this.components,{routers:o})),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",l=>{this.#e(l)})}),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[Ea]!=null&&(this.log("registering service %s for content routing",a),o.push(u[Ea])),u[Sa]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Sa])),u[va]!=null&&(this.log("registering service %s for peer discovery",a),u[va].addEventListener?.("peer",l=>{this.#e(l)}))}}configureComponent(e,r){return r==null&&this.log.error("component %s was null or undefined",e),this.components[e]=r,r}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 vt;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return this.components.connectionManager.openConnection(e,{priority:75,...r})}async dialProtocol(e,r,n={}){if(r==null)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,r={}){Tr(e)&&(e=Le(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,r)}async getPublicKey(e,r={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.id.publicKey!=null)return n.id.publicKey;let i=qe([Y("/pk/"),e.multihash.digest]),s=await this.contentRouting.get(i,r);return Pi(s),await this.peerStore.patch(e,{publicKey:s}),s}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return this.components.registrar.register(e,r)}unregister(e){this.components.registrar.unregister(e)}#e(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){this.log.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs}).catch(n=>{this.log.error(n)})}};async function Bm(t={}){return t.peerId??=await Vh(),new Il(yp(t))}async function yv(t={}){let e=await Bm(t);return t.start!==!1&&await e.start(),e}return zm(gv);})();
60
+ `));r.log.trace('handle: respond with "%s" for %s',e,i),await yn(n,s,r),r.log.trace('handle: responded with "%s" for %s',e,i);continue}r.log('handle: respond with "na" for "%s"',i),await yn(n,Y(`na
61
+ `),r),r.log('handle: responded with "na" for "%s"',i)}}var tv=500,wl=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[Yf]=!0;get streams(){return this._getStreams()}async newStream(e,r){if(this.status==="closing")throw new S("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new S("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&r?.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,r);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 r=AbortSignal.timeout(tv);wt(1/0,r),e={...e,signal:r}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(r=>{r.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function gm(t){return new wl(t)}var nv=3e4;function iv(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return dl}function sv(t,e,r={}){try{let{options:n}=e.getHandler(t);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??pl}function xm(t,e,r){let n=0;return r.streams.forEach(i=>{i.direction===e&&i.protocol===t&&n++}),n}var Yo=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,r){this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=e.events}async shouldBlockConnection(e,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(e,r))throw new S(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new S("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{e.abort(new S("inbound upgrade timeout",ms))};u.addEventListener("abort",l,{once:!0}),wt(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new S("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(e.log("protecting the inbound connection"),f=await d.protect(e))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let d={...f,...i};await this.shouldBlockConnection(s,d,"denyInboundEncryptedConnection")}else{let d=e.remoteAddr.getPeerId();if(d==null)throw new S("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=De(d);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw e.log.error("failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;n!=null&&(i=De(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new S("Encryption was skipped but no peer id was passed",F.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw e.log.error("failed to upgrade outbound connection",f),await e.close(f),f}return await this.shouldBlockConnection(o,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=e,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:h=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Yi(h,m,{log:h.log,yieldBytes:!1});if(f==null)return;f.log("incoming stream opened on %s",g);let x=iv(g,this.components.registrar);if(xm(g,"inbound",f)===x){let A=new S(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw h.abort(A),A}h.source=y.source,h.sink=y.sink,h.protocol=g,y.closeWrite!=null&&(h.closeWrite=y.closeWrite),y.closeRead!=null&&(h.closeRead=y.closeRead),y.close!=null&&(h.close=y.close),await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(h,f),this._onStream({connection:f,stream:h,protocol:g})}).catch(async m=>{f.log.error("error handling incoming stream id %s",h.id,m.message,m.code,m.stack),h.timeline.close==null&&await h.close()})}}),l=async(h,m={})=>{if(u==null)throw new S("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);f.log("starting new stream for protocols %s",h);let y=await u.newStream();f.log.trace("started new stream %s for protocols %s",y.id,h);try{if(m.signal==null){y.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h);let E=AbortSignal.timeout(nv);wt(1/0,E),m={...m,signal:E}}y.log.trace("selecting protocol from protocols %s",h);let{stream:g,protocol:x}=await Wi(y,h,{...m,log:y.log,yieldBytes:!0});y.log("selected protocol %s",x);let b=sv(x,this.components.registrar,m);if(xm(x,"outbound",f)>=b){let E=new S(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(E),E}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,g.closeWrite!=null&&(y.closeWrite=g.closeWrite),g.closeRead!=null&&(y.closeRead=g.closeRead),g.close!=null&&(y.close=g.close),this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw f.log.error("could not create new stream for protocols %s",h,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new S(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(h=>{f.log.error("error piping data through muxer",h)}));let d=i.timeline;i.timeline=new Proxy(d,{set:(...h)=>(f!=null&&h[1]==="close"&&h[2]!=null&&d.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){f.log.error("error closing connection after timeline close",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{f.log.error("error thrown while dispatching connection:close event",m)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let p=()=>{throw new S("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=gm({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,logger:this.components.logger,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async h=>{u!=null&&(f.log.trace("close muxer"),await u.close(h)),f.log.trace("close maconn"),await i.close(h),f.log.trace("closed maconn")},abort:h=>{i.abort(h),u?.abort(h)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Yi(e,r,{log:e.log}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return e.log("encrypting inbound connection using",i),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw e.log.error("encrypting inbound connection to %p failed",n),new S(n.message,F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:i,protocol:s}=await Wi(e,n,{log:e.log,yieldBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw e.log.error("encrypting outbound connection to %p failed",i),new S(i.message,F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:i,protocol:s}=await Wi(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing outbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());e.log("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Yi(e,n,{log:e.log}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing inbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var bm="1.1.1-900236724",wm="libp2p";var El=class extends qr{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let r=new qr,n=r.dispatchEvent.bind(r);r.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new _a(a.type,{detail:a.detail}));return c||u},wt(1/0,r),this.peerId=e.peerId,this.logger=e.logger??Fs(),this.log=this.logger.forComponent("libp2p"),this.services={};let i=this.components=_d({peerId:e.peerId,nodeInfo:e.nodeInfo??{name:wm,version:bm},logger:this.logger,events:r,datastore:e.datastore??new io,connectionGater:Pd(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new ro(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),i.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)};i.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Yo(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Vo(this.components,e.transportManager)),this.configureComponent("connectionManager",new Mo(this.components,e.connectionManager)),this.configureComponent("registrar",new qo(this.components)),this.configureComponent("addressManager",new so(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ko(this.components,{routers:s}));let o=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Uo(this.components,{routers:o})),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",l=>{this.#e(l)})}),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[xa]!=null&&(this.log("registering service %s for content routing",a),o.push(u[xa])),u[Ea]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Ea])),u[ba]!=null&&(this.log("registering service %s for peer discovery",a),u[ba].addEventListener?.("peer",l=>{this.#e(l)}))}}configureComponent(e,r){return r==null&&this.log.error("component %s was null or undefined",e),this.components[e]=r,r}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 _t;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return this.components.connectionManager.openConnection(e,{priority:75,...r})}async dialProtocol(e,r,n={}){if(r==null)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,r={}){Tr(e)&&(e=De(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,r)}async getPublicKey(e,r={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.id.publicKey!=null)return n.id.publicKey;let i=Re([Y("/pk/"),e.multihash.digest]),s=await this.contentRouting.get(i,r);return Bi(s),await this.peerStore.patch(e,{publicKey:s}),s}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return this.components.registrar.register(e,r)}unregister(e){this.components.registrar.unregister(e)}#e(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){this.log.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs}).catch(n=>{this.log.error(n)})}};async function Em(t={}){return t.peerId??=await Mh(),new El(lp(t))}async function av(t={}){let e=await Em(t);return t.start!==!1&&await e.start(),e}return km(cv);})();
62
62
  /*! Bundled license information:
63
63
 
64
64
  @noble/hashes/esm/utils.js: