libp2p 0.46.19 → 0.46.20-c960eb659
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +22 -22
- package/dist/src/components.d.ts +3 -1
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js +4 -0
- package/dist/src/components.js.map +1 -1
- package/dist/src/connection/index.d.ts +3 -1
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/index.js +17 -11
- package/dist/src/connection/index.js.map +1 -1
- package/dist/src/connection-manager/auto-dial.d.ts +3 -1
- package/dist/src/connection-manager/auto-dial.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dial.js +20 -20
- package/dist/src/connection-manager/auto-dial.js.map +1 -1
- package/dist/src/connection-manager/connection-pruner.d.ts +3 -1
- package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
- package/dist/src/connection-manager/connection-pruner.js +8 -8
- package/dist/src/connection-manager/connection-pruner.js.map +1 -1
- package/dist/src/connection-manager/dial-queue.d.ts +3 -1
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
- package/dist/src/connection-manager/dial-queue.js +26 -23
- package/dist/src/connection-manager/dial-queue.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +3 -1
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +21 -18
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/utils.d.ts +2 -1
- package/dist/src/connection-manager/utils.d.ts.map +1 -1
- package/dist/src/connection-manager/utils.js +2 -4
- package/dist/src/connection-manager/utils.js.map +1 -1
- package/dist/src/identify/consts.d.ts +1 -1
- package/dist/src/identify/consts.d.ts.map +1 -1
- package/dist/src/identify/identify.d.ts.map +1 -1
- package/dist/src/identify/identify.js +28 -21
- package/dist/src/identify/identify.js.map +1 -1
- package/dist/src/identify/index.d.ts +2 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/index.d.ts +21 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +2 -1
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +20 -16
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +9 -3
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/upgrader.d.ts +3 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +37 -31
- package/dist/src/upgrader.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +21 -21
- package/src/components.ts +8 -1
- package/src/connection/index.ts +20 -13
- package/src/connection-manager/auto-dial.ts +22 -22
- package/src/connection-manager/connection-pruner.ts +10 -10
- package/src/connection-manager/dial-queue.ts +28 -25
- package/src/connection-manager/index.ts +23 -20
- package/src/connection-manager/utils.ts +5 -7
- package/src/identify/identify.ts +30 -23
- package/src/identify/index.ts +2 -1
- package/src/index.ts +22 -1
- package/src/libp2p.ts +21 -18
- package/src/ping/index.ts +10 -3
- package/src/upgrader.ts +39 -32
- package/src/version.ts +1 -1
- package/dist/typedoc-urls.json +0 -71
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
|
|
3
|
-
`)}return n};Fa.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=Sf[t];if(!r){r=Sf[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<e.length;n++){var a=r[e.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;e[l]===s&&l<e.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Ky(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var o=0,a=e.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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Nt=V((A_,Bf)=>{var Rf=dt(),Cf=If(),E=Bf.exports=Rf.util=Rf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var o=a,e="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function Ni(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Ka;function Ka(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Ka||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Ka;var Vy=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Vy&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){Ni(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function qy(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=E.isArrayBuffer(e),n=E.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=qy;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.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(E.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){Ni(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return Ni(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};E.xorBytes=function(e,t,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=e.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var Cr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tr=[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],Tf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.length;)i=e.charCodeAt(a++),s=e.charCodeAt(a++),o=e.charCodeAt(a++),r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
-
`,r=r.substr(t));return n+=r,n};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,s,o=0;o<e.length;)r=
|
|
5
|
-
`,r=r.substr(t));return n+=r,n};E.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<e.length;)i=Tr[e.charCodeAt(c++)-43],s=Tr[e.charCodeAt(c++)-43],o=Tr[e.charCodeAt(c++)-43],a=Tr[e.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 t?u-r:n.subarray(0,u)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,Tf,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,Tf,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,r){e=E.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<e.length;++a)i[o++]=e.charCodeAt(a),s+=2;return t?s-r:n};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,r){if(t=E.decode64(e.deflate(E.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(e,t,r){var n=e.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var Va=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=E.encode64(JSON.stringify(r)),n=e.setItem(t,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}},qa=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.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(E.decode64(r))),r},$y=function(e,t,r,n){var i=qa(e,t);i===null&&(i={}),i[r]=n,Va(e,t,i)},zy=function(e,t,r){var n=qa(e,t);return n!==null&&(n=r in n?n[r]:null),n},Hy=function(e,t,r){var n=qa(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Va(e,t,n)}},Gy=function(e,t){Va(e,t,null)},Ns=function(e,t,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(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(e,t,r,n,i){Ns($y,arguments,i)};E.getItem=function(e,t,r,n){return Ns(zy,arguments,n)};E.removeItem=function(e,t,r,n){Ns(Hy,arguments,n)};E.clearItems=function(e,t,r){Ns(Gy,arguments,r)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,r,n,i=0,s=[],o=0;r=t.exec(e);){n=e.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.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(e.substring(o)),s.join("")};E.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,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):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(o){return o.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=E.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=t.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))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.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 E.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,E.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(h){if(u.push(h.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]=[],h=0;h<o;++h)if(u!==h){var p=a[h];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(h)}return c.reduce(function(d,m){return Math.max(d,m.length)},0)}}});var ks=V((I_,Lf)=>{var ki=dt();ki.pki=ki.pki||{};var $a=Lf.exports=ki.pki.oids=ki.oids=ki.oids||{};function B(e,t){$a[e]=t,$a[t]=e}function ut(e,t){$a[e]=t}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var Mi=V((R_,Df)=>{var vt=dt();Nt();ks();var O=Df.exports=vt.asn1=vt.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(e,t,r,n,i){if(vt.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:e,type:t,constructed:r,composed:r||vt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(vt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(vt.util.isArray(e)){if(!vt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function Oi(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var Yy=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Oi(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.length(),n=Os(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function Os(e,t,r,n){var i;Oi(e,t,2);var s=e.getByte();t--;var o=s&192,a=s&31;i=e.length();var c=Yy(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(Oi(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(Os(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(Os(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=e.read,d=t,m=0;if(a===O.Type.BITSTRING&&(Oi(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=Os(e,t,r+1,y),x=i-e.length();t-=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&&(e.read=p,t=d)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Oi(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,h,l,C)}O.toDer=function(e){var t=vt.util.createBuffer(),r=e.tagClass|e.type,n=vt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=vt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[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(e){var t;typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,h=e.charAt(f);if(h==="+"||h==="-"){var p=parseInt(e.substr(f+1,2),10),d=parseInt(e.substr(f+4,2),10);u=p*60+d,u*=6e4,h==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,o,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=vt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=vt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&vt.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[o],r,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var Pf=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
2
|
+
"use strict";var Libp2P=(()=>{var Ry=Object.create;var Is=Object.defineProperty;var Cy=Object.getOwnPropertyDescriptor;var Ty=Object.getOwnPropertyNames;var By=Object.getPrototypeOf,Ly=Object.prototype.hasOwnProperty;var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),zt=(e,t)=>{for(var r in t)Is(e,r,{get:t[r],enumerable:!0})},yf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ty(t))!Ly.call(e,i)&&i!==r&&Is(e,i,{get:()=>t[i],enumerable:!(n=Cy(t,i))||n.enumerable});return e};var mt=(e,t,r)=>(r=e!=null?Ry(By(e)):{},yf(t||!e||!e.__esModule?Is(r,"default",{value:e,enumerable:!0}):r,e)),Py=e=>yf(Is({},"__esModule",{value:!0}),e);var ht=V((g_,gf)=>{gf.exports={options:{usePureJavaScript:!1}}});var bf=V((x_,Ef)=>{var Da={};Ef.exports=Da;var xf={};Da.encode=function(e,t,r){if(typeof t!="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(!(e instanceof Uint8Array))n=Dy(e,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[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;e[i]===0&&i<e.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
|
|
3
|
+
`)}return n};Da.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=xf[t];if(!r){r=xf[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<e.length;n++){var a=r[e.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;e[l]===s&&l<e.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Dy(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var o=0,a=e.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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Pt=V((E_,Sf)=>{var wf=ht(),vf=bf(),E=Sf.exports=wf.util=wf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var o=a,e="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function Ri(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Na;function Na(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Na||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Na;var Ny=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Ny&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){Ri(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt=function(e){Ri(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function ky(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=E.isArrayBuffer(e),n=E.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=ky;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.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(E.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){Ri(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return Ri(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){Ri(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};E.xorBytes=function(e,t,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=e.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var _r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Sr=[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],_f="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.length;)i=e.charCodeAt(a++),s=e.charCodeAt(a++),o=e.charCodeAt(a++),r+=_r.charAt(i>>2),r+=_r.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=_r.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":_r.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
+
`,r=r.substr(t));return n+=r,n};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,s,o=0;o<e.length;)r=Sr[e.charCodeAt(o++)-43],n=Sr[e.charCodeAt(o++)-43],i=Sr[e.charCodeAt(o++)-43],s=Sr[e.charCodeAt(o++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};E.decodeUtf8=function(e){return decodeURIComponent(escape(e))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:vf.encode,decode:vf.decode}};E.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};E.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,s=r;for(e.length&1&&(i=1,n[s++]=parseInt(e[0],16));i<e.length;i+=2)n[s++]=parseInt(e.substr(i,2),16);return t?s-r:n};E.binary.base64.encode=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.byteLength;)i=e[a++],s=e[a++],o=e[a++],r+=_r.charAt(i>>2),r+=_r.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=_r.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":_r.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
5
|
+
`,r=r.substr(t));return n+=r,n};E.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<e.length;)i=Sr[e.charCodeAt(c++)-43],s=Sr[e.charCodeAt(c++)-43],o=Sr[e.charCodeAt(c++)-43],a=Sr[e.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 t?u-r:n.subarray(0,u)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,_f,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,_f,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,r){e=E.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<e.length;++a)i[o++]=e.charCodeAt(a),s+=2;return t?s-r:n};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,r){if(t=E.decode64(e.deflate(E.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(e,t,r){var n=e.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var ka=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=E.encode64(JSON.stringify(r)),n=e.setItem(t,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}},Oa=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.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(E.decode64(r))),r},Oy=function(e,t,r,n){var i=Oa(e,t);i===null&&(i={}),i[r]=n,ka(e,t,i)},My=function(e,t,r){var n=Oa(e,t);return n!==null&&(n=r in n?n[r]:null),n},Uy=function(e,t,r){var n=Oa(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),ka(e,t,n)}},Fy=function(e,t){ka(e,t,null)},Rs=function(e,t,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(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(e,t,r,n,i){Rs(Oy,arguments,i)};E.getItem=function(e,t,r,n){return Rs(My,arguments,n)};E.removeItem=function(e,t,r,n){Rs(Uy,arguments,n)};E.clearItems=function(e,t,r){Rs(Fy,arguments,r)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,r,n,i=0,s=[],o=0;r=t.exec(e);){n=e.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.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(e.substring(o)),s.join("")};E.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,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):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(o){return o.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=E.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=t.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))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.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 E.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,E.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(h){if(u.push(h.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]=[],h=0;h<o;++h)if(u!==h){var p=a[h];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(h)}return c.reduce(function(d,m){return Math.max(d,m.length)},0)}}});var Cs=V((b_,Af)=>{var Ci=ht();Ci.pki=Ci.pki||{};var Ma=Af.exports=Ci.pki.oids=Ci.oids=Ci.oids||{};function B(e,t){Ma[e]=t,Ma[t]=e}function ct(e,t){Ma[e]=t}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");ct("2.5.29.1","authorityKeyIdentifier");ct("2.5.29.2","keyAttributes");ct("2.5.29.3","certificatePolicies");ct("2.5.29.4","keyUsageRestriction");ct("2.5.29.5","policyMapping");ct("2.5.29.6","subtreesConstraint");ct("2.5.29.7","subjectAltName");ct("2.5.29.8","issuerAltName");ct("2.5.29.9","subjectDirectoryAttributes");ct("2.5.29.10","basicConstraints");ct("2.5.29.11","nameConstraints");ct("2.5.29.12","policyConstraints");ct("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ct("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ct("2.5.29.20","cRLNumber");ct("2.5.29.21","cRLReason");ct("2.5.29.22","expirationDate");ct("2.5.29.23","instructionCode");ct("2.5.29.24","invalidityDate");ct("2.5.29.25","cRLDistributionPoints");ct("2.5.29.26","issuingDistributionPoint");ct("2.5.29.27","deltaCRLIndicator");ct("2.5.29.28","issuingDistributionPoint");ct("2.5.29.29","certificateIssuer");ct("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ct("2.5.29.33","policyMappings");ct("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ct("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ct("2.5.29.46","freshestCRL");ct("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var Bi=V((w_,Rf)=>{var bt=ht();Pt();Cs();var O=Rf.exports=bt.asn1=bt.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(e,t,r,n,i){if(bt.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:e,type:t,constructed:r,composed:r||bt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(bt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(bt.util.isArray(e)){if(!bt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function Ti(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var Ky=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Ti(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=bt.util.createBuffer(e));var r=e.length(),n=Ts(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function Ts(e,t,r,n){var i;Ti(e,t,2);var s=e.getByte();t--;var o=s&192,a=s&31;i=e.length();var c=Ky(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(Ti(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(Ts(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(Ts(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=e.read,d=t,m=0;if(a===O.Type.BITSTRING&&(Ti(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=Ts(e,t,r+1,y),x=i-e.length();t-=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&&(e.read=p,t=d)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Ti(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,h,l,C)}O.toDer=function(e){var t=bt.util.createBuffer(),r=e.tagClass|e.type,n=bt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=bt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[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(e){var t;typeof e=="string"&&(e=bt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,h=e.charAt(f);if(h==="+"||h==="-"){var p=parseInt(e.substr(f+1,2),10),d=parseInt(e.substr(f+4,2),10);u=p*60+d,u*=6e4,h==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,o,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=bt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=bt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&bt.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[o],r,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var If=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
6
|
`);for(var i="",s=0;s<t*r;++s)i+=" ";switch(n+=i+"Tag: ",e.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(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.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+=e.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+e.constructed+`
|
|
8
|
-
`,e.composed){for(var o=0,a="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,vt.pki&&vt.pki.oids&&c in vt.pki.oids&&(n+=" ("+vt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+vt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+vt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)Pf.test(e.value)||(n+="("+e.value+") "),n+="0x"+vt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=vt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+vt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:Pf.test(e.value)?n+="0x"+vt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var Ha=V((C_,Nf)=>{var Yt=dt();Nt();Nf.exports=Yt.cipher=Yt.cipher||{};Yt.cipher.algorithms=Yt.cipher.algorithms||{};Yt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Yt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Yt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Yt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Yt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Yt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Yt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Yt.cipher.algorithms[e]=t};Yt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Yt.cipher.algorithms?Yt.cipher.algorithms[e]:null};var za=Yt.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};za.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Yt.util.createBuffer(),this.output=e.output||Yt.util.createBuffer(),this.mode.start(t)};za.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};za.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Ya=V((T_,kf)=>{var Wt=dt();Nt();Wt.cipher=Wt.cipher||{};var tt=kf.exports=Wt.cipher.modes=Wt.cipher.modes||{};tt.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.ecb.prototype.start=function(e){};tt.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Ms(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};tt.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.cfb.prototype.encrypt=function(e,t,r){var n=e.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]=e.getInt32()^this._outBlock[i],t.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]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.cfb.prototype.decrypt=function(e,t,r){var n=e.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]=e.getInt32(),t.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]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ctr.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Us(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Wt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Wt.util.createBuffer(e.additionalData):r=Wt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Wt.util.createBuffer(e.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=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ga(n*8)))}this._inBlock=this._j0.slice(0),Us(this._inBlock),this._partialBytes=0,r=Wt.util.createBuffer(r),this._aDataLength=Ga(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()])};tt.gcm.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(this._outBlock[i]^=e.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(e.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 e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Us(this._inBlock)};tt.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Us(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Wt.util.createBuffer();var n=this._aDataLength.concat(Ga(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)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};tt.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[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};tt.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};tt.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};tt.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};tt.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,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)*t;a[c]=1<<t-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,e),t)}return s};tt.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.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]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function Ms(e,t){if(typeof e=="string"&&(e=Wt.util.createBuffer(e)),Wt.util.isArray(e)&&e.length>4){var r=e;e=Wt.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Wt.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function Us(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ga(e){return[e/4294967296|0,e&4294967295]}});var Ks=V((B_,Ff)=>{var bt=dt();Ha();Ya();Nt();Ff.exports=bt.aes=bt.aes||{};bt.aes.startEncrypting=function(e,t,r,n){var i=Fs({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};bt.aes.createEncryptionCipher=function(e,t){return Fs({key:e,output:null,decrypt:!1,mode:t})};bt.aes.startDecrypting=function(e,t,r,n){var i=Fs({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};bt.aes.createDecryptionCipher=function(e,t){return Fs({key:e,output:null,decrypt:!0,mode:t})};bt.aes.Algorithm=function(e,t){Xa||Mf();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Qa(r._w,n,i,!1)},decrypt:function(n,i){return Qa(r._w,n,i,!0)}}}),r._init=!1};bt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=bt.util.createBuffer(t);else if(bt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=bt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!bt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!bt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Uf(t,e.decrypt&&!o),this._init=!0}};bt.aes._expandKey=function(e,t){return Xa||Mf(),Uf(e,t)};bt.aes._updateBlock=Qa;$n("AES-ECB",bt.cipher.modes.ecb);$n("AES-CBC",bt.cipher.modes.cbc);$n("AES-CFB",bt.cipher.modes.cfb);$n("AES-OFB",bt.cipher.modes.ofb);$n("AES-CTR",bt.cipher.modes.ctr);$n("AES-GCM",bt.cipher.modes.gcm);function $n(e,t){var r=function(){return new bt.aes.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Xa=!1,qn=4,fe,Wa,Of,nn,Oe;function Mf(){Xa=!0,Of=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;fe=new Array(256),Wa=new Array(256),nn=new Array(4),Oe=new Array(4);for(var t=0;t<4;++t)nn[t]=new Array(256),Oe[t]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,fe[r]=a,Wa[a]=r,c=e[a],i=e[r],s=e[i],o=e[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)nn[f][r]=u,Oe[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^o]]],n^=e[e[n]])}}function Uf(e,t){for(var r=e.slice(0),n,i=1,s=r.length,o=s+6+1,a=qn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=fe[n>>>16&255]<<24^fe[n>>>8&255]<<16^fe[n&255]<<8^fe[n>>>24]^Of[i]<<24,i++):s>6&&c%s===4&&(n=fe[n>>>24]<<24^fe[n>>>16&255]<<16^fe[n>>>8&255]<<8^fe[n&255]),r[c]=r[c-s]^n;if(t){var u,l=Oe[0],f=Oe[1],h=Oe[2],p=Oe[3],d=r.slice(0);a=r.length;for(var c=0,m=a-qn;c<a;c+=qn,m-=qn)if(c===0||c===a-qn)d[c]=r[m],d[c+1]=r[m+3],d[c+2]=r[m+2],d[c+3]=r[m+1];else for(var y=0;y<qn;++y)u=r[m+y],d[c+(3&-y)]=l[fe[u>>>24]]^f[fe[u>>>16&255]]^h[fe[u>>>8&255]]^p[fe[u&255]];r=d}return r}function Qa(e,t,r,n){var i=e.length/4-1,s,o,a,c,u;n?(s=Oe[0],o=Oe[1],a=Oe[2],c=Oe[3],u=Wa):(s=nn[0],o=nn[1],a=nn[2],c=nn[3],u=fe);var l,f,h,p,d,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],h=t[2]^e[2],p=t[n?1:3]^e[3];for(var g=3,x=1;x<i;++x)d=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[p&255]^e[++g],m=s[f>>>24]^o[h>>>16&255]^a[p>>>8&255]^c[l&255]^e[++g],y=s[h>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^e[++g],l=d,f=m,h=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[p&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[h>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^e[++g]}function Fs(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof bt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var qf=V((L_,Vf)=>{var St=dt();Ha();Ya();Nt();Vf.exports=St.des=St.des||{};St.des.startEncrypting=function(e,t,r,n){var i=Vs({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createEncryptionCipher=function(e,t){return Vs({key:e,output:null,decrypt:!1,mode:t})};St.des.startDecrypting=function(e,t,r,n){var i=Vs({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createDecryptionCipher=function(e,t){return Vs({key:e,output:null,decrypt:!0,mode:t})};St.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Kf(r._keys,n,i,!1)},decrypt:function(n,i){return Kf(r._keys,n,i,!0)}}}),r._init=!1};St.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=St.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=rg(t),this._init=!0}};Ge("DES-ECB",St.cipher.modes.ecb);Ge("DES-CBC",St.cipher.modes.cbc);Ge("DES-CFB",St.cipher.modes.cfb);Ge("DES-OFB",St.cipher.modes.ofb);Ge("DES-CTR",St.cipher.modes.ctr);Ge("3DES-ECB",St.cipher.modes.ecb);Ge("3DES-CBC",St.cipher.modes.cbc);Ge("3DES-CFB",St.cipher.modes.cfb);Ge("3DES-OFB",St.cipher.modes.ofb);Ge("3DES-CTR",St.cipher.modes.ctr);function Ge(e,t){var r=function(){return new St.des.Algorithm(e,t)};St.cipher.registerAlgorithm(e,r)}var Wy=[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],Qy=[-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],Xy=[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],Zy=[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],Jy=[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],jy=[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],tg=[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],eg=[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 rg(e){for(var t=[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],h=[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],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.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,C=0;C<m;C++){var _=e.getInt32(),S=e.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=t[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|h[S>>>12&15]|p[S>>>8&15]|d[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function Kf(e,t,r,n){var i=e.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=t[0],c=t[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],h=s[u];h!=l;h+=f){var p=c^e[h],d=(c>>>4|c<<28)^e[h+1];o=a,a=c,c=o^(Qy[p>>>24&63]|Zy[p>>>16&63]|jy[p>>>8&63]|eg[p&63]|Wy[d>>>24&63]|Xy[d>>>16&63]|Jy[d>>>8&63]|tg[d&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 Vs(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=St.cipher.createDecipher(r,e.key):n=St.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof St.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var sn=V((P_,$f)=>{var qs=dt();$f.exports=qs.md=qs.md||{};qs.md.algorithms=qs.md.algorithms||{}});var Hf=V((D_,zf)=>{var cr=dt();sn();Nt();var ng=zf.exports=cr.hmac=cr.hmac||{};ng.create=function(){var e=null,t=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 cr.md.algorithms)t=cr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=e;else{if(typeof o=="string")o=cr.util.createBuffer(o);else if(cr.util.isArray(o)){var a=o;o=cr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),r=cr.util.createBuffer(),n=cr.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<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=o,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var Ui=V(()=>{});var Za=V((O_,Gf)=>{var he=dt();Hf();sn();Nt();var ig=he.pkcs5=he.pkcs5||{},ur;he.util.isNodejs&&!he.options.usePureJavaScript&&(ur=Ui());Gf.exports=he.pbkdf2=ig.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),he.util.isNodejs&&!he.options.usePureJavaScript&&ur.pbkdf2&&(i===null||typeof i!="object")&&(ur.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?ur.pbkdf2Sync.length===4?ur.pbkdf2(e,t,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2(e,t,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2Sync.length===4?ur.pbkdf2Sync(e,t,r,n).toString("binary"):ur.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in he.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=he.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=he.hmac.create();l.start(i,e);var f="",h,p,d;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p;f+=m<c?h:h.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p,++y,he.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,g()}g()}});var Qf=V((M_,Wf)=>{var zs=dt();Nt();var Yf=Wf.exports=zs.pem=zs.pem||{};Yf.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
-
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r
|
|
10
|
-
`),r+=
|
|
8
|
+
`,e.composed){for(var o=0,a="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,bt.pki&&bt.pki.oids&&c in bt.pki.oids&&(n+=" ("+bt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+bt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+bt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)If.test(e.value)||(n+="("+e.value+") "),n+="0x"+bt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=bt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+bt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:If.test(e.value)?n+="0x"+bt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var Fa=V((v_,Cf)=>{var Ht=ht();Pt();Cf.exports=Ht.cipher=Ht.cipher||{};Ht.cipher.algorithms=Ht.cipher.algorithms||{};Ht.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ht.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ht.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ht.cipher.algorithms[e]=t};Ht.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ht.cipher.algorithms?Ht.cipher.algorithms[e]:null};var Ua=Ht.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Ua.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Ht.util.createBuffer(),this.output=e.output||Ht.util.createBuffer(),this.mode.start(t)};Ua.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ua.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Va=V((__,Tf)=>{var Gt=ht();Pt();Gt.cipher=Gt.cipher||{};var tt=Tf.exports=Gt.cipher.modes=Gt.cipher.modes||{};tt.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.ecb.prototype.start=function(e){};tt.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Bs(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};tt.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Bs(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.cfb.prototype.encrypt=function(e,t,r){var n=e.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]=e.getInt32()^this._outBlock[i],t.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]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.cfb.prototype.decrypt=function(e,t,r){var n=e.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]=e.getInt32(),t.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]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Bs(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Bs(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ctr.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Ls(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Gt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Gt.util.createBuffer(e.additionalData):r=Gt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Gt.util.createBuffer(e.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=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ka(n*8)))}this._inBlock=this._j0.slice(0),Ls(this._inBlock),this._partialBytes=0,r=Gt.util.createBuffer(r),this._aDataLength=Ka(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()])};tt.gcm.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(this._outBlock[i]^=e.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(e.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 e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ls(this._inBlock)};tt.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ls(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Gt.util.createBuffer();var n=this._aDataLength.concat(Ka(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)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};tt.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[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};tt.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};tt.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};tt.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};tt.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,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)*t;a[c]=1<<t-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,e),t)}return s};tt.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.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]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function Bs(e,t){if(typeof e=="string"&&(e=Gt.util.createBuffer(e)),Gt.util.isArray(e)&&e.length>4){var r=e;e=Gt.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Gt.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function Ls(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ka(e){return[e/4294967296|0,e&4294967295]}});var Ds=V((S_,Df)=>{var xt=ht();Fa();Va();Pt();Df.exports=xt.aes=xt.aes||{};xt.aes.startEncrypting=function(e,t,r,n){var i=Ps({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};xt.aes.createEncryptionCipher=function(e,t){return Ps({key:e,output:null,decrypt:!1,mode:t})};xt.aes.startDecrypting=function(e,t,r,n){var i=Ps({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};xt.aes.createDecryptionCipher=function(e,t){return Ps({key:e,output:null,decrypt:!0,mode:t})};xt.aes.Algorithm=function(e,t){za||Lf();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return $a(r._w,n,i,!1)},decrypt:function(n,i){return $a(r._w,n,i,!0)}}}),r._init=!1};xt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=xt.util.createBuffer(t);else if(xt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=xt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!xt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!xt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Pf(t,e.decrypt&&!o),this._init=!0}};xt.aes._expandKey=function(e,t){return za||Lf(),Pf(e,t)};xt.aes._updateBlock=$a;Mn("AES-ECB",xt.cipher.modes.ecb);Mn("AES-CBC",xt.cipher.modes.cbc);Mn("AES-CFB",xt.cipher.modes.cfb);Mn("AES-OFB",xt.cipher.modes.ofb);Mn("AES-CTR",xt.cipher.modes.ctr);Mn("AES-GCM",xt.cipher.modes.gcm);function Mn(e,t){var r=function(){return new xt.aes.Algorithm(e,t)};xt.cipher.registerAlgorithm(e,r)}var za=!1,On=4,ce,qa,Bf,Jr,Le;function Lf(){za=!0,Bf=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;ce=new Array(256),qa=new Array(256),Jr=new Array(4),Le=new Array(4);for(var t=0;t<4;++t)Jr[t]=new Array(256),Le[t]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,ce[r]=a,qa[a]=r,c=e[a],i=e[r],s=e[i],o=e[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)Jr[f][r]=u,Le[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^o]]],n^=e[e[n]])}}function Pf(e,t){for(var r=e.slice(0),n,i=1,s=r.length,o=s+6+1,a=On*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=ce[n>>>16&255]<<24^ce[n>>>8&255]<<16^ce[n&255]<<8^ce[n>>>24]^Bf[i]<<24,i++):s>6&&c%s===4&&(n=ce[n>>>24]<<24^ce[n>>>16&255]<<16^ce[n>>>8&255]<<8^ce[n&255]),r[c]=r[c-s]^n;if(t){var u,l=Le[0],f=Le[1],h=Le[2],p=Le[3],d=r.slice(0);a=r.length;for(var c=0,m=a-On;c<a;c+=On,m-=On)if(c===0||c===a-On)d[c]=r[m],d[c+1]=r[m+3],d[c+2]=r[m+2],d[c+3]=r[m+1];else for(var y=0;y<On;++y)u=r[m+y],d[c+(3&-y)]=l[ce[u>>>24]]^f[ce[u>>>16&255]]^h[ce[u>>>8&255]]^p[ce[u&255]];r=d}return r}function $a(e,t,r,n){var i=e.length/4-1,s,o,a,c,u;n?(s=Le[0],o=Le[1],a=Le[2],c=Le[3],u=qa):(s=Jr[0],o=Jr[1],a=Jr[2],c=Jr[3],u=ce);var l,f,h,p,d,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],h=t[2]^e[2],p=t[n?1:3]^e[3];for(var g=3,x=1;x<i;++x)d=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[p&255]^e[++g],m=s[f>>>24]^o[h>>>16&255]^a[p>>>8&255]^c[l&255]^e[++g],y=s[h>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^e[++g],l=d,f=m,h=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[p&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[h>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^e[++g]}function Ps(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=xt.cipher.createDecipher(r,e.key):n=xt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof xt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Of=V((A_,kf)=>{var vt=ht();Fa();Va();Pt();kf.exports=vt.des=vt.des||{};vt.des.startEncrypting=function(e,t,r,n){var i=Ns({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};vt.des.createEncryptionCipher=function(e,t){return Ns({key:e,output:null,decrypt:!1,mode:t})};vt.des.startDecrypting=function(e,t,r,n){var i=Ns({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};vt.des.createDecryptionCipher=function(e,t){return Ns({key:e,output:null,decrypt:!0,mode:t})};vt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Nf(r._keys,n,i,!1)},decrypt:function(n,i){return Nf(r._keys,n,i,!0)}}}),r._init=!1};vt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=vt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Qy(t),this._init=!0}};Ve("DES-ECB",vt.cipher.modes.ecb);Ve("DES-CBC",vt.cipher.modes.cbc);Ve("DES-CFB",vt.cipher.modes.cfb);Ve("DES-OFB",vt.cipher.modes.ofb);Ve("DES-CTR",vt.cipher.modes.ctr);Ve("3DES-ECB",vt.cipher.modes.ecb);Ve("3DES-CBC",vt.cipher.modes.cbc);Ve("3DES-CFB",vt.cipher.modes.cfb);Ve("3DES-OFB",vt.cipher.modes.ofb);Ve("3DES-CTR",vt.cipher.modes.ctr);function Ve(e,t){var r=function(){return new vt.des.Algorithm(e,t)};vt.cipher.registerAlgorithm(e,r)}var Vy=[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],qy=[-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],$y=[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],zy=[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],Hy=[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],Gy=[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],Yy=[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],Wy=[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 Qy(e){for(var t=[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],h=[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],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.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,C=0;C<m;C++){var _=e.getInt32(),S=e.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=t[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|h[S>>>12&15]|p[S>>>8&15]|d[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function Nf(e,t,r,n){var i=e.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=t[0],c=t[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],h=s[u];h!=l;h+=f){var p=c^e[h],d=(c>>>4|c<<28)^e[h+1];o=a,a=c,c=o^(qy[p>>>24&63]|zy[p>>>16&63]|Gy[p>>>8&63]|Wy[p&63]|Vy[d>>>24&63]|$y[d>>>16&63]|Hy[d>>>8&63]|Yy[d&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 Ns(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=vt.cipher.createDecipher(r,e.key):n=vt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof vt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var jr=V((I_,Mf)=>{var ks=ht();Mf.exports=ks.md=ks.md||{};ks.md.algorithms=ks.md.algorithms||{}});var Ff=V((R_,Uf)=>{var nr=ht();jr();Pt();var Xy=Uf.exports=nr.hmac=nr.hmac||{};Xy.create=function(){var e=null,t=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 nr.md.algorithms)t=nr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=e;else{if(typeof o=="string")o=nr.util.createBuffer(o);else if(nr.util.isArray(o)){var a=o;o=nr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),r=nr.util.createBuffer(),n=nr.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<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=o,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var Li=V(()=>{});var Ha=V((B_,Kf)=>{var ue=ht();Ff();jr();Pt();var Zy=ue.pkcs5=ue.pkcs5||{},ir;ue.util.isNodejs&&!ue.options.usePureJavaScript&&(ir=Li());Kf.exports=ue.pbkdf2=Zy.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),ue.util.isNodejs&&!ue.options.usePureJavaScript&&ir.pbkdf2&&(i===null||typeof i!="object")&&(ir.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?ir.pbkdf2Sync.length===4?ir.pbkdf2(e,t,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ir.pbkdf2(e,t,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ir.pbkdf2Sync.length===4?ir.pbkdf2Sync(e,t,r,n).toString("binary"):ir.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in ue.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=ue.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=ue.hmac.create();l.start(i,e);var f="",h,p,d;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(ue.util.int32ToBytes(m)),h=d=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(d),p=l.digest().getBytes(),h=ue.util.xorBytes(h,p,o),d=p;f+=m<c?h:h.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(t),l.update(ue.util.int32ToBytes(m)),h=d=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(d),p=l.digest().getBytes(),h=ue.util.xorBytes(h,p,o),d=p,++y,ue.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,g()}g()}});var $f=V((L_,qf)=>{var Ms=ht();Pt();var Vf=qf.exports=Ms.pem=Ms.pem||{};Vf.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
+
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=Os(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=Os(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=Os(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=Os(e.headers[i]);return e.procType&&(r+=`\r
|
|
10
|
+
`),r+=Ms.util.encode64(e.body,t.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+e.type+`-----\r
|
|
12
|
-
`,r};
|
|
12
|
+
`,r};Vf.decode=function(e){for(var t=[],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(e),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Ms.util.decode64(s[3])};if(t.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 h=c[f];if(!/\s/.test(h[0]))break;l+=h,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},d=s[2].split(","),m=0;m<d.length;++m)p.values.push(Jy(d[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=d[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:d[0],parameters:d[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:d[0],type:d[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(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Os(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
|
|
13
13
|
`;for(var s=0,o=-1,i=0;i<t.length;++i,++s)if(s>65&&o!==-1){var a=t[o];a===","?(++o,t=t.substr(0,o)+`\r
|
|
14
14
|
`+t.substr(o)):t=t.substr(0,o)+`\r
|
|
15
|
-
`+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function sg(e){return e.replace(/^\s+/,"")}});var e0=V((U_,t0)=>{var Ye=dt();sn();Nt();var Zf=t0.exports=Ye.sha256=Ye.sha256||{};Ye.md.sha256=Ye.md.algorithms.sha256=Zf;Zf.create=function(){Jf||og();var e=null,t=Ye.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 t=Ye.util.createBuffer(),e={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=Ye.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 t.putBytes(i),Xf(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ye.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Ja.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};Xf(f,r,i);var h=Ye.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var Ja=null,Jf=!1,jf=null;function og(){Ja=String.fromCharCode(128),Ja+=Ye.util.fillString(String.fromCharCode(0),64),jf=[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],Jf=!0}function Xf(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,h=e.h2,p=e.h3,d=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)o=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),a=y^d&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=g+o+a+jf[u]+t[u],i=s+c,g=y,y=m,m=d,d=p+n>>>0,p=h,h=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+h|0,e.h3=e.h3+p|0,e.h4=e.h4+d|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,x-=64}}});var n0=V((F_,r0)=>{var We=dt();Nt();var Hs=null;We.util.isNodejs&&!We.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Hs=Ui());var ag=r0.exports=We.prng=We.prng||{};ag.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,h=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed,m=We.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return We.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=p(f(t.key,h(t.seed))),t.seed=d(f(t.key,t.seed)),We.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed;t.key=null;for(var d=We.util.createBuffer();d.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=l(t.key,t.seed);t.generated+=m.length,d.putBytes(m),t.key=h(l(t.key,f(t.seed))),t.seed=p(l(t.key,t.seed))}return d.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,h){if(f)return u(f);t.collect(h),a(),u()})}function o(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var h=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(u){var l=null,f=We.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(_){return h.getRandomValues(_)});var p=We.util.createBuffer();if(l)for(;p.length()<u;){var d=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(d));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Hs?(t.seedFile=function(u,l){Hs.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},t.seedFileSync=function(u){return Hs.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.seedFile=function(f,h){function p(d){var m=d.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),h(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var h=f.data;h.forge&&h.forge.prng&&t.seedFile(h.forge.prng.needed,function(p,d){u.postMessage({forge:{prng:{err:p,bytes:d}}})})};u.addEventListener("message",l)}},t}});var Fi=V((K_,ja)=>{var Qt=dt();Ks();e0();n0();Nt();(function(){if(Qt.random&&Qt.random.getBytes){ja.exports=Qt.random;return}(function(e){var t={},r=new Array(4),n=Qt.util.createBuffer();t.formatKey=function(f){var h=Qt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),Qt.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=Qt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),f},t.cipher=function(f,h){return Qt.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=Qt.md.sha256;function i(){var f=Qt.prng.create(t);return f.getBytes=function(h,p){return f.generate(h,p)},f.getBytesSync=function(h){return f.generate(h)},f}var s=i(),o=null,a=Qt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Qt.options.usePureJavaScript||!Qt.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}e&&(e().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),e().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Qt.random)Qt.random=s;else for(var l in s)Qt.random[l]=s[l];Qt.random.createInstance=i,ja.exports=Qt.random})(typeof jQuery<"u"?jQuery:null)})()});var a0=V((V_,o0)=>{var pe=dt();Nt();var tc=[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],i0=[1,2,3,5],cg=function(e,t){return e<<t&65535|(e&65535)>>16-t},ug=function(e,t){return(e&65535)>>t|e<<16-t&65535};o0.exports=pe.rc2=pe.rc2||{};pe.rc2.expandKey=function(e,t){typeof e=="string"&&(e=pe.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(tc[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,tc[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,tc[r.at(a+1)^r.at(a+s)]);return r};var s0=function(e,t,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(e=pe.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.getInt16Le());r?(a=function(d){for(u=0;u<4;u++)d[u]+=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),d[u]=cg(d[u],i0[u]),l++},c=function(d){for(u=0;u<4;u++)d[u]+=f[d[(u+3)%4]&63]}):(a=function(d){for(u=3;u>=0;u--)d[u]=ug(d[u],i0[u]),d[u]-=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),l--},c=function(d){for(u=3;u>=0;u--)d[u]-=f[d[(u+3)%4]&63]});var h=function(d){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<d.length;g++)for(var x=0;x<d[g][0];x++)d[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(d,m){d&&typeof d=="string"&&(d=pe.util.createBuffer(d)),n=!1,i=pe.util.createBuffer(),s=m||new pe.util.createBuffer,o=d,p.output=s},update:function(d){for(n||i.putBuffer(d);i.length()>=8;)h([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(d){var m=!0;if(r)if(d)m=d(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(d)m=d(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};pe.rc2.startEncrypting=function(e,t,r){var n=pe.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createEncryptionCipher=function(e,t){return s0(e,t,!0)};pe.rc2.startDecrypting=function(e,t,r){var n=pe.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createDecryptionCipher=function(e,t){return s0(e,t,!1)}});var Ws=V((q_,m0)=>{var ec=dt();m0.exports=ec.jsbn=ec.jsbn||{};var lr,lg=0xdeadbeefcafe,c0=(lg&16777215)==15715070;function R(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}ec.jsbn.BigInteger=R;function at(){return new R(null)}function fg(e,t,r,n,i,s){for(;--s>=0;){var o=t*this.data[e++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function hg(e,t,r,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>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 u0(e,t,r,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>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=u0,lr=28):c0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=hg,lr=30):c0&&navigator.appName!="Netscape"?(R.prototype.am=fg,lr=26):(R.prototype.am=u0,lr=28);R.prototype.DB=lr;R.prototype.DM=(1<<lr)-1;R.prototype.DV=1<<lr;var rc=52;R.prototype.FV=Math.pow(2,rc);R.prototype.F1=rc-lr;R.prototype.F2=2*lr-rc;var dg="0123456789abcdefghijklmnopqrstuvwxyz",Gs=new Array,zn,Be;zn="0".charCodeAt(0);for(Be=0;Be<=9;++Be)Gs[zn++]=Be;zn="a".charCodeAt(0);for(Be=10;Be<36;++Be)Gs[zn++]=Be;zn="A".charCodeAt(0);for(Be=10;Be<36;++Be)Gs[zn++]=Be;function l0(e){return dg.charAt(e)}function f0(e,t){var r=Gs[e.charCodeAt(t)];return r??-1}function pg(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function mg(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Br(e){var t=at();return t.fromInt(e),t}function yg(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var o=r==8?e[n]&255:f0(e,n);if(o<0){e.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&&e[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 gg(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function xg(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=l0(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=l0(n));return i?s:"0"}function Eg(){var e=at();return R.ZERO.subTo(this,e),e}function bg(){return this.s<0?this.negate():this}function wg(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function Ys(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function vg(){return this.t<=0?0:this.DB*(this.t-1)+Ys(this.data[this.t-1]^this.s&this.DM)}function _g(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function Sg(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Ag(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function Ig(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)t.data[o-r-1]|=(this.data[o]&s)<<i,t.data[o-r]=this.data[o]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function Rg(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Cg(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&R.ZERO.subTo(t,t)}function Tg(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Bg(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=at());var s=at(),o=this.s,a=e.s,c=this.DB-Ys(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),h=this.FV/f,p=(1<<this.F1)/f,d=1<<this.F2,m=r.t,y=m-u,g=t??at();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]*h+(r.data[m-1]+d)*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)}t!=null&&(r.drShiftTo(u,t),o!=a&&R.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Lg(e){var t=at();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(R.ZERO)>0&&e.subTo(t,t),t}function on(e){this.m=e}function Pg(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Dg(e){return e}function Ng(e){e.divRemTo(this.m,null,e)}function kg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Og(e,t){e.squareTo(t),this.reduce(t)}on.prototype.convert=Pg;on.prototype.revert=Dg;on.prototype.reduce=Ng;on.prototype.mulTo=kg;on.prototype.sqrTo=Og;function Mg(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function an(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Ug(e){var t=at();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(R.ZERO)>0&&this.m.subTo(t,t),t}function Fg(e){var t=at();return e.copyTo(t),this.reduce(t),t}function Kg(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Vg(e,t){e.squareTo(t),this.reduce(t)}function qg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}an.prototype.convert=Ug;an.prototype.revert=Fg;an.prototype.reduce=Kg;an.prototype.mulTo=qg;an.prototype.sqrTo=Vg;function $g(){return(this.t>0?this.data[0]&1:this.s)==0}function zg(e,t){if(e>4294967295||e<1)return R.ONE;var r=at(),n=at(),i=t.convert(this),s=Ys(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var o=r;r=n,n=o}return t.revert(r)}function Hg(e,t){var r;return e<256||t.isEven()?r=new on(t):r=new an(t),this.exp(e,r)}R.prototype.copyTo=pg;R.prototype.fromInt=mg;R.prototype.fromString=yg;R.prototype.clamp=gg;R.prototype.dlShiftTo=_g;R.prototype.drShiftTo=Sg;R.prototype.lShiftTo=Ag;R.prototype.rShiftTo=Ig;R.prototype.subTo=Rg;R.prototype.multiplyTo=Cg;R.prototype.squareTo=Tg;R.prototype.divRemTo=Bg;R.prototype.invDigit=Mg;R.prototype.isEven=$g;R.prototype.exp=zg;R.prototype.toString=xg;R.prototype.negate=Eg;R.prototype.abs=bg;R.prototype.compareTo=wg;R.prototype.bitLength=vg;R.prototype.mod=Lg;R.prototype.modPowInt=Hg;R.ZERO=Br(0);R.ONE=Br(1);function Gg(){var e=at();return this.copyTo(e),e}function Yg(){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 Wg(){return this.t==0?this.s:this.data[0]<<24>>24}function Qg(){return this.t==0?this.s:this.data[0]<<16>>16}function Xg(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Zg(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Jg(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Br(r),i=at(),s=at(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(e)+o}function jg(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,o=0,a=0;a<e.length;++a){var c=f0(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function tx(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(R.ONE.shiftLeft(e-1),nc,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(R.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function ex(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function rx(e){return this.compareTo(e)==0}function nx(e){return this.compareTo(e)<0?this:e}function ix(e){return this.compareTo(e)>0?this:e}function sx(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function ox(e,t){return e&t}function ax(e){var t=at();return this.bitwiseTo(e,ox,t),t}function nc(e,t){return e|t}function cx(e){var t=at();return this.bitwiseTo(e,nc,t),t}function h0(e,t){return e^t}function ux(e){var t=at();return this.bitwiseTo(e,h0,t),t}function d0(e,t){return e&~t}function lx(e){var t=at();return this.bitwiseTo(e,d0,t),t}function fx(){for(var e=at(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function hx(e){var t=at();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function dx(e){var t=at();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function px(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function mx(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+px(this.data[e]);return this.s<0?this.t*this.DB:-1}function yx(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function gx(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=yx(this.data[r]^t);return e}function xx(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Ex(e,t){var r=R.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function bx(e){return this.changeBit(e,nc)}function wx(e){return this.changeBit(e,d0)}function vx(e){return this.changeBit(e,h0)}function _x(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Sx(e){var t=at();return this.addTo(e,t),t}function Ax(e){var t=at();return this.subTo(e,t),t}function Ix(e){var t=at();return this.multiplyTo(e,t),t}function Rx(e){var t=at();return this.divRemTo(e,t,null),t}function Cx(e){var t=at();return this.divRemTo(e,null,t),t}function Tx(e){var t=at(),r=at();return this.divRemTo(e,t,r),new Array(t,r)}function Bx(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Lx(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Ki(){}function p0(e){return e}function Px(e,t,r){e.multiplyTo(t,r)}function Dx(e,t){e.squareTo(t)}Ki.prototype.convert=p0;Ki.prototype.revert=p0;Ki.prototype.mulTo=Px;Ki.prototype.sqrTo=Dx;function Nx(e){return this.exp(e,new Ki)}function kx(e,t,r){var n=Math.min(this.t+e.t,t);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,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Ox(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function Hn(e){this.r2=at(),this.q3=at(),R.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Mx(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=at();return e.copyTo(t),this.reduce(t),t}function Ux(e){return e}function Fx(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function Kx(e,t){e.squareTo(t),this.reduce(t)}function Vx(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Hn.prototype.convert=Mx;Hn.prototype.revert=Ux;Hn.prototype.reduce=Fx;Hn.prototype.mulTo=Vx;Hn.prototype.sqrTo=Kx;function qx(e,t){var r=e.bitLength(),n,i=Br(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 on(t):t.isEven()?s=new Hn(t):s=new an(t);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=at();for(s.sqrTo(o[1],l);a<=u;)o[a]=at(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=e.t-1,h,p=!0,d=at(),m;for(r=Ys(e.data[f])-1;f>=0;){for(r>=c?h=e.data[f]>>r-c&u:(h=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=e.data[f-1]>>this.DB+r-c)),a=n;!(h&1);)h>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[h].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,d),s.sqrTo(d,i),a-=2;a>0?s.sqrTo(i,d):(m=i,i=d,d=m),s.mulTo(d,o[h],i)}for(;f>=0&&!(e.data[f]&1<<r);)s.sqrTo(i,d),m=i,i=d,d=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function $x(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function zx(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Hx(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return R.ZERO;for(var r=e.clone(),n=this.clone(),i=Br(1),s=Br(0),o=Br(0),a=Br(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(e,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var Me=[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],Gx=(1<<26)/Me[Me.length-1];function Yx(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Me[Me.length-1]){for(t=0;t<Me.length;++t)if(r.data[0]==Me[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Me.length;){for(var n=Me[t],i=t+1;i<Me.length&&n<Gx;)n*=Me[i++];for(n=r.modInt(n);t<i;)if(n%Me[t++]==0)return!1}return r.millerRabin(e)}function Wx(e){var t=this.subtract(R.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Qx(),s,o=0;o<e;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Qx(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=Xg;R.prototype.toRadix=Jg;R.prototype.fromRadix=jg;R.prototype.fromNumber=tx;R.prototype.bitwiseTo=sx;R.prototype.changeBit=Ex;R.prototype.addTo=_x;R.prototype.dMultiply=Bx;R.prototype.dAddOffset=Lx;R.prototype.multiplyLowerTo=kx;R.prototype.multiplyUpperTo=Ox;R.prototype.modInt=zx;R.prototype.millerRabin=Wx;R.prototype.clone=Gg;R.prototype.intValue=Yg;R.prototype.byteValue=Wg;R.prototype.shortValue=Qg;R.prototype.signum=Zg;R.prototype.toByteArray=ex;R.prototype.equals=rx;R.prototype.min=nx;R.prototype.max=ix;R.prototype.and=ax;R.prototype.or=cx;R.prototype.xor=ux;R.prototype.andNot=lx;R.prototype.not=fx;R.prototype.shiftLeft=hx;R.prototype.shiftRight=dx;R.prototype.getLowestSetBit=mx;R.prototype.bitCount=gx;R.prototype.testBit=xx;R.prototype.setBit=bx;R.prototype.clearBit=wx;R.prototype.flipBit=vx;R.prototype.add=Sx;R.prototype.subtract=Ax;R.prototype.multiply=Ix;R.prototype.divide=Rx;R.prototype.remainder=Cx;R.prototype.divideAndRemainder=Tx;R.prototype.modPow=qx;R.prototype.modInverse=Hx;R.prototype.pow=Nx;R.prototype.gcd=$x;R.prototype.isProbablePrime=Yx});var b0=V(($_,E0)=>{var Qe=dt();sn();Nt();var g0=E0.exports=Qe.sha1=Qe.sha1||{};Qe.md.sha1=Qe.md.algorithms.sha1=g0;g0.create=function(){x0||Xx();var e=null,t=Qe.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 t=Qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Qe.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 t.putBytes(i),y0(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Qe.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ic.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};y0(f,r,i);var h=Qe.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h},n};var ic=null,x0=!1;function Xx(){ic=String.fromCharCode(128),ic+=Qe.util.fillString(String.fromCharCode(0),64),x0=!0}function y0(e,t,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,s=e.h1,o=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+o|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var _0=V((z_,v0)=>{var Xe=dt();Nt();Fi();b0();var w0=v0.exports=Xe.pkcs1=Xe.pkcs1||{};w0.encode_rsa_oaep=function(e,t,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=Xe.md.sha1.create(),o||(o=s);var a=Math.ceil(e.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-t.length,p=0;p<h;p++)f+="\0";var d=l.getBytes()+f+""+t;if(!i)i=Xe.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=Qs(i,a-s.digestLength-1,o),y=Xe.util.xorBytes(d,m,d.length),g=Qs(y,s.digestLength,o),x=Xe.util.xorBytes(i,g,i.length);return"\0"+x+y};w0.decode_rsa_oaep=function(e,t,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(e.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=Xe.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=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=Qs(l,i.digestLength,s),h=Xe.util.xorBytes(u,f,u.length),p=Qs(h,o-i.digestLength-1,s),d=Xe.util.xorBytes(l,p,l.length),m=d.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,C=i.digestLength;C<d.length;C++){var _=d.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||d.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)};function Qs(e,t,r){r||(r=Xe.md.sha1.create());for(var n="",i=Math.ceil(t/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(e+o),n+=r.digest().getBytes()}return n.substring(0,t)}});var S0=V((H_,sc)=>{var Lr=dt();Nt();Ws();Fi();(function(){if(Lr.prime){sc.exports=Lr.prime;return}var e=sc.exports=Lr.prime=Lr.prime||{},t=Lr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};e.generateProbablePrime=function(f,h,p){typeof h=="function"&&(p=h,h={}),h=h||{};var d=h.algorithm||"PRIMEINC";typeof d=="string"&&(d={name:d}),d.options=d.options||{};var m=h.prng||Lr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(d.name==="PRIMEINC")return s(f,y,d.options,p);throw new Error("Invalid prime generation algorithm: "+d.name)};function s(f,h,p,d){return"workers"in p?c(f,h,p,d):o(f,h,p,d)}function o(f,h,p,d){var m=u(f,h),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,h,y,g,x,d)}function a(f,h,p,d,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[d++%8],0)}while(y<0||+new Date-x<y);Lr.util.setImmediate(function(){a(f,h,p,d,m,y,g)})}function c(f,h,p,d){if(typeof Worker>"u")return o(f,h,p,d);var m=u(f,h),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Lr.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var z=W.data;if(z.found){for(var et=0;et<_.length;++et)_[et].terminate();return D=!0,d(null,new t(z.prime,16))}m.bitLength()>f&&(m=u(f,h));var mt=m.toString(16);W.target.postMessage({hex:mt,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,h){var p=new t(f,h),d=f-1;return p.testBit(d)||p.bitwiseTo(t.ONE.shiftLeft(d),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 Zs=V((G_,L0)=>{var $=dt();Mi();Ws();ks();_0();S0();Fi();Nt();typeof st>"u"&&(st=$.jsbn.BigInteger);var st,oc=$.util.isNodejs?Ui():null,v=$.asn1,Le=$.util;$.pki=$.pki||{};L0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,Zx=[6,4,2,4,2,4,6,2],Jx={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"}]},jx={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"}]},t1={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"}]},e1=$.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"}]}]},r1={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"}]},n1=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=v.oidToDer(t).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,e.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},T0=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(st.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(st.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new st($.util.bytesToHex($.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(st.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=B0(e,t,r)):(i=$.util.createBuffer(),i.putBytes(e));for(var o=new st(i.toHex(),16),a=T0(o,t,n),c=a.toString(16),u=$.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var o=new st($.util.createBuffer(e).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=T0(o,t,r),c=a.toString(16),u=$.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),n!==!1?Xs(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||$.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:e,rng:i,eInt:t||65537,e:new st(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new st(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new st(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(st.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(s1(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Zx[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(st.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}o=+new Date,a+=o-s,s=o}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(A0("generateKeyPair"))return oc.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(I0("generateKey")&&I0("exportKey"))return Le.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Le.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(R0("generateKey")&&R0("exportKey")){var i=Le.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Le.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Q.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(A0("generateKeyPairSync")){var s=oc.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;i1(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};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 B0(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return $.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 Q.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=Xs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(l,r1,f,h)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=h,p}var d=v.derToOid(f.algorithmIdentifier);if(!(d===$.oids.md2||d===$.oids.md5||d===$.oids.sha1||d===$.oids.sha224||d===$.oids.sha256||d===$.oids.sha384||d===$.oids.sha512||d===$.oids["sha512-224"]||d===$.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=d,p}if((d===$.oids.md2||d===$.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=Xs(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,o,a){var c={n:e,e:t,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 h=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Xs};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,d){return $.pkcs1.decode_rsa_oaep(d,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(h,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:n1},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(h,c,f)},c};Q.wrapRsaPrivateKey=function(e){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(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,Jx,t,r)&&(e=v.fromDer($.util.createBuffer(t.privateKey))),t={},r=[],!v.validate(e,jx,t,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=$.util.createBuffer(t.privateKeyModulus).toHex(),s=$.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(t.privateKeyPrime1).toHex(),c=$.util.createBuffer(t.privateKeyPrime2).toHex(),u=$.util.createBuffer(t.privateKeyExponent1).toHex(),l=$.util.createBuffer(t.privateKeyExponent2).toHex(),f=$.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new st(i,16),new st(s,16),new st(o,16),new st(a,16),new st(c,16),new st(u,16),new st(l,16),new st(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){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,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,e1,t,r)){var n=v.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!v.validate(e,t1,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=$.util.createBuffer(t.publicKeyModulus).toHex(),o=$.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new st(s,16),new st(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){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(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e))])};function B0(e,t,r){var n=$.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-e.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=$.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(e),n}function Xs(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=$.util.createBuffer(e),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 i1(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return o(a,e.q);s(e.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.p=null,i();return}if(e.q.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.q=null,s(e.qBits,o);return}if(e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(st.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,o);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=$.util.hexToBytes(t);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 s1(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function A0(e){return $.util.isNodejs&&typeof oc[e]=="function"}function I0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.crypto=="object"&&typeof Le.globalScope.crypto.subtle=="object"&&typeof Le.globalScope.crypto.subtle[e]=="function"}function R0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.msCrypto=="object"&&typeof Le.globalScope.msCrypto.subtle=="object"&&typeof Le.globalScope.msCrypto.subtle[e]=="function"}function C0(e){for(var t=$.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var M0=V((Y_,O0)=>{var M=dt();Ks();Mi();qf();sn();ks();Za();Qf();Fi();a0();Zs();Nt();typeof P0>"u"&&(P0=M.jsbn.BigInteger);var P0,A=M.asn1,Z=M.pki=M.pki||{};O0.exports=Z.pbe=M.pbe=M.pbe||{};var cn=Z.oids,o1={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},a1={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},c1={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Z.encryptPrivateKeyInfo=function(e,t,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=A.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=cn["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=cn["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=cn["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=cn.desCBC,f=M.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),d=k0(p),m=M.pkcs5.pbkdf2(t,n,i,o,d),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes();var x=u1(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(cn.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(cn.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(t,b,1,i,o),y=Z.pbe.generatePkcs12Key(t,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(cn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!A.validate(e,o1,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=A.derToOid(n.encryptionOid),a=Z.pbe.getCipher(o,n.encryptionParams,t),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return M.pem.encode(r,{maxline:t})};Z.encryptedPrivateKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.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=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(t,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(e))),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)};Z.decryptRsaPrivateKey=function(e,t){var r=null,n=M.pem.decode(e)[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(t,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=Z.decryptPrivateKeyInfo(A.fromDer(r),t):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(e,t,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(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var h=f.length(),p=t.length(),d=new M.util.ByteBuffer;d.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%p));var g=u*Math.ceil(h/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(d.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(h/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var z=new M.util.ByteBuffer(b.getBytes(u)),et=511;for(a=D.length()-1;a>=0;a--)et=et>>8,et+=D.at(a)+z.at(a),z.setAt(a,et&255);W.putBuffer(z)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!A.validate(t,a1,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(e=A.derToOid(n.kdfOid),e!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(n.encOid),e!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,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(Z.oids[e]){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=N0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,p=u(f);return p.start(h),p};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!A.validate(t,c1,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(e){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.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=e,s}var f=N0(n.prfOid),h=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,p)};Z.pbe.opensslDeriveBytes=function(e,t,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()}t===null&&(t="");for(var i=[D0(n,e+t)],s=16,o=1;s<r;++o,s+=16)i.push(D0(n,i[o-1]+e+t));return i.join("").substr(0,r)};function D0(e,t){return e.start().update(t).digest().getBytes()}function N0(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.oids[A.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return k0(t)}function k0(e){var t=M.md;switch(e){case"hmacWithSHA224":t=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function u1(e,t,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var Hh=V((YI,zh)=>{var _t=dt();sn();Nt();var Zi=zh.exports=_t.sha512=_t.sha512||{};_t.md.sha512=_t.md.algorithms.sha512=Zi;var qh=_t.sha384=_t.sha512.sha384=_t.sha512.sha384||{};qh.create=function(){return Zi.create("SHA-384")};_t.md.sha384=_t.md.algorithms.sha384=qh;_t.sha512.sha256=_t.sha512.sha256||{create:function(){return Zi.create("SHA-512/256")}};_t.md["sha512/256"]=_t.md.algorithms["sha512/256"]=_t.sha512.sha256;_t.sha512.sha224=_t.sha512.sha224||{create:function(){return Zi.create("SHA-512/224")}};_t.md["sha512/224"]=_t.md.algorithms["sha512/224"]=_t.sha512.sha224;Zi.create=function(e){if($h||LE(),typeof e>"u"&&(e="SHA-512"),!(e in En))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=En[e],r=null,n=_t.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(e){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:e.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=_t.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=_t.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),Vh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=_t.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(ou.substr(0,a.blockLength-l));for(var f,h,p=a.fullMessageLength[0]*8,d=0;d<a.fullMessageLength.length-1;++d)f=a.fullMessageLength[d+1]*8,h=f/4294967296>>>0,p+=h,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),d=0;d<r.length;++d)m[d]=r[d].slice(0);Vh(m,i,c);var y=_t.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var d=0;d<g;++d)y.putInt32(m[d][0]),(d!==g-1||e!=="SHA-512/224")&&y.putInt32(m[d][1]);return y},a};var ou=null,$h=!1,au=null,En=null;function LE(){ou=String.fromCharCode(128),ou+=_t.util.fillString(String.fromCharCode(0),128),au=[[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]],En={},En["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],En["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],En["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],En["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],$h=!0}function Vh(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x,b,C,_,S,P,D,Y,W,z,et,mt,Jt,T,k,L,N,I,U,q,G=r.length();G>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=t[T-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,U=t[T-15],k=U[0],L=U[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,I=t[T-7],q=t[T-16],L=i+I[1]+o+q[1],t[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,t[T][1]=L>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],x=e[1][1],b=e[2][0],C=e[2][1],_=e[3][0],S=e[3][1],P=e[4][0],D=e[4][1],Y=e[5][0],W=e[5][1],z=e[6][0],et=e[6][1],mt=e[7][0],Jt=e[7][1],T=0;T<80;++T)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=(z^P&(Y^z))>>>0,h=(et^D&(W^et))>>>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,d=(y&x|C&(y^x))>>>0,L=Jt+l+h+au[T][1]+t[T][1],n=mt+u+f+au[T][0]+t[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+d,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,mt=z,Jt=et,z=Y,et=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=e[0][1]+y,e[0][0]=e[0][0]+m+(L/4294967296>>>0)>>>0,e[0][1]=L>>>0,L=e[1][1]+x,e[1][0]=e[1][0]+g+(L/4294967296>>>0)>>>0,e[1][1]=L>>>0,L=e[2][1]+C,e[2][0]=e[2][0]+b+(L/4294967296>>>0)>>>0,e[2][1]=L>>>0,L=e[3][1]+S,e[3][0]=e[3][0]+_+(L/4294967296>>>0)>>>0,e[3][1]=L>>>0,L=e[4][1]+D,e[4][0]=e[4][0]+P+(L/4294967296>>>0)>>>0,e[4][1]=L>>>0,L=e[5][1]+W,e[5][0]=e[5][0]+Y+(L/4294967296>>>0)>>>0,e[5][1]=L>>>0,L=e[6][1]+et,e[6][0]=e[6][0]+z+(L/4294967296>>>0)>>>0,e[6][1]=L>>>0,L=e[7][1]+Jt,e[7][0]=e[7][0]+mt+(L/4294967296>>>0)>>>0,e[7][1]=L>>>0,G-=128}}});var Su=V((S4,bd)=>{var ci=1e3,ui=ci*60,li=ui*60,_n=li*24,ab=_n*7,cb=_n*365.25;bd.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return ub(e);if(r==="number"&&isFinite(e))return t.long?fb(e):lb(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function ub(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*cb;case"weeks":case"week":case"w":return r*ab;case"days":case"day":case"d":return r*_n;case"hours":case"hour":case"hrs":case"hr":case"h":return r*li;case"minutes":case"minute":case"mins":case"min":case"m":return r*ui;case"seconds":case"second":case"secs":case"sec":case"s":return r*ci;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function lb(e){var t=Math.abs(e);return t>=_n?Math.round(e/_n)+"d":t>=li?Math.round(e/li)+"h":t>=ui?Math.round(e/ui)+"m":t>=ci?Math.round(e/ci)+"s":e+"ms"}function fb(e){var t=Math.abs(e);return t>=_n?_o(e,t,_n,"day"):t>=li?_o(e,t,li,"hour"):t>=ui?_o(e,t,ui,"minute"):t>=ci?_o(e,t,ci,"second"):e+" ms"}function _o(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var vd=V((A4,wd)=>{function hb(e){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Su(),r.destroy=u,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(l){let f=0;for(let h=0;h<l.length;h++)f=(f<<5)-f+l.charCodeAt(h),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=t;function r(l){let f,h=null,p,d;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 C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),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:()=>h!==null?h:(p!==r.namespaces&&(p=r.namespaces,d=r.enabled(l)),d),set:y=>{h=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let h=r(this.namespace+(typeof f>"u"?":":f)+l);return h.log=this.log,h}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,h=(typeof l=="string"?l:"").split(/[\s,]+/),p=h.length;for(f=0;f<p;f++)h[f]&&(l=h[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,h;for(f=0,h=r.skips.length;f<h;f++)if(r.skips[f].test(l))return!1;for(f=0,h=r.names.length;f<h;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}wd.exports=hb});var Au=V((_e,So)=>{_e.formatArgs=pb;_e.save=mb;_e.load=yb;_e.useColors=db;_e.storage=gb();_e.destroy=(()=>{let e=!1;return()=>{e||(e=!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`."))}})();_e.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 db(){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 pb(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+So.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}_e.log=console.debug||console.log||(()=>{});function mb(e){try{e?_e.storage.setItem("debug",e):_e.storage.removeItem("debug")}catch{}}function yb(){let e;try{e=_e.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function gb(){try{return localStorage}catch{}}So.exports=vd()(_e);var{formatters:xb}=So.exports;xb.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Cd=V((H4,Rd)=>{"use strict";Rd.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Nd=V((Pd,Dd)=>{"use strict";var Co=Cd(),{hasOwnProperty:Bd}=Object.prototype,{propertyIsEnumerable:Ab}=Object,di=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Ib=Pd,Td={concatArrays:!1,ignoreUndefined:!1},To=e=>{let t=[];for(let r in e)Bd.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)Ab.call(e,n)&&t.push(n)}return t};function pi(e){return Array.isArray(e)?Rb(e):Co(e)?Cb(e):e}function Rb(e){let t=e.slice(0,0);return To(e).forEach(r=>{di(t,r,pi(e[r]))}),t}function Cb(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return To(e).forEach(r=>{di(t,r,pi(e[r]))}),t}var Ld=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?di(e,i,Tu(e[i],t[i],n)):di(e,i,pi(t[i])))}),e),Tb=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Bd.call(s,a)&&(o.push(String(a)),s===e?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=Ld(n,s,To(s).filter(a=>!o.includes(a)),r)}),n};function Tu(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?Tb(e,t,r):!Co(t)||!Co(e)?pi(t):Ld(e,t,To(t),r)}Dd.exports=function(...e){let t=Tu(pi(Td),this!==Ib&&this||{},Td),r={_:{}};for(let n of e)if(n!==void 0){if(!Co(n))throw new TypeError("`"+n+"` is not an Option Object");r=Tu(r,{_:n},t)}return r._}});var Md=V((Y4,Od)=>{"use strict";function Bb(e){return e>=55296&&e<=56319}function Lb(e){return e>=56320&&e<=57343}Od.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],Bb(o)&&Lb(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=t(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Fd=V((W4,Ud)=>{"use strict";function Pb(e){return e>=55296&&e<=56319}function Db(e){return e>=56320&&e<=57343}Ud.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,s=null,o=0;o<r;o++)i=t.charCodeAt(o),Db(i)?s!=null&&Pb(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var Vd=V((Q4,Kd)=>{"use strict";var Nb=Md(),kb=Fd();Kd.exports=Nb.bind(null,kb)});var zd=V((X4,$d)=>{"use strict";var Ob=Vd(),Mb=/[\/\?<>\\:\*\|"]/g,Ub=/[\x00-\x1f\x80-\x9f]/g,Fb=/^\.+$/,Kb=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Vb=/[\. ]+$/;function qd(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(Mb,t).replace(Ub,t).replace(Fb,t).replace(Kb,t).replace(Vb,t);return Ob(r,255)}$d.exports=function(e,t){var r=t&&t.replacement||"",n=qd(e,r);return r===""?n:qd(n,"")}});var mp=V((RT,Qu)=>{"use strict";var Ew=Object.prototype.hasOwnProperty,de="~";function hs(){}Object.create&&(hs.prototype=Object.create(null),new hs().__proto__||(de=!1));function bw(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function pp(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new bw(r,n||e,i),o=de?de+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],s]:e._events[o].push(s):(e._events[o]=s,e._eventsCount++),e}function Uo(e,t){--e._eventsCount===0?e._events=new hs:delete e._events[t]}function le(){this._events=new hs,this._eventsCount=0}le.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Ew.call(r,n)&&t.push(de?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};le.prototype.listeners=function(t){var r=de?de+t:t,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};le.prototype.listenerCount=function(t){var r=de?de+t:t,n=this._events[r];return n?n.fn?1:n.length:0};le.prototype.emit=function(t,r,n,i,s,o){var a=de?de+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,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 h=c.length,p;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(t,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};le.prototype.on=function(t,r,n){return pp(this,t,r,n,!1)};le.prototype.once=function(t,r,n){return pp(this,t,r,n,!0)};le.prototype.removeListener=function(t,r,n,i){var s=de?de+t:t;if(!this._events[s])return this;if(!r)return Uo(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Uo(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:Uo(this,s)}return this};le.prototype.removeAllListeners=function(t){var r;return t?(r=de?de+t:t,this._events[r]&&Uo(this,r)):(this._events=new hs,this._eventsCount=0),this};le.prototype.off=le.prototype.removeListener;le.prototype.addListener=le.prototype.on;le.prefixed=de;le.EventEmitter=le;typeof Qu<"u"&&(Qu.exports=le)});var bl=V((z3,kp)=>{"use strict";function Np(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Nw(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Np(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Np(new i,r)}}kp.exports=Nw});var Vp=V(Es=>{(function(){var e,t,r,n,i,s,o,a;a=function(c){var u,l,f,h;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,h=c&255,[u,l,f,h].join(".")},o=function(c){var u,l,f,h,p,d;for(u=[],f=h=0;h<=3&&c.length!==0;f=++h){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}d=t(c),p=d[0],l=d[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"),t=function(c){var u,l,f,h,p;for(h=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)h=h*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")h=h*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")h=h*u+(10+r(c[f])-i)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[h,f]},e=function(){function c(u,l){var f,h,p,d;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(d=u.split("/",2),u=d[0],l=d[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(h=p=32;p>=0;h=--p)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;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,h;for(h=o(this.first),f=o(this.last),l=0;h<=f;)u(a(h),h,l),l++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Es.ip2long=o,Es.long2ip=a,Es.Netmask=e}).call(Es)});var Hp=V((zp,sa)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"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(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,d){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>d)return null;for(b=d-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)),d=function(){let C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:d,zoneId:g}}function u(p,d,m,y){if(p.length!==d.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!==d[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,d){for(;p.length<d;)p=`0${p}`;return p}let h={};h.IPv4=function(){function p(d){if(d.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<d.length;m++)if(y=d[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=d}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(d,m){let y;if(m===void 0&&(y=d,d=y[0],m=y[1]),d.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,d.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=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),d+=b}else return null;return 32-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),h.IPv4.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[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")}},h.IPv4.isIPv4=function(p){return this.parser(p)!==null},h.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},h.IPv4.isValidFourPartDecimal=function(p){return!!(h.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(p){let d,m,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[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")}},h.IPv4.parse=function(p){let d=this.parser(p);if(d===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(d)},h.IPv4.parseCIDR=function(p){let d;if(d=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(d[2]);if(m>=0&&m<=32){let y=[this.parse(d[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")},h.IPv4.parser=function(p){let d,m,y;if(d=p.match(r.fourOctet))return function(){let g=d.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(d=p.match(r.longValue)){if(y=l(d[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(d=p.match(r.twoOctet))?function(){let g=d.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}():(d=p.match(r.threeOctet))?function(){let g=d.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},h.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let d=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<4&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.IPv6=function(){function p(d,m){let y,g;if(d.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(d[y]<<8|d[y+1]);else if(d.length===8)this.parts=d;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(d,m){let y;if(m===void 0&&(y=d,d=y[0],m=y[1]),d.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,d.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=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),d+=x}else return null;return 128-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let d,m=[],y=this.parts;for(let g=0;g<y.length;g++)d=y[g],m.push(d>>8),m.push(d&255);return m},p.prototype.toFixedLengthString=function(){let d=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}`),d+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let d=this.parts.slice(-2),m=d[0],y=d[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let d=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}`),d+m},p.prototype.toRFC5952String=function(){let d=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=d.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}(),h.IPv6.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[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(d){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${d})`)}},h.IPv6.isIPv6=function(p){return this.parser(p)!==null},h.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let d=this.parser(p);return new this(d.parts,d.zoneId),!0}catch{return!1}},h.IPv6.networkAddressFromCIDR=function(p){let d,m,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[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})`)}},h.IPv6.parse=function(p){let d=this.parser(p);if(d.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(d.parts,d.zoneId)},h.IPv6.parseCIDR=function(p){let d,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(d=parseInt(m[2]),d>=0&&d<=128))return y=[this.parse(m[1]),d],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(p){let d,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]||"",d=c(y[1].slice(0,-1)+b,6),d.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 d.parts.push(x[0]<<8|x[1]),d.parts.push(x[2]<<8|x[3]),{parts:d.parts,zoneId:d.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let d=[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;)d[m]=255,m++;return y<16&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.fromByteArray=function(p){let d=p.length;if(d===4)return new h.IPv4(p);if(d===16)return new h.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},h.isValid=function(p){return h.IPv6.isValid(p)||h.IPv4.isValid(p)},h.parse=function(p){if(h.IPv6.isValid(p))return h.IPv6.parse(p);if(h.IPv4.isValid(p))return h.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},h.parseCIDR=function(p){try{return h.IPv6.parseCIDR(p)}catch{try{return h.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},h.process=function(p){let d=this.parse(p);return d.kind()==="ipv6"&&d.isIPv4MappedAddress()?d.toIPv4Address():d},h.subnetMatch=function(p,d,m){let y,g,x,b;m==null&&(m="unicast");for(g in d)if(Object.prototype.hasOwnProperty.call(d,g)){for(x=d[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 sa<"u"&&sa.exports?sa.exports=h:e.ipaddr=h})(zp)});var cm=V(($B,am)=>{"use strict";am.exports=om;var rv=Su(),Jr=om.prototype,nv=new Date%1e9;function iv(){return(Math.random()*1e9>>>0)+nv++}function om(e){e=e||{},this.id=e.id||iv(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Jr.has=function(e){return e in this._lookup};Jr.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Jr.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Jr.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};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(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Jr.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Jr.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=rv(t)),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};Jr.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Jr.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var _s=V((o6,pm)=>{pm.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}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 ym=V((c6,mm)=>{mm.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var xm=V((u6,gm)=>{var cv=ym();gm.exports=cv});var Ce=V((f6,Em)=>{Em.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,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(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_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 Ai=V((d6,wm)=>{var kl=_s(),uv=xm(),bm=Ce();wm.exports=class extends kl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new uv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,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):t(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(t,c,a)}else t(a)}_handleError(t,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof kl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):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(t){if(this._inMemoryBlockDuration=t?parseInt(t):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(t){if(typeof t<"u"&&!(t instanceof kl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,s,i)}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new bm(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,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}get(t,r={}){let n=this.getKey(t);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,t,r)})})}delete(t,r={}){let n=this.getKey(t);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,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((s,o)=>{this._upsert(t,r,n,!0,i).then(()=>{s(new bm(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var _m=V((p6,vm)=>{var lv=Ai(),fv=Ce(),Ol="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} ",Ml=class extends lv{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this.useRedisPackage=t.useRedisPackage,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Ol})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new fv;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(t,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(t,r,"EX",s):o.set(t,r,{EX:s}):o.set(t,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(t).exec(!0):o.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].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(t,r,s,u):this.client.eval(Ol,1,t,r,s,u)}):this.client.eval(Ol,{keys:[t],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(t,r).pttl(t).exec(!0):o.incrBy(t,r).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(t).pTTL(t).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(t){return this.client.del(t).then(r=>r>0)}};vm.exports=Ml});var Im=V((m6,Am)=>{var hv=Ai(),dv=Ce();function Sm(e){try{let t=e.client?e.client:e,{version:r}=t.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 Ul=class e extends hv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=Sm(this.client)}):(this._initCollection(),this._driverVersion=Sm(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?e.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_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(t,r,n){let i=new dv,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(t,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:t},a=Object.assign(a,o),c={$set:{key:t,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:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,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(h=>{l(h)}).catch(h=>{if(h&&h.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},o),d={$set:Object.assign({key:t,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,d,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Am.exports=Ul});var Cm=V((y6,Rm)=>{var pv=Ai(),mv=Ce(),Fl=class extends pv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{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((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,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),t()})})}).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(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new mv,[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(t,r,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
15
|
+
`+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function Jy(e){return e.replace(/^\s+/,"")}});var Qf=V((P_,Wf)=>{var qe=ht();jr();Pt();var Hf=Wf.exports=qe.sha256=qe.sha256||{};qe.md.sha256=qe.md.algorithms.sha256=Hf;Hf.create=function(){Gf||jy();var e=null,t=qe.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 t=qe.util.createBuffer(),e={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=qe.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 t.putBytes(i),zf(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=qe.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Ga.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};zf(f,r,i);var h=qe.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var Ga=null,Gf=!1,Yf=null;function jy(){Ga=String.fromCharCode(128),Ga+=qe.util.fillString(String.fromCharCode(0),64),Yf=[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],Gf=!0}function zf(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,h=e.h2,p=e.h3,d=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)o=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),a=y^d&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=g+o+a+Yf[u]+t[u],i=s+c,g=y,y=m,m=d,d=p+n>>>0,p=h,h=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+h|0,e.h3=e.h3+p|0,e.h4=e.h4+d|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,x-=64}}});var Zf=V((D_,Xf)=>{var $e=ht();Pt();var Us=null;$e.util.isNodejs&&!$e.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Us=Li());var tg=Xf.exports=$e.prng=$e.prng||{};tg.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,h=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed,m=$e.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return $e.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=p(f(t.key,h(t.seed))),t.seed=d(f(t.key,t.seed)),$e.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed;t.key=null;for(var d=$e.util.createBuffer();d.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=l(t.key,t.seed);t.generated+=m.length,d.putBytes(m),t.key=h(l(t.key,f(t.seed))),t.seed=p(l(t.key,t.seed))}return d.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,h){if(f)return u(f);t.collect(h),a(),u()})}function o(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var h=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(u){var l=null,f=$e.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(_){return h.getRandomValues(_)});var p=$e.util.createBuffer();if(l)for(;p.length()<u;){var d=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(d));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Us?(t.seedFile=function(u,l){Us.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},t.seedFileSync=function(u){return Us.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.seedFile=function(f,h){function p(d){var m=d.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),h(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var h=f.data;h.forge&&h.forge.prng&&t.seedFile(h.forge.prng.needed,function(p,d){u.postMessage({forge:{prng:{err:p,bytes:d}}})})};u.addEventListener("message",l)}},t}});var Pi=V((N_,Ya)=>{var Yt=ht();Ds();Qf();Zf();Pt();(function(){if(Yt.random&&Yt.random.getBytes){Ya.exports=Yt.random;return}(function(e){var t={},r=new Array(4),n=Yt.util.createBuffer();t.formatKey=function(f){var h=Yt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),Yt.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=Yt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),f},t.cipher=function(f,h){return Yt.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=Yt.md.sha256;function i(){var f=Yt.prng.create(t);return f.getBytes=function(h,p){return f.generate(h,p)},f.getBytesSync=function(h){return f.generate(h)},f}var s=i(),o=null,a=Yt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Yt.options.usePureJavaScript||!Yt.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}e&&(e().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),e().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Yt.random)Yt.random=s;else for(var l in s)Yt.random[l]=s[l];Yt.random.createInstance=i,Ya.exports=Yt.random})(typeof jQuery<"u"?jQuery:null)})()});var e0=V((k_,t0)=>{var fe=ht();Pt();var Wa=[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],Jf=[1,2,3,5],eg=function(e,t){return e<<t&65535|(e&65535)>>16-t},rg=function(e,t){return(e&65535)>>t|e<<16-t&65535};t0.exports=fe.rc2=fe.rc2||{};fe.rc2.expandKey=function(e,t){typeof e=="string"&&(e=fe.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Wa[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Wa[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Wa[r.at(a+1)^r.at(a+s)]);return r};var jf=function(e,t,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(e=fe.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.getInt16Le());r?(a=function(d){for(u=0;u<4;u++)d[u]+=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),d[u]=eg(d[u],Jf[u]),l++},c=function(d){for(u=0;u<4;u++)d[u]+=f[d[(u+3)%4]&63]}):(a=function(d){for(u=3;u>=0;u--)d[u]=rg(d[u],Jf[u]),d[u]-=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),l--},c=function(d){for(u=3;u>=0;u--)d[u]-=f[d[(u+3)%4]&63]});var h=function(d){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<d.length;g++)for(var x=0;x<d[g][0];x++)d[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(d,m){d&&typeof d=="string"&&(d=fe.util.createBuffer(d)),n=!1,i=fe.util.createBuffer(),s=m||new fe.util.createBuffer,o=d,p.output=s},update:function(d){for(n||i.putBuffer(d);i.length()>=8;)h([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(d){var m=!0;if(r)if(d)m=d(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(d)m=d(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};fe.rc2.startEncrypting=function(e,t,r){var n=fe.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};fe.rc2.createEncryptionCipher=function(e,t){return jf(e,t,!0)};fe.rc2.startDecrypting=function(e,t,r){var n=fe.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};fe.rc2.createDecryptionCipher=function(e,t){return jf(e,t,!1)}});var Vs=V((O_,u0)=>{var Qa=ht();u0.exports=Qa.jsbn=Qa.jsbn||{};var sr,ng=0xdeadbeefcafe,r0=(ng&16777215)==15715070;function R(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}Qa.jsbn.BigInteger=R;function ot(){return new R(null)}function ig(e,t,r,n,i,s){for(;--s>=0;){var o=t*this.data[e++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function sg(e,t,r,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>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 n0(e,t,r,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>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=n0,sr=28):r0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=sg,sr=30):r0&&navigator.appName!="Netscape"?(R.prototype.am=ig,sr=26):(R.prototype.am=n0,sr=28);R.prototype.DB=sr;R.prototype.DM=(1<<sr)-1;R.prototype.DV=1<<sr;var Xa=52;R.prototype.FV=Math.pow(2,Xa);R.prototype.F1=Xa-sr;R.prototype.F2=2*sr-Xa;var og="0123456789abcdefghijklmnopqrstuvwxyz",Fs=new Array,Un,Ae;Un="0".charCodeAt(0);for(Ae=0;Ae<=9;++Ae)Fs[Un++]=Ae;Un="a".charCodeAt(0);for(Ae=10;Ae<36;++Ae)Fs[Un++]=Ae;Un="A".charCodeAt(0);for(Ae=10;Ae<36;++Ae)Fs[Un++]=Ae;function i0(e){return og.charAt(e)}function s0(e,t){var r=Fs[e.charCodeAt(t)];return r??-1}function ag(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function cg(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Ar(e){var t=ot();return t.fromInt(e),t}function ug(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var o=r==8?e[n]&255:s0(e,n);if(o<0){e.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&&e[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 lg(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function fg(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=i0(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=i0(n));return i?s:"0"}function hg(){var e=ot();return R.ZERO.subTo(this,e),e}function dg(){return this.s<0?this.negate():this}function pg(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function Ks(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function mg(){return this.t<=0?0:this.DB*(this.t-1)+Ks(this.data[this.t-1]^this.s&this.DM)}function yg(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function gg(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function xg(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function Eg(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)t.data[o-r-1]|=(this.data[o]&s)<<i,t.data[o-r]=this.data[o]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function bg(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function wg(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&R.ZERO.subTo(t,t)}function vg(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function _g(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ot());var s=ot(),o=this.s,a=e.s,c=this.DB-Ks(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),h=this.FV/f,p=(1<<this.F1)/f,d=1<<this.F2,m=r.t,y=m-u,g=t??ot();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]*h+(r.data[m-1]+d)*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)}t!=null&&(r.drShiftTo(u,t),o!=a&&R.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Sg(e){var t=ot();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(R.ZERO)>0&&e.subTo(t,t),t}function tn(e){this.m=e}function Ag(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Ig(e){return e}function Rg(e){e.divRemTo(this.m,null,e)}function Cg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Tg(e,t){e.squareTo(t),this.reduce(t)}tn.prototype.convert=Ag;tn.prototype.revert=Ig;tn.prototype.reduce=Rg;tn.prototype.mulTo=Cg;tn.prototype.sqrTo=Tg;function Bg(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function en(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Lg(e){var t=ot();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(R.ZERO)>0&&this.m.subTo(t,t),t}function Pg(e){var t=ot();return e.copyTo(t),this.reduce(t),t}function Dg(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Ng(e,t){e.squareTo(t),this.reduce(t)}function kg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}en.prototype.convert=Lg;en.prototype.revert=Pg;en.prototype.reduce=Dg;en.prototype.mulTo=kg;en.prototype.sqrTo=Ng;function Og(){return(this.t>0?this.data[0]&1:this.s)==0}function Mg(e,t){if(e>4294967295||e<1)return R.ONE;var r=ot(),n=ot(),i=t.convert(this),s=Ks(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var o=r;r=n,n=o}return t.revert(r)}function Ug(e,t){var r;return e<256||t.isEven()?r=new tn(t):r=new en(t),this.exp(e,r)}R.prototype.copyTo=ag;R.prototype.fromInt=cg;R.prototype.fromString=ug;R.prototype.clamp=lg;R.prototype.dlShiftTo=yg;R.prototype.drShiftTo=gg;R.prototype.lShiftTo=xg;R.prototype.rShiftTo=Eg;R.prototype.subTo=bg;R.prototype.multiplyTo=wg;R.prototype.squareTo=vg;R.prototype.divRemTo=_g;R.prototype.invDigit=Bg;R.prototype.isEven=Og;R.prototype.exp=Mg;R.prototype.toString=fg;R.prototype.negate=hg;R.prototype.abs=dg;R.prototype.compareTo=pg;R.prototype.bitLength=mg;R.prototype.mod=Sg;R.prototype.modPowInt=Ug;R.ZERO=Ar(0);R.ONE=Ar(1);function Fg(){var e=ot();return this.copyTo(e),e}function Kg(){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 Vg(){return this.t==0?this.s:this.data[0]<<24>>24}function qg(){return this.t==0?this.s:this.data[0]<<16>>16}function $g(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function zg(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Hg(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Ar(r),i=ot(),s=ot(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(e)+o}function Gg(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,o=0,a=0;a<e.length;++a){var c=s0(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function Yg(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(R.ONE.shiftLeft(e-1),Za,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(R.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Wg(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function Qg(e){return this.compareTo(e)==0}function Xg(e){return this.compareTo(e)<0?this:e}function Zg(e){return this.compareTo(e)>0?this:e}function Jg(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function jg(e,t){return e&t}function tx(e){var t=ot();return this.bitwiseTo(e,jg,t),t}function Za(e,t){return e|t}function ex(e){var t=ot();return this.bitwiseTo(e,Za,t),t}function o0(e,t){return e^t}function rx(e){var t=ot();return this.bitwiseTo(e,o0,t),t}function a0(e,t){return e&~t}function nx(e){var t=ot();return this.bitwiseTo(e,a0,t),t}function ix(){for(var e=ot(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function sx(e){var t=ot();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function ox(e){var t=ot();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function ax(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function cx(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+ax(this.data[e]);return this.s<0?this.t*this.DB:-1}function ux(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function lx(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=ux(this.data[r]^t);return e}function fx(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function hx(e,t){var r=R.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function dx(e){return this.changeBit(e,Za)}function px(e){return this.changeBit(e,a0)}function mx(e){return this.changeBit(e,o0)}function yx(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function gx(e){var t=ot();return this.addTo(e,t),t}function xx(e){var t=ot();return this.subTo(e,t),t}function Ex(e){var t=ot();return this.multiplyTo(e,t),t}function bx(e){var t=ot();return this.divRemTo(e,t,null),t}function wx(e){var t=ot();return this.divRemTo(e,null,t),t}function vx(e){var t=ot(),r=ot();return this.divRemTo(e,t,r),new Array(t,r)}function _x(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Sx(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Di(){}function c0(e){return e}function Ax(e,t,r){e.multiplyTo(t,r)}function Ix(e,t){e.squareTo(t)}Di.prototype.convert=c0;Di.prototype.revert=c0;Di.prototype.mulTo=Ax;Di.prototype.sqrTo=Ix;function Rx(e){return this.exp(e,new Di)}function Cx(e,t,r){var n=Math.min(this.t+e.t,t);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,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Tx(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function Fn(e){this.r2=ot(),this.q3=ot(),R.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Bx(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=ot();return e.copyTo(t),this.reduce(t),t}function Lx(e){return e}function Px(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function Dx(e,t){e.squareTo(t),this.reduce(t)}function Nx(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Fn.prototype.convert=Bx;Fn.prototype.revert=Lx;Fn.prototype.reduce=Px;Fn.prototype.mulTo=Nx;Fn.prototype.sqrTo=Dx;function kx(e,t){var r=e.bitLength(),n,i=Ar(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 tn(t):t.isEven()?s=new Fn(t):s=new en(t);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=ot();for(s.sqrTo(o[1],l);a<=u;)o[a]=ot(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=e.t-1,h,p=!0,d=ot(),m;for(r=Ks(e.data[f])-1;f>=0;){for(r>=c?h=e.data[f]>>r-c&u:(h=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=e.data[f-1]>>this.DB+r-c)),a=n;!(h&1);)h>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[h].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,d),s.sqrTo(d,i),a-=2;a>0?s.sqrTo(i,d):(m=i,i=d,d=m),s.mulTo(d,o[h],i)}for(;f>=0&&!(e.data[f]&1<<r);)s.sqrTo(i,d),m=i,i=d,d=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Ox(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Mx(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Ux(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return R.ZERO;for(var r=e.clone(),n=this.clone(),i=Ar(1),s=Ar(0),o=Ar(0),a=Ar(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(e,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var Pe=[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],Fx=(1<<26)/Pe[Pe.length-1];function Kx(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Pe[Pe.length-1]){for(t=0;t<Pe.length;++t)if(r.data[0]==Pe[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Pe.length;){for(var n=Pe[t],i=t+1;i<Pe.length&&n<Fx;)n*=Pe[i++];for(n=r.modInt(n);t<i;)if(n%Pe[t++]==0)return!1}return r.millerRabin(e)}function Vx(e){var t=this.subtract(R.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=qx(),s,o=0;o<e;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function qx(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=$g;R.prototype.toRadix=Hg;R.prototype.fromRadix=Gg;R.prototype.fromNumber=Yg;R.prototype.bitwiseTo=Jg;R.prototype.changeBit=hx;R.prototype.addTo=yx;R.prototype.dMultiply=_x;R.prototype.dAddOffset=Sx;R.prototype.multiplyLowerTo=Cx;R.prototype.multiplyUpperTo=Tx;R.prototype.modInt=Mx;R.prototype.millerRabin=Vx;R.prototype.clone=Fg;R.prototype.intValue=Kg;R.prototype.byteValue=Vg;R.prototype.shortValue=qg;R.prototype.signum=zg;R.prototype.toByteArray=Wg;R.prototype.equals=Qg;R.prototype.min=Xg;R.prototype.max=Zg;R.prototype.and=tx;R.prototype.or=ex;R.prototype.xor=rx;R.prototype.andNot=nx;R.prototype.not=ix;R.prototype.shiftLeft=sx;R.prototype.shiftRight=ox;R.prototype.getLowestSetBit=cx;R.prototype.bitCount=lx;R.prototype.testBit=fx;R.prototype.setBit=dx;R.prototype.clearBit=px;R.prototype.flipBit=mx;R.prototype.add=gx;R.prototype.subtract=xx;R.prototype.multiply=Ex;R.prototype.divide=bx;R.prototype.remainder=wx;R.prototype.divideAndRemainder=vx;R.prototype.modPow=kx;R.prototype.modInverse=Ux;R.prototype.pow=Rx;R.prototype.gcd=Ox;R.prototype.isProbablePrime=Kx});var p0=V((M_,d0)=>{var ze=ht();jr();Pt();var f0=d0.exports=ze.sha1=ze.sha1||{};ze.md.sha1=ze.md.algorithms.sha1=f0;f0.create=function(){h0||$x();var e=null,t=ze.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 t=ze.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=ze.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 t.putBytes(i),l0(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=ze.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Ja.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};l0(f,r,i);var h=ze.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h},n};var Ja=null,h0=!1;function $x(){Ja=String.fromCharCode(128),Ja+=ze.util.fillString(String.fromCharCode(0),64),h0=!0}function l0(e,t,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,s=e.h1,o=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+o|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var g0=V((U_,y0)=>{var He=ht();Pt();Pi();p0();var m0=y0.exports=He.pkcs1=He.pkcs1||{};m0.encode_rsa_oaep=function(e,t,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=He.md.sha1.create(),o||(o=s);var a=Math.ceil(e.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-t.length,p=0;p<h;p++)f+="\0";var d=l.getBytes()+f+""+t;if(!i)i=He.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=qs(i,a-s.digestLength-1,o),y=He.util.xorBytes(d,m,d.length),g=qs(y,s.digestLength,o),x=He.util.xorBytes(i,g,i.length);return"\0"+x+y};m0.decode_rsa_oaep=function(e,t,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(e.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=He.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=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=qs(l,i.digestLength,s),h=He.util.xorBytes(u,f,u.length),p=qs(h,o-i.digestLength-1,s),d=He.util.xorBytes(l,p,l.length),m=d.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,C=i.digestLength;C<d.length;C++){var _=d.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||d.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)};function qs(e,t,r){r||(r=He.md.sha1.create());for(var n="",i=Math.ceil(t/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(e+o),n+=r.digest().getBytes()}return n.substring(0,t)}});var x0=V((F_,ja)=>{var Ir=ht();Pt();Vs();Pi();(function(){if(Ir.prime){ja.exports=Ir.prime;return}var e=ja.exports=Ir.prime=Ir.prime||{},t=Ir.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};e.generateProbablePrime=function(f,h,p){typeof h=="function"&&(p=h,h={}),h=h||{};var d=h.algorithm||"PRIMEINC";typeof d=="string"&&(d={name:d}),d.options=d.options||{};var m=h.prng||Ir.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(d.name==="PRIMEINC")return s(f,y,d.options,p);throw new Error("Invalid prime generation algorithm: "+d.name)};function s(f,h,p,d){return"workers"in p?c(f,h,p,d):o(f,h,p,d)}function o(f,h,p,d){var m=u(f,h),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,h,y,g,x,d)}function a(f,h,p,d,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[d++%8],0)}while(y<0||+new Date-x<y);Ir.util.setImmediate(function(){a(f,h,p,d,m,y,g)})}function c(f,h,p,d){if(typeof Worker>"u")return o(f,h,p,d);var m=u(f,h),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Ir.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var z=W.data;if(z.found){for(var et=0;et<_.length;++et)_[et].terminate();return D=!0,d(null,new t(z.prime,16))}m.bitLength()>f&&(m=u(f,h));var pt=m.toString(16);W.target.postMessage({hex:pt,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,h){var p=new t(f,h),d=f-1;return p.testBit(d)||p.bitwiseTo(t.ONE.shiftLeft(d),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 zs=V((K_,A0)=>{var $=ht();Bi();Vs();Cs();g0();x0();Pi();Pt();typeof it>"u"&&(it=$.jsbn.BigInteger);var it,tc=$.util.isNodejs?Li():null,v=$.asn1,Ie=$.util;$.pki=$.pki||{};A0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,zx=[6,4,2,4,2,4,6,2],Hx={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"}]},Gx={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"}]},Yx={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"}]},Wx=$.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"}]}]},Qx={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"}]},Xx=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=v.oidToDer(t).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,e.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},_0=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(it.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(it.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new it($.util.bytesToHex($.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(it.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=S0(e,t,r)):(i=$.util.createBuffer(),i.putBytes(e));for(var o=new it(i.toHex(),16),a=_0(o,t,n),c=a.toString(16),u=$.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var o=new it($.util.createBuffer(e).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=_0(o,t,r),c=a.toString(16),u=$.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),n!==!1?$s(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||$.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:e,rng:i,eInt:t||65537,e:new it(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new it(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new it(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(it.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(Jx(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(zx[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(it.ONE).gcd(e.e).compareTo(it.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(it.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}o=+new Date,a+=o-s,s=o}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(E0("generateKeyPair"))return tc.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(b0("generateKey")&&b0("exportKey"))return Ie.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:v0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Ie.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(w0("generateKey")&&w0("exportKey")){var i=Ie.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:v0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Ie.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Q.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(E0("generateKeyPairSync")){var s=tc.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;Zx(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};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 S0(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return $.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 Q.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=$s(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(l,Qx,f,h)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=h,p}var d=v.derToOid(f.algorithmIdentifier);if(!(d===$.oids.md2||d===$.oids.md5||d===$.oids.sha1||d===$.oids.sha224||d===$.oids.sha256||d===$.oids.sha384||d===$.oids.sha512||d===$.oids["sha512-224"]||d===$.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=d,p}if((d===$.oids.md2||d===$.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=$s(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,o,a){var c={n:e,e:t,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 h=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:$s};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,d){return $.pkcs1.decode_rsa_oaep(d,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(h,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:Xx},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(h,c,f)},c};Q.wrapRsaPrivateKey=function(e){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(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,Hx,t,r)&&(e=v.fromDer($.util.createBuffer(t.privateKey))),t={},r=[],!v.validate(e,Gx,t,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=$.util.createBuffer(t.privateKeyModulus).toHex(),s=$.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(t.privateKeyPrime1).toHex(),c=$.util.createBuffer(t.privateKeyPrime2).toHex(),u=$.util.createBuffer(t.privateKeyExponent1).toHex(),l=$.util.createBuffer(t.privateKeyExponent2).toHex(),f=$.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new it(i,16),new it(s,16),new it(o,16),new it(a,16),new it(c,16),new it(u,16),new it(l,16),new it(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){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,Ge(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,Wx,t,r)){var n=v.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!v.validate(e,Yx,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=$.util.createBuffer(t.publicKeyModulus).toHex(),o=$.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new it(s,16),new it(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){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(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ge(e.e))])};function S0(e,t,r){var n=$.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-e.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=$.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(e),n}function $s(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=$.util.createBuffer(e),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 Zx(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return o(a,e.q);s(e.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.p=null,i();return}if(e.q.subtract(it.ONE).gcd(e.e).compareTo(it.ONE)!==0){e.q=null,s(e.qBits,o);return}if(e.p1=e.p.subtract(it.ONE),e.q1=e.q.subtract(it.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(it.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,o);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ge(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=$.util.hexToBytes(t);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 Jx(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function E0(e){return $.util.isNodejs&&typeof tc[e]=="function"}function b0(e){return typeof Ie.globalScope<"u"&&typeof Ie.globalScope.crypto=="object"&&typeof Ie.globalScope.crypto.subtle=="object"&&typeof Ie.globalScope.crypto.subtle[e]=="function"}function w0(e){return typeof Ie.globalScope<"u"&&typeof Ie.globalScope.msCrypto=="object"&&typeof Ie.globalScope.msCrypto.subtle=="object"&&typeof Ie.globalScope.msCrypto.subtle[e]=="function"}function v0(e){for(var t=$.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var L0=V((V_,B0)=>{var M=ht();Ds();Bi();Of();jr();Cs();Ha();$f();Pi();e0();zs();Pt();typeof I0>"u"&&(I0=M.jsbn.BigInteger);var I0,A=M.asn1,Z=M.pki=M.pki||{};B0.exports=Z.pbe=M.pbe=M.pbe||{};var rn=Z.oids,jx={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},t1={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},e1={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Z.encryptPrivateKeyInfo=function(e,t,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=A.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=rn["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=rn["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=rn["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=rn.desCBC,f=M.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),d=T0(p),m=M.pkcs5.pbkdf2(t,n,i,o,d),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes();var x=r1(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(rn.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(rn.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(t,b,1,i,o),y=Z.pbe.generatePkcs12Key(t,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(rn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!A.validate(e,jx,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=A.derToOid(n.encryptionOid),a=Z.pbe.getCipher(o,n.encryptionParams,t),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return M.pem.encode(r,{maxline:t})};Z.encryptedPrivateKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.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=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(t,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(e))),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)};Z.decryptRsaPrivateKey=function(e,t){var r=null,n=M.pem.decode(e)[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(t,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=Z.decryptPrivateKeyInfo(A.fromDer(r),t):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(e,t,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(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var h=f.length(),p=t.length(),d=new M.util.ByteBuffer;d.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%p));var g=u*Math.ceil(h/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(d.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(h/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var z=new M.util.ByteBuffer(b.getBytes(u)),et=511;for(a=D.length()-1;a>=0;a--)et=et>>8,et+=D.at(a)+z.at(a),z.setAt(a,et&255);W.putBuffer(z)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!A.validate(t,t1,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(e=A.derToOid(n.kdfOid),e!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(n.encOid),e!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,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(Z.oids[e]){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=C0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,p=u(f);return p.start(h),p};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!A.validate(t,e1,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(e){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.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=e,s}var f=C0(n.prfOid),h=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,p)};Z.pbe.opensslDeriveBytes=function(e,t,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()}t===null&&(t="");for(var i=[R0(n,e+t)],s=16,o=1;s<r;++o,s+=16)i.push(R0(n,i[o-1]+e+t));return i.join("").substr(0,r)};function R0(e,t){return e.start().update(t).digest().getBytes()}function C0(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.oids[A.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return T0(t)}function T0(e){var t=M.md;switch(e){case"hmacWithSHA224":t=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function r1(e,t,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var Fh=V((VI,Uh)=>{var wt=ht();jr();Pt();var zi=Uh.exports=wt.sha512=wt.sha512||{};wt.md.sha512=wt.md.algorithms.sha512=zi;var Oh=wt.sha384=wt.sha512.sha384=wt.sha512.sha384||{};Oh.create=function(){return zi.create("SHA-384")};wt.md.sha384=wt.md.algorithms.sha384=Oh;wt.sha512.sha256=wt.sha512.sha256||{create:function(){return zi.create("SHA-512/256")}};wt.md["sha512/256"]=wt.md.algorithms["sha512/256"]=wt.sha512.sha256;wt.sha512.sha224=wt.sha512.sha224||{create:function(){return zi.create("SHA-512/224")}};wt.md["sha512/224"]=wt.md.algorithms["sha512/224"]=wt.sha512.sha224;zi.create=function(e){if(Mh||SE(),typeof e>"u"&&(e="SHA-512"),!(e in pn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=pn[e],r=null,n=wt.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(e){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:e.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=wt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=wt.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),kh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=wt.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(tu.substr(0,a.blockLength-l));for(var f,h,p=a.fullMessageLength[0]*8,d=0;d<a.fullMessageLength.length-1;++d)f=a.fullMessageLength[d+1]*8,h=f/4294967296>>>0,p+=h,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),d=0;d<r.length;++d)m[d]=r[d].slice(0);kh(m,i,c);var y=wt.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var d=0;d<g;++d)y.putInt32(m[d][0]),(d!==g-1||e!=="SHA-512/224")&&y.putInt32(m[d][1]);return y},a};var tu=null,Mh=!1,eu=null,pn=null;function SE(){tu=String.fromCharCode(128),tu+=wt.util.fillString(String.fromCharCode(0),128),eu=[[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]],pn={},pn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],pn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],pn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],pn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Mh=!0}function kh(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x,b,C,_,S,P,D,Y,W,z,et,pt,Qt,T,k,L,N,I,U,q,G=r.length();G>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=t[T-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,U=t[T-15],k=U[0],L=U[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,I=t[T-7],q=t[T-16],L=i+I[1]+o+q[1],t[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,t[T][1]=L>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],x=e[1][1],b=e[2][0],C=e[2][1],_=e[3][0],S=e[3][1],P=e[4][0],D=e[4][1],Y=e[5][0],W=e[5][1],z=e[6][0],et=e[6][1],pt=e[7][0],Qt=e[7][1],T=0;T<80;++T)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=(z^P&(Y^z))>>>0,h=(et^D&(W^et))>>>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,d=(y&x|C&(y^x))>>>0,L=Qt+l+h+eu[T][1]+t[T][1],n=pt+u+f+eu[T][0]+t[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+d,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,pt=z,Qt=et,z=Y,et=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=e[0][1]+y,e[0][0]=e[0][0]+m+(L/4294967296>>>0)>>>0,e[0][1]=L>>>0,L=e[1][1]+x,e[1][0]=e[1][0]+g+(L/4294967296>>>0)>>>0,e[1][1]=L>>>0,L=e[2][1]+C,e[2][0]=e[2][0]+b+(L/4294967296>>>0)>>>0,e[2][1]=L>>>0,L=e[3][1]+S,e[3][0]=e[3][0]+_+(L/4294967296>>>0)>>>0,e[3][1]=L>>>0,L=e[4][1]+D,e[4][0]=e[4][0]+P+(L/4294967296>>>0)>>>0,e[4][1]=L>>>0,L=e[5][1]+W,e[5][0]=e[5][0]+Y+(L/4294967296>>>0)>>>0,e[5][1]=L>>>0,L=e[6][1]+et,e[6][0]=e[6][0]+z+(L/4294967296>>>0)>>>0,e[6][1]=L>>>0,L=e[7][1]+Qt,e[7][0]=e[7][0]+pt+(L/4294967296>>>0)>>>0,e[7][1]=L>>>0,G-=128}}});var xu=V((x4,pd)=>{var ri=1e3,ni=ri*60,ii=ni*60,xn=ii*24,tb=xn*7,eb=xn*365.25;pd.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return rb(e);if(r==="number"&&isFinite(e))return t.long?ib(e):nb(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function rb(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*eb;case"weeks":case"week":case"w":return r*tb;case"days":case"day":case"d":return r*xn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ii;case"minutes":case"minute":case"mins":case"min":case"m":return r*ni;case"seconds":case"second":case"secs":case"sec":case"s":return r*ri;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function nb(e){var t=Math.abs(e);return t>=xn?Math.round(e/xn)+"d":t>=ii?Math.round(e/ii)+"h":t>=ni?Math.round(e/ni)+"m":t>=ri?Math.round(e/ri)+"s":e+"ms"}function ib(e){var t=Math.abs(e);return t>=xn?yo(e,t,xn,"day"):t>=ii?yo(e,t,ii,"hour"):t>=ni?yo(e,t,ni,"minute"):t>=ri?yo(e,t,ri,"second"):e+" ms"}function yo(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var yd=V((E4,md)=>{function sb(e){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=xu(),r.destroy=u,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(l){let f=0;for(let h=0;h<l.length;h++)f=(f<<5)-f+l.charCodeAt(h),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=t;function r(l){let f,h=null,p,d;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 C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),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:()=>h!==null?h:(p!==r.namespaces&&(p=r.namespaces,d=r.enabled(l)),d),set:y=>{h=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let h=r(this.namespace+(typeof f>"u"?":":f)+l);return h.log=this.log,h}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,h=(typeof l=="string"?l:"").split(/[\s,]+/),p=h.length;for(f=0;f<p;f++)h[f]&&(l=h[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,h;for(f=0,h=r.skips.length;f<h;f++)if(r.skips[f].test(l))return!1;for(f=0,h=r.names.length;f<h;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}md.exports=sb});var Eu=V((Ee,go)=>{Ee.formatArgs=ab;Ee.save=cb;Ee.load=ub;Ee.useColors=ob;Ee.storage=lb();Ee.destroy=(()=>{let e=!1;return()=>{e||(e=!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`."))}})();Ee.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 ob(){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 ab(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+go.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}Ee.log=console.debug||console.log||(()=>{});function cb(e){try{e?Ee.storage.setItem("debug",e):Ee.storage.removeItem("debug")}catch{}}function ub(){let e;try{e=Ee.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function lb(){try{return localStorage}catch{}}go.exports=yd()(Ee);var{formatters:fb}=go.exports;fb.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var vd=V((q4,wd)=>{"use strict";wd.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Cd=V((Id,Rd)=>{"use strict";var vo=vd(),{hasOwnProperty:Sd}=Object.prototype,{propertyIsEnumerable:xb}=Object,ai=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Eb=Id,_d={concatArrays:!1,ignoreUndefined:!1},_o=e=>{let t=[];for(let r in e)Sd.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)xb.call(e,n)&&t.push(n)}return t};function ci(e){return Array.isArray(e)?bb(e):vo(e)?wb(e):e}function bb(e){let t=e.slice(0,0);return _o(e).forEach(r=>{ai(t,r,ci(e[r]))}),t}function wb(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return _o(e).forEach(r=>{ai(t,r,ci(e[r]))}),t}var Ad=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?ai(e,i,_u(e[i],t[i],n)):ai(e,i,ci(t[i])))}),e),vb=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Sd.call(s,a)&&(o.push(String(a)),s===e?ai(n,i++,s[a]):ai(n,i++,ci(s[a])));n=Ad(n,s,_o(s).filter(a=>!o.includes(a)),r)}),n};function _u(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?vb(e,t,r):!vo(t)||!vo(e)?ci(t):Ad(e,t,_o(t),r)}Rd.exports=function(...e){let t=_u(ci(_d),this!==Eb&&this||{},_d),r={_:{}};for(let n of e)if(n!==void 0){if(!vo(n))throw new TypeError("`"+n+"` is not an Option Object");r=_u(r,{_:n},t)}return r._}});var Ld=V((z4,Bd)=>{"use strict";function _b(e){return e>=55296&&e<=56319}function Sb(e){return e>=56320&&e<=57343}Bd.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],_b(o)&&Sb(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=t(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Dd=V((H4,Pd)=>{"use strict";function Ab(e){return e>=55296&&e<=56319}function Ib(e){return e>=56320&&e<=57343}Pd.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,s=null,o=0;o<r;o++)i=t.charCodeAt(o),Ib(i)?s!=null&&Ab(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var kd=V((G4,Nd)=>{"use strict";var Rb=Ld(),Cb=Dd();Nd.exports=Rb.bind(null,Cb)});var Ud=V((Y4,Md)=>{"use strict";var Tb=kd(),Bb=/[\/\?<>\\:\*\|"]/g,Lb=/[\x00-\x1f\x80-\x9f]/g,Pb=/^\.+$/,Db=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Nb=/[\. ]+$/;function Od(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(Bb,t).replace(Lb,t).replace(Pb,t).replace(Db,t).replace(Nb,t);return Tb(r,255)}Md.exports=function(e,t){var r=t&&t.replacement||"",n=Od(e,r);return r===""?n:Od(n,"")}});var up=V((ST,$u)=>{"use strict";var hw=Object.prototype.hasOwnProperty,le="~";function ss(){}Object.create&&(ss.prototype=Object.create(null),new ss().__proto__||(le=!1));function dw(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function cp(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new dw(r,n||e,i),o=le?le+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],s]:e._events[o].push(s):(e._events[o]=s,e._eventsCount++),e}function Po(e,t){--e._eventsCount===0?e._events=new ss:delete e._events[t]}function ae(){this._events=new ss,this._eventsCount=0}ae.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)hw.call(r,n)&&t.push(le?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ae.prototype.listeners=function(t){var r=le?le+t:t,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};ae.prototype.listenerCount=function(t){var r=le?le+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ae.prototype.emit=function(t,r,n,i,s,o){var a=le?le+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,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 h=c.length,p;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(t,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};ae.prototype.on=function(t,r,n){return cp(this,t,r,n,!1)};ae.prototype.once=function(t,r,n){return cp(this,t,r,n,!0)};ae.prototype.removeListener=function(t,r,n,i){var s=le?le+t:t;if(!this._events[s])return this;if(!r)return Po(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Po(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:Po(this,s)}return this};ae.prototype.removeAllListeners=function(t){var r;return t?(r=le?le+t:t,this._events[r]&&Po(this,r)):(this._events=new ss,this._eventsCount=0),this};ae.prototype.off=ae.prototype.removeListener;ae.prototype.addListener=ae.prototype.on;ae.prefixed=le;ae.EventEmitter=ae;typeof $u<"u"&&($u.exports=ae)});var pl=V((V3,Tp)=>{"use strict";function Cp(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Rw(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Cp(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Cp(new i,r)}}Tp.exports=Rw});var kp=V(hs=>{(function(){var e,t,r,n,i,s,o,a;a=function(c){var u,l,f,h;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,h=c&255,[u,l,f,h].join(".")},o=function(c){var u,l,f,h,p,d;for(u=[],f=h=0;h<=3&&c.length!==0;f=++h){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}d=t(c),p=d[0],l=d[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"),t=function(c){var u,l,f,h,p;for(h=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)h=h*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")h=h*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")h=h*u+(10+r(c[f])-i)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[h,f]},e=function(){function c(u,l){var f,h,p,d;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(d=u.split("/",2),u=d[0],l=d[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(h=p=32;p>=0;h=--p)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;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,h;for(h=o(this.first),f=o(this.last),l=0;h<=f;)u(a(h),h,l),l++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),hs.ip2long=o,hs.long2ip=a,hs.Netmask=e}).call(hs)});var Fp=V((Up,jo)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"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(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,d){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>d)return null;for(b=d-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)),d=function(){let C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:d,zoneId:g}}function u(p,d,m,y){if(p.length!==d.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!==d[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,d){for(;p.length<d;)p=`0${p}`;return p}let h={};h.IPv4=function(){function p(d){if(d.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<d.length;m++)if(y=d[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=d}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(d,m){let y;if(m===void 0&&(y=d,d=y[0],m=y[1]),d.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,d.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=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),d+=b}else return null;return 32-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),h.IPv4.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[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")}},h.IPv4.isIPv4=function(p){return this.parser(p)!==null},h.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},h.IPv4.isValidFourPartDecimal=function(p){return!!(h.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(p){let d,m,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[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")}},h.IPv4.parse=function(p){let d=this.parser(p);if(d===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(d)},h.IPv4.parseCIDR=function(p){let d;if(d=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(d[2]);if(m>=0&&m<=32){let y=[this.parse(d[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")},h.IPv4.parser=function(p){let d,m,y;if(d=p.match(r.fourOctet))return function(){let g=d.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(d=p.match(r.longValue)){if(y=l(d[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(d=p.match(r.twoOctet))?function(){let g=d.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}():(d=p.match(r.threeOctet))?function(){let g=d.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},h.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let d=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<4&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.IPv6=function(){function p(d,m){let y,g;if(d.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(d[y]<<8|d[y+1]);else if(d.length===8)this.parts=d;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(d,m){let y;if(m===void 0&&(y=d,d=y[0],m=y[1]),d.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,d.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=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),d+=x}else return null;return 128-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let d,m=[],y=this.parts;for(let g=0;g<y.length;g++)d=y[g],m.push(d>>8),m.push(d&255);return m},p.prototype.toFixedLengthString=function(){let d=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}`),d+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let d=this.parts.slice(-2),m=d[0],y=d[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let d=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}`),d+m},p.prototype.toRFC5952String=function(){let d=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=d.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}(),h.IPv6.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[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(d){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${d})`)}},h.IPv6.isIPv6=function(p){return this.parser(p)!==null},h.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let d=this.parser(p);return new this(d.parts,d.zoneId),!0}catch{return!1}},h.IPv6.networkAddressFromCIDR=function(p){let d,m,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[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})`)}},h.IPv6.parse=function(p){let d=this.parser(p);if(d.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(d.parts,d.zoneId)},h.IPv6.parseCIDR=function(p){let d,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(d=parseInt(m[2]),d>=0&&d<=128))return y=[this.parse(m[1]),d],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(p){let d,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]||"",d=c(y[1].slice(0,-1)+b,6),d.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 d.parts.push(x[0]<<8|x[1]),d.parts.push(x[2]<<8|x[3]),{parts:d.parts,zoneId:d.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let d=[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;)d[m]=255,m++;return y<16&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.fromByteArray=function(p){let d=p.length;if(d===4)return new h.IPv4(p);if(d===16)return new h.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},h.isValid=function(p){return h.IPv6.isValid(p)||h.IPv4.isValid(p)},h.parse=function(p){if(h.IPv6.isValid(p))return h.IPv6.parse(p);if(h.IPv4.isValid(p))return h.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},h.parseCIDR=function(p){try{return h.IPv6.parseCIDR(p)}catch{try{return h.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},h.process=function(p){let d=this.parse(p);return d.kind()==="ipv6"&&d.isIPv4MappedAddress()?d.toIPv4Address():d},h.subnetMatch=function(p,d,m){let y,g,x,b;m==null&&(m="unicast");for(g in d)if(Object.prototype.hasOwnProperty.call(d,g)){for(x=d[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 jo<"u"&&jo.exports?jo.exports=h:e.ipaddr=h})(Up)});var rm=V((VB,em)=>{"use strict";em.exports=tm;var Qw=xu(),Yr=tm.prototype,Xw=new Date%1e9;function Zw(){return(Math.random()*1e9>>>0)+Xw++}function tm(e){e=e||{},this.id=e.id||Zw(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Yr.has=function(e){return e in this._lookup};Yr.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Yr.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Yr.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};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(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Yr.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Yr.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=Qw(t)),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};Yr.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Yr.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var ys=V((iL,cm)=>{cm.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}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 lm=V((oL,um)=>{um.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var hm=V((aL,fm)=>{var ev=lm();fm.exports=ev});var Se=V((uL,dm)=>{dm.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,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(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_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 Ei=V((fL,mm)=>{var Tl=ys(),rv=hm(),pm=Se();mm.exports=class extends Tl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new rv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,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):t(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(t,c,a)}else t(a)}_handleError(t,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Tl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):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(t){if(this._inMemoryBlockDuration=t?parseInt(t):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(t){if(typeof t<"u"&&!(t instanceof Tl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,s,i)}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new pm(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,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}get(t,r={}){let n=this.getKey(t);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,t,r)})})}delete(t,r={}){let n=this.getKey(t);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,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((s,o)=>{this._upsert(t,r,n,!0,i).then(()=>{s(new pm(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var gm=V((hL,ym)=>{var nv=Ei(),iv=Se(),Bl="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} ",Ll=class extends nv{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this.useRedisPackage=t.useRedisPackage,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Bl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new iv;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(t,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(t,r,"EX",s):o.set(t,r,{EX:s}):o.set(t,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(t).exec(!0):o.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].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(t,r,s,u):this.client.eval(Bl,1,t,r,s,u)}):this.client.eval(Bl,{keys:[t],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(t,r).pttl(t).exec(!0):o.incrBy(t,r).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(t).pTTL(t).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(t){return this.client.del(t).then(r=>r>0)}};ym.exports=Ll});var bm=V((dL,Em)=>{var sv=Ei(),ov=Se();function xm(e){try{let t=e.client?e.client:e,{version:r}=t.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 Pl=class e extends sv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=xm(this.client)}):(this._initCollection(),this._driverVersion=xm(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?e.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_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(t,r,n){let i=new ov,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(t,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:t},a=Object.assign(a,o),c={$set:{key:t,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:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,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(h=>{l(h)}).catch(h=>{if(h&&h.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},o),d={$set:Object.assign({key:t,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,d,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Em.exports=Pl});var vm=V((pL,wm)=>{var av=Ei(),cv=Se(),Dl=class extends av{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{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((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,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),t()})})}).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(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new cv,[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(t,r,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
16
16
|
ON DUPLICATE KEY UPDATE
|
|
17
17
|
points = ?,
|
|
18
18
|
expire = ?;`,h=[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);`,h=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,h,p=>{if(p)return t.rollback(),a(p);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(d,m)=>{if(d)return t.rollback(),a(d);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,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(t){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,t,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(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};
|
|
21
|
+
expire = IF(expire <= ?, ?, expire);`,h=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,h,p=>{if(p)return t.rollback(),a(p);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(d,m)=>{if(d)return t.rollback(),a(d);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,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(t){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,t,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(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};wm.exports=Dl});var Sm=V((mL,_m)=>{var uv=Ei(),lv=Se(),Nl=class extends uv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.schemaName=t.schemaName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[t]};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(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():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(t){let r=this.client.constructor.name;if(typeof t>"u")if(r==="Client")t="client";else if(r==="Pool"||r==="BoundPool")t="pool";else if(r==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get schemaName(){return this._schemaName}set schemaName(t){this._schemaName=t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new
|
|
25
|
+
);`}get clientType(){return this._clientType}set clientType(t){let r=this.client.constructor.name;if(typeof t>"u")if(r==="Client")t="client";else if(r==="Pool"||r==="BoundPool")t="pool";else if(r==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get schemaName(){return this._schemaName}set schemaName(t){this._schemaName=t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new lv,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(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.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(t,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,19 +34,19 @@
|
|
|
34
34
|
END,
|
|
35
35
|
expire = ${o}
|
|
36
36
|
RETURNING points, expire;`,values:[t,r,s,Date.now()]})}_get(t){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:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Tm.exports=Kl});var Lm=V(()=>{});var Dm=V((w6,Pm)=>{Pm.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var km=V((_6,Nm)=>{var xv=Dm(),Vl=Ce();Nm.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new Vl(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new xv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Vl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Vl(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var $l=V((S6,Mm)=>{var Ev=_s(),bv=km(),Om=Ce(),ql=class extends Ev{constructor(t={}){super(t),this._memoryStorage=new bv}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),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(t,r=1,n={}){let i=this.getKey(t);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(t,r=1,n={}){let i=this.getKey(t);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(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new Om(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new Om(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Mm.exports=ql});var zm=V((A6,$m)=>{var Um=Lm(),wv=Ui(),vv=_s(),Km=$l(),_v=Ce(),ke="rate_limiter_flexible",Ci=null,Fm=function(e,t,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},e.send({channel:ke,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},Vm=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&Vm.call(this,e)},30)},Ii=function(e,t,r,n,i){let s={channel:ke,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):Vm.call(this,s)},qm=function(e,t){if(!t||t.channel!==ke||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{Fm(e,t,"resolve",n)}).catch(n=>{Fm(e,t,"reject",n)})},Sv=function(e){if(!e||e.channel!==ke||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new _v(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},Av=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ri=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=wv.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},zl=class{constructor(){if(Ci)return Ci;this._rateLimiters={},Um.setMaxListeners(0),Um.on("message",(t,r)=>{r&&r.channel===ke&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new Km(r.opts)),t.send({channel:ke,type:"init",keyPrefix:r.opts.keyPrefix})):qm.call(this,t,r)}),Ci=this}},Hl=class{constructor(t){if(Ci)return Ci;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===ke&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new Km(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:ke,channel:ke,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=ke,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};qm.call(this,o,s)}})}),Ci=this}},Gl=class extends vv{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===ke&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Sv.call(this,r)}),process.send({channel:ke,type:"init",opts:Av.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"consume",o,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"penalty",o,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"reward",o,t,r,n)})}block(t,r,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"block",o,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"get",s,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"delete",s,t,r)})}};$m.exports={RateLimiterClusterMaster:zl,RateLimiterClusterMasterPM2:Hl,RateLimiterCluster:Gl}});var Gm=V((I6,Hm)=>{var Iv=Ai(),Rv=Ce(),Yl=class extends Iv{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new Rv;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(t,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,r,u,(h,p)=>{if(h||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let d=Object.assign({},s);d.attemptNumber=d.attemptNumber?d.attemptNumber+1:1,this._upsert(t,r,n,i,d).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let d={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(d)})}):this.client.get(`${t}_expire`,(h,p)=>{if(h)a(h);else{let d=p===!1?0:p,m={consumedPoints:f,msBeforeNext:d>=0?Math.max(d-c,0):-1};o(m)}})})})}_get(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_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(t){return new Promise((r,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${t}_expire`,o=>{o?n(o):r(s)})})})}};Hm.exports=Yl});var Qm=V((C6,Wm)=>{var Ym=Ce();Wm.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Ym(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Ym(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(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var Zm=V((B6,Xm)=>{var Cv=_s();Xm.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof Cv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,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 jm=V((P6,Jm)=>{Jm.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var ny=V((N6,ry)=>{var ty=jm(),ey=4294967295,Wl="limiter";ry.exports=class{constructor(t,r={maxQueueSize:ey}){this._queueLimiters={KEY_DEFAULT:new da(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=Wl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=Wl){return this._queueLimiters[r]||(this._queueLimiters[r]=new da(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var da=class{constructor(t,r={maxQueueSize:ey,key:Wl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new ty(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new ty(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var sy=V((O6,iy)=>{var Ql=Ce();iy.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return t?new Ql(t.remainingPoints,Math.min(t.msBeforeNext,r?r.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof Ql?this._burstLimiter.consume(t,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Ql?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var ay=V((M6,oy)=>{var Tv=_m(),Bv=Im(),Lv=Cm(),Pv=Bm(),{RateLimiterClusterMaster:Dv,RateLimiterClusterMasterPM2:Nv,RateLimiterCluster:kv}=zm(),Ov=$l(),Mv=Gm(),Uv=Qm(),Fv=Zm(),Kv=ny(),Vv=sy(),qv=Ce();oy.exports={RateLimiterRedis:Tv,RateLimiterMongo:Bv,RateLimiterMySQL:Lv,RateLimiterPostgres:Pv,RateLimiterMemory:Ov,RateLimiterMemcache:Mv,RateLimiterClusterMaster:Dv,RateLimiterClusterMasterPM2:Nv,RateLimiterCluster:kv,RLWrapperBlackAndWhite:Uv,RateLimiterUnion:Fv,RateLimiterQueue:Kv,BurstyRateLimiter:Vv,RateLimiterRes:qv}});var w_={};Gt(w_,{createLibp2p:()=>b_});var XR=yt(Mi(),1),ZR=yt(M0(),1);var Gn=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var wo=yt(dt(),1);function un(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var fc={};Gt(fc,{base10:()=>m1});function l1(e,t){if(e.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<e.length;i++){var s=e.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var m=0,y=0,g=0,x=d.length;g!==x&&d[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=d[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=e.charAt(C[D]);return Y}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var m=0;if(d[m]!==" "){for(var y=0,g=0;d[m]===c;)y++,m++;for(var x=(d.length-m)*u+1>>>0,b=new Uint8Array(x);d[m];){var C=r[d.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(d[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(d){var m=h(d);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:p}}var f1=l1,h1=f1,U0=h1;var Z_=new Uint8Array(0);var F0=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},fr=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var K0=e=>new TextEncoder().encode(e),V0=e=>new TextDecoder().decode(e);var ac=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},cc=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return $0(this,t)}},uc=class{constructor(t){this.decoders=t}or(t){return $0(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},$0=(e,t)=>new uc({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),lc=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new ac(t,r,n),this.decoder=new cc(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Yn=({name:e,prefix:t,encode:r,decode:n})=>new lc(e,t,r,n),Pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=U0(r,t);return Yn({prefix:e,name:t,encode:n,decode:s=>fr(i(s))})},d1=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let s=e.length;for(;e[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[e[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},p1=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],o+=8;o>r;)o-=r,s+=t[i&a>>o];if(o&&(s+=t[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Pt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Yn({prefix:t,name:e,encode(i){return p1(i,n,r)},decode(i){return d1(i,n,r,e)}});var m1=Pr({prefix:"9",name:"base10",alphabet:"0123456789"});var hc={};Gt(hc,{base16:()=>y1,base16upper:()=>g1});var y1=Pt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),g1=Pt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var dc={};Gt(dc,{base2:()=>x1});var x1=Pt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var pc={};Gt(pc,{base256emoji:()=>_1});var z0=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}"),E1=z0.reduce((e,t,r)=>(e[r]=t,e),[]),b1=z0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function w1(e){return e.reduce((t,r)=>(t+=E1[r],t),"")}function v1(e){let t=[];for(let r of e){let n=b1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var _1=Yn({prefix:"\u{1F680}",name:"base256emoji",encode:w1,decode:v1});var mc={};Gt(mc,{base32:()=>Ee,base32hex:()=>R1,base32hexpad:()=>T1,base32hexpadupper:()=>B1,base32hexupper:()=>C1,base32pad:()=>A1,base32padupper:()=>I1,base32upper:()=>S1,base32z:()=>L1});var Ee=Pt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),S1=Pt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),A1=Pt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),I1=Pt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),R1=Pt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),C1=Pt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),T1=Pt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),B1=Pt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),L1=Pt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yc={};Gt(yc,{base36:()=>P1,base36upper:()=>D1});var P1=Pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),D1=Pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var gc={};Gt(gc,{base58btc:()=>Ct,base58flickr:()=>N1});var Ct=Pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),N1=Pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ec={};Gt(Ec,{base64:()=>ln,base64pad:()=>k1,base64url:()=>xc,base64urlpad:()=>O1});var ln=Pt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),k1=Pt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),xc=Pt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),O1=Pt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var bc={};Gt(bc,{base8:()=>M1});var M1=Pt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var wc={};Gt(wc,{identity:()=>U1});var U1=Yn({prefix:"\0",name:"identity",encode:e=>V0(e),decode:e=>K0(e)});var hS=new TextEncoder,dS=new TextDecoder;var _c={};Gt(_c,{identity:()=>Dr});var V1=Y0,H0=128,q1=127,$1=~q1,z1=Math.pow(2,31);function Y0(e,t,r){t=t||[],r=r||0;for(var n=r;e>=z1;)t[r++]=e&255|H0,e/=128;for(;e&$1;)t[r++]=e&255|H0,e>>>=7;return t[r]=e|0,Y0.bytes=r-n+1,t}var H1=vc,G1=128,G0=127;function vc(e,n){var r=0,n=n||0,i=0,s=n,o,a=e.length;do{if(s>=a)throw vc.bytes=0,new RangeError("Could not decode varint");o=e[s++],r+=i<28?(o&G0)<<i:(o&G0)*Math.pow(2,i),i+=7}while(o>=G1);return vc.bytes=s-n,r}var Y1=Math.pow(2,7),W1=Math.pow(2,14),Q1=Math.pow(2,21),X1=Math.pow(2,28),Z1=Math.pow(2,35),J1=Math.pow(2,42),j1=Math.pow(2,49),t2=Math.pow(2,56),e2=Math.pow(2,63),r2=function(e){return e<Y1?1:e<W1?2:e<Q1?3:e<X1?4:e<Z1?5:e<J1?6:e<j1?7:e<t2?8:e<e2?9:10},n2={encode:V1,decode:H1,encodingLength:r2},i2=n2,Vi=i2;var qi=(e,t=0)=>[Vi.decode(e,t),Vi.decode.bytes],Wn=(e,t,r=0)=>(Vi.encode(e,t,r),t),Qn=e=>Vi.encodingLength(e);var Je=(e,t)=>{let r=t.byteLength,n=Qn(e),i=n+Qn(r),s=new Uint8Array(i+r);return Wn(e,s,0),Wn(r,s,n),s.set(t,i),new Xn(e,r,t,s)},fn=e=>{let t=fr(e),[r,n]=qi(t),[i,s]=qi(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Xn(r,i,o,t)},W0=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&F0(e.bytes,r.bytes)}},Xn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Q0=0,s2="identity",X0=fr,o2=e=>Je(Q0,X0(e)),Dr={code:Q0,name:s2,encode:X0,digest:o2};var Ic={};Gt(Ic,{sha256:()=>ee,sha512:()=>a2});var Ac=({name:e,code:t,encode:r})=>new Sc(e,t,r),Sc=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Je(this.code,r):r.then(n=>Je(this.code,n))}else throw Error("Unknown type, must be binary type")}};var J0=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),ee=Ac({name:"sha2-256",code:18,encode:J0("SHA-256")}),a2=Ac({name:"sha2-512",code:19,encode:J0("SHA-512")});var j0=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return u2(r,Rc(e),t||Ct.encoder);default:return l2(r,Rc(e),t||Ee.encoder)}};var th=new WeakMap,Rc=e=>{let t=th.get(e);if(t==null){let r=new Map;return th.set(e,r),r}return t},Ue=class e{constructor(t,r,n,i){this.code=r,this.version=t,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:t,multihash:r}=this;if(t!==$i)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==f2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.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:t,digest:r}=this.multihash,n=Je(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&W0(t.multihash,n.multihash)}toString(t){return j0(this,t)}toJSON(){return{"/":j0(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new e(n,i,s,o||eh(n,i,s.bytes))}else if(r[h2]===!0){let{version:n,multihash:i,code:s}=r,o=fn(i);return e.create(n,s,o)}else return null}static create(t,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(t){case 0:{if(r!==$i)throw new Error(`Version 0 CID must use dag-pb (code: ${$i}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=eh(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$i,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=fr(t.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 Xn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(o):e.createV1(r.codec,o),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,h]=qi(t.subarray(r));return r+=h,f},i=n(),s=$i;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(t,r){let[n,i]=c2(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Rc(s).set(n,t),s}},c2=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ct;return[Ct.prefix,r.decode(`${Ct.prefix}${e}`)]}case Ct.prefix:{let r=t||Ct;return[Ct.prefix,r.decode(e)]}case Ee.prefix:{let r=t||Ee;return[Ee.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},u2=(e,t,r)=>{let{prefix:n}=r;if(n!==Ct.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},l2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},$i=112,f2=18,eh=(e,t,r)=>{let n=Qn(e),i=n+Qn(t),s=new Uint8Array(i+r.byteLength);return Wn(e,s,0),Wn(t,s,n),s.set(r,i),s},h2=Symbol.for("@ipld/js-cid/CID");var Nr={...wc,...dc,...bc,...fc,...hc,...mc,...yc,...gc,...Ec,...pc},TS={...Ic,..._c};function hr(e=0){return globalThis.Buffer?.alloc!=null?un(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ae(e=0){return globalThis.Buffer?.allocUnsafe!=null?un(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function nh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var rh=nh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Cc=nh("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ae(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),d2={utf8:rh,"utf-8":rh,hex:Nr.base16,latin1:Cc,ascii:Cc,binary:Cc,...Nr},js=d2;function H(e,t="utf8"){let r=js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?un(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var su={};Gt(su,{Ed25519PrivateKey:()=>xn,Ed25519PublicKey:()=>Xi,generateKeyPair:()=>CE,generateKeyPairFromSeed:()=>Oh,unmarshalEd25519PrivateKey:()=>IE,unmarshalEd25519PublicKey:()=>RE});function Tt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}function ih(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Tc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function sh(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ih(e.outputLen),ih(e.blockLen)}function Zn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function oh(e,t){Tc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var to=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var ah=e=>e instanceof Uint8Array;var eo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Fe=(e,t)=>e<<32-t|e>>>t,p2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!p2)throw new Error("Non little-endian hardware is not supported");function Bc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function zi(e){if(typeof e=="string"&&(e=Bc(e)),!ah(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function ro(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!ah(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Jn=class{clone(){return this._cloneInto()}},$S={}.toString;function no(e){let t=n=>e().update(zi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function jn(e=32){if(to&&typeof to.getRandomValues=="function")return to.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function m2(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,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;e.setUint32(t+c,o,n),e.setUint32(t+u,a,n)}var ti=class extends Jn{constructor(t,r,n,i){super(),this.blockLen=t,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(t),this.view=eo(this.buffer)}update(t){Zn(this);let{view:r,buffer:n,blockLen:i}=this;t=zi(t);let s=t.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=eo(t);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Zn(this),oh(t,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;m2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=eo(t),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:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};var io=BigInt(4294967295),Lc=BigInt(32);function ch(e,t=!1){return t?{h:Number(e&io),l:Number(e>>Lc&io)}:{h:Number(e>>Lc&io)|0,l:Number(e&io)|0}}function y2(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:o}=ch(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}var g2=(e,t)=>BigInt(e>>>0)<<Lc|BigInt(t>>>0),x2=(e,t,r)=>e>>>r,E2=(e,t,r)=>e<<32-r|t>>>r,b2=(e,t,r)=>e>>>r|t<<32-r,w2=(e,t,r)=>e<<32-r|t>>>r,v2=(e,t,r)=>e<<64-r|t>>>r-32,_2=(e,t,r)=>e>>>r-32|t<<64-r,S2=(e,t)=>t,A2=(e,t)=>e,I2=(e,t,r)=>e<<r|t>>>32-r,R2=(e,t,r)=>t<<r|e>>>32-r,C2=(e,t,r)=>t<<r-32|e>>>64-r,T2=(e,t,r)=>e<<r-32|t>>>64-r;function B2(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var L2=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),P2=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,D2=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),N2=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,k2=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),O2=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var M2={fromBig:ch,split:y2,toBig:g2,shrSH:x2,shrSL:E2,rotrSH:b2,rotrSL:w2,rotrBH:v2,rotrBL:_2,rotr32H:S2,rotr32L:A2,rotlSH:I2,rotlSL:R2,rotlBH:C2,rotlBL:T2,add:B2,add3L:L2,add3H:P2,add4L:D2,add4H:N2,add5H:O2,add5L:k2},J=M2;var[U2,F2]=(()=>J.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(e=>BigInt(e))))(),kr=new Uint32Array(80),Or=new Uint32Array(80),Pc=class extends ti{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:h,Gh:p,Gl:d,Hh:m,Hl:y}=this;return[t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y]}set(t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y){this.Ah=t|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=h|0,this.Gh=p|0,this.Gl=d|0,this.Hh=m|0,this.Hl=y|0}process(t,r){for(let b=0;b<16;b++,r+=4)kr[b]=t.getUint32(r),Or[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let C=kr[b-15]|0,_=Or[b-15]|0,S=J.rotrSH(C,_,1)^J.rotrSH(C,_,8)^J.shrSH(C,_,7),P=J.rotrSL(C,_,1)^J.rotrSL(C,_,8)^J.shrSL(C,_,7),D=kr[b-2]|0,Y=Or[b-2]|0,W=J.rotrSH(D,Y,19)^J.rotrBH(D,Y,61)^J.shrSH(D,Y,6),z=J.rotrSL(D,Y,19)^J.rotrBL(D,Y,61)^J.shrSL(D,Y,6),et=J.add4L(P,z,Or[b-7],Or[b-16]),mt=J.add4H(et,S,W,kr[b-7],kr[b-16]);kr[b]=mt|0,Or[b]=et|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:h,Fh:p,Fl:d,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=J.rotrSH(f,h,14)^J.rotrSH(f,h,18)^J.rotrBH(f,h,41),_=J.rotrSL(f,h,14)^J.rotrSL(f,h,18)^J.rotrBL(f,h,41),S=f&p^~f&m,P=h&d^~h&y,D=J.add5L(x,_,P,F2[b],Or[b]),Y=J.add5H(D,g,C,S,U2[b],kr[b]),W=D|0,z=J.rotrSH(n,i,28)^J.rotrBH(n,i,34)^J.rotrBH(n,i,39),et=J.rotrSL(n,i,28)^J.rotrBL(n,i,34)^J.rotrBL(n,i,39),mt=n&s^n&a^s&a,Jt=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=d|0,p=f|0,d=h|0,{h:f,l:h}=J.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=J.add3L(W,et,Jt);n=J.add3H(T,Y,z,mt),i=T|0}({h:n,l:i}=J.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=J.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=J.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=J.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:h}=J.add(this.Eh|0,this.El|0,f|0,h|0),{h:p,l:d}=J.add(this.Fh|0,this.Fl|0,p|0,d|0),{h:m,l:y}=J.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=J.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x)}roundClean(){kr.fill(0),Or.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 Dc=no(()=>new Pc);var ao={};Gt(ao,{bitGet:()=>G2,bitLen:()=>H2,bitMask:()=>Hi,bitSet:()=>Y2,bytesToHex:()=>dr,bytesToNumberBE:()=>pr,bytesToNumberLE:()=>Mr,concatBytes:()=>mr,createHmacDrbg:()=>Oc,ensureBytes:()=>Dt,equalBytes:()=>$2,hexToBytes:()=>dn,hexToNumber:()=>kc,numberToBytesBE:()=>Ur,numberToBytesLE:()=>pn,numberToHexUnpadded:()=>fh,numberToVarBytesBE:()=>q2,utf8ToBytes:()=>z2,validateObject:()=>je});var lh=BigInt(0),so=BigInt(1),K2=BigInt(2),oo=e=>e instanceof Uint8Array,V2=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function dr(e){if(!oo(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=V2[e[r]];return t}function fh(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function kc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function dn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,s=e.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function pr(e){return kc(dr(e))}function Mr(e){if(!oo(e))throw new Error("Uint8Array expected");return kc(dr(Uint8Array.from(e).reverse()))}function Ur(e,t){return dn(e.toString(16).padStart(t*2,"0"))}function pn(e,t){return Ur(e,t).reverse()}function q2(e){return dn(fh(e))}function Dt(e,t,r){let n;if(typeof t=="string")try{n=dn(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(oo(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function mr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!oo(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function $2(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function z2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function H2(e){let t;for(t=0;e>lh;e>>=so,t+=1);return t}function G2(e,t){return e>>BigInt(t)&so}var Y2=(e,t,r)=>e|(r?so:lh)<<BigInt(t),Hi=e=>(K2<<BigInt(e-1))-so,Nc=e=>new Uint8Array(e),uh=e=>Uint8Array.from(e);function Oc(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Nc(e),i=Nc(e),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Nc())=>{i=a(uh([0]),f),n=a(),f.length!==0&&(i=a(uh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,h=[];for(;f<t;){n=a();let p=n.slice();h.push(p),f+=n.length}return mr(...h)};return(f,h)=>{o(),c(f);let p;for(;!(p=h(u()));)c();return o(),p}}var W2={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function je(e,t,r={}){let n=(i,s,o)=>{let a=W2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(o&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var $t=BigInt(0),At=BigInt(1),mn=BigInt(2),Q2=BigInt(3),Mc=BigInt(4),hh=BigInt(5),dh=BigInt(8),X2=BigInt(9),Z2=BigInt(16);function gt(e,t){let r=e%t;return r>=$t?r:t+r}function J2(e,t,r){if(r<=$t||t<$t)throw new Error("Expected power/modulo > 0");if(r===At)return $t;let n=At;for(;t>$t;)t&At&&(n=n*e%r),e=e*e%r,t>>=At;return n}function It(e,t,r){let n=e;for(;t-- >$t;)n*=n,n%=r;return n}function co(e,t){if(e===$t||t<=$t)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=gt(e,t),n=t,i=$t,s=At,o=At,a=$t;for(;r!==$t;){let u=n/r,l=n%r,f=i-o*u,h=s-a*u;n=r,r=l,i=o,s=a,o=f,a=h}if(n!==At)throw new Error("invert: does not exist");return gt(i,t)}function j2(e){let t=(e-At)/mn,r,n,i;for(r=e-At,n=0;r%mn===$t;r/=mn,n++);for(i=mn;i<e&&J2(i,t,e)!==e-At;i++);if(n===1){let o=(e+At)/Mc;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+At)/mn;return function(a,c){if(a.pow(c,t)===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),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(h);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let d=a.pow(l,At<<BigInt(u-p-1));l=a.sqr(d),f=a.mul(f,d),h=a.mul(h,l),u=p}return f}}function tE(e){if(e%Mc===Q2){let t=(e+At)/Mc;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%dh===hh){let t=(e-hh)/dh;return function(n,i){let s=n.mul(i,mn),o=n.pow(s,t),a=n.mul(i,o),c=n.mul(n.mul(a,mn),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 e%Z2,j2(e)}var ph=(e,t)=>(gt(e,t)&At)===At,eE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Uc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=eE.reduce((n,i)=>(n[i]="function",n),t);return je(e,r)}function rE(e,t,r){if(r<$t)throw new Error("Expected power > 0");if(r===$t)return e.ONE;if(r===At)return t;let n=e.ONE,i=t;for(;r>$t;)r&At&&(n=e.mul(n,i)),i=e.sqr(i),r>>=At;return n}function nE(e,t){let r=new Array(t.length),n=t.reduce((s,o,a)=>e.is0(o)?s:(r[a]=s,e.mul(s,o)),e.ONE),i=e.inv(n);return t.reduceRight((s,o,a)=>e.is0(o)?s:(r[a]=e.mul(s,r[a]),e.mul(s,o)),i),r}function Fc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function uo(e,t,r=!1,n={}){if(e<=$t)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=Fc(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=tE(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:Hi(i),ZERO:$t,ONE:At,create:c=>gt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return $t<=c&&c<e},is0:c=>c===$t,isOdd:c=>(c&At)===At,neg:c=>gt(-c,e),eql:(c,u)=>c===u,sqr:c=>gt(c*c,e),add:(c,u)=>gt(c+u,e),sub:(c,u)=>gt(c-u,e),mul:(c,u)=>gt(c*u,e),pow:(c,u)=>rE(a,c,u),div:(c,u)=>gt(c*co(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>co(c,e),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>nE(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?pn(c,s):Ur(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Mr(c):pr(c)}});return Object.freeze(a)}function mh(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function yh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Kc(e){let t=yh(e);return t+Math.ceil(t/2)}function gh(e,t,r=!1){let n=e.length,i=yh(t),s=Kc(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?pr(e):Mr(e),a=gt(o,t-At)+At;return r?pn(a,i):Ur(a,i)}var sE=BigInt(0),Vc=BigInt(1);function lo(e,t){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=e.ZERO,a=i;for(;s>sE;)s&Vc&&(o=o.add(a)),a=a.double(),s>>=Vc;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 h=1;h<a;h++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=e.ZERO,l=e.BASE,f=BigInt(2**i-1),h=2**i,p=BigInt(i);for(let d=0;d<a;d++){let m=d*c,y=Number(o&f);o>>=p,y>c&&(y-=h,o+=Vc);let g=m,x=m+Math.abs(y)-1,b=d%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,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 Gi(e){return Uc(e.Fp),je(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Fc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ke=BigInt(0),be=BigInt(1),fo=BigInt(2),oE=BigInt(8),aE={zip215:!0};function cE(e){let t=Gi(e);return je(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function ho(e){let t=cE(e),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=t,u=fo<<BigInt(a*8)-be,l=r.create,f=t.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:Ke}}}),h=t.adjustScalarBytes||(N=>N),p=t.domain||((N,I,U)=>{if(I.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),d=N=>typeof N=="bigint"&&Ke<N,m=(N,I)=>d(N)&&d(I)&&N<I,y=N=>N===Ke||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===Ke?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,U,q,G){if(this.ex=I,this.ey=U,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:U,y:q}=I||{};if(!y(U)||!y(q))throw new Error("invalid affine point");return new _(U,q,be,l(U*q))}static normalizeZ(I){let U=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(U[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:j,et:nt}=this,ht=l(q*q),it=l(G*G),ct=l(j*j),Ft=l(ct*ct),Lt=l(ht*I),jt=l(ct*l(Lt+it)),te=l(Ft+l(U*l(ht*it)));if(jt!==te)throw new Error("bad point: equation left != right (1)");let qt=l(q*G),oe=l(j*nt);if(qt!==oe)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:U,ey:q,ez:G}=this,{ex:j,ey:nt,ez:ht}=I,it=l(U*ht),ct=l(j*G),Ft=l(q*ht),Lt=l(nt*G);return it===ct&&Ft===Lt}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=t,{ex:U,ey:q,ez:G}=this,j=l(U*U),nt=l(q*q),ht=l(fo*l(G*G)),it=l(I*j),ct=U+q,Ft=l(l(ct*ct)-j-nt),Lt=it+nt,jt=Lt-ht,te=it-nt,qt=l(Ft*jt),oe=l(Lt*te),ar=l(Ft*te),rn=l(jt*Lt);return new _(qt,oe,rn,ar)}add(I){C(I);let{a:U,d:q}=t,{ex:G,ey:j,ez:nt,et:ht}=this,{ex:it,ey:ct,ez:Ft,et:Lt}=I;if(U===BigInt(-1)){let mf=l((j-G)*(ct+it)),yf=l((j+G)*(ct-it)),Ua=l(yf-mf);if(Ua===Ke)return this.double();let gf=l(nt*fo*Lt),xf=l(ht*fo*Ft),Ef=xf+gf,bf=yf+mf,wf=xf-gf,By=l(Ef*Ua),Ly=l(bf*wf),Py=l(Ef*wf),Dy=l(Ua*bf);return new _(By,Ly,Dy,Py)}let jt=l(G*it),te=l(j*ct),qt=l(ht*q*Lt),oe=l(nt*Ft),ar=l((G+j)*(it+ct)-jt-te),rn=oe-qt,Di=oe+qt,pf=l(te-U*jt),Iy=l(ar*rn),Ry=l(Di*pf),Cy=l(ar*pf),Ty=l(rn*Di);return new _(Iy,Ry,Ty,Cy)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:U,f:q}=this.wNAF(g(I,n));return _.normalizeZ([U,q])[0]}multiplyUnsafe(I){let U=x(I);return U===Ke?P:this.equals(P)||U===be?this:this.equals(S)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:U,ey:q,ez:G}=this,j=this.is0();I==null&&(I=j?oE:r.inv(G));let nt=l(U*I),ht=l(q*I),it=l(G*I);if(j)return{x:Ke,y:be};if(it!==be)throw new Error("invZ was invalid");return{x:nt,y:ht}}clearCofactor(){let{h:I}=t;return I===be?this:this.multiplyUnsafe(I)}static fromHex(I,U=!1){let{d:q,a:G}=t,j=r.BYTES;I=Dt("pointHex",I,j);let nt=I.slice(),ht=I[j-1];nt[j-1]=ht&-129;let it=Mr(nt);it===Ke||(U?g(it,u):g(it,r.ORDER));let ct=l(it*it),Ft=l(ct-be),Lt=l(q*ct-G),{isValid:jt,value:te}=f(Ft,Lt);if(!jt)throw new Error("Point.fromHex: invalid y coordinate");let qt=(te&be)===be,oe=(ht&128)!==0;if(!U&&te===Ke&&oe)throw new Error("Point.fromHex: x=0 and x_0=1");return oe!==qt&&(te=l(-te)),_.fromAffine({x:te,y:it})}static fromPrivateKey(I){return z(I).point}toRawBytes(){let{x:I,y:U}=this.toAffine(),q=pn(U,r.BYTES);return q[q.length-1]|=I&be?128:0,q}toHex(){return dr(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,be,l(t.Gx*t.Gy)),_.ZERO=new _(Ke,be,be,Ke);let{BASE:S,ZERO:P}=_,D=lo(_,a*8);function Y(N){return gt(N,n)}function W(N){return Y(Mr(N))}function z(N){let I=a;N=Dt("private key",N,I);let U=Dt("hashed private key",s(N),2*I),q=h(U.slice(0,I)),G=U.slice(I,2*I),j=W(q),nt=S.multiply(j),ht=nt.toRawBytes();return{head:q,prefix:G,scalar:j,point:nt,pointBytes:ht}}function et(N){return z(N).pointBytes}function mt(N=new Uint8Array,...I){let U=mr(...I);return W(s(p(U,Dt("context",N),!!i)))}function Jt(N,I,U={}){N=Dt("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:j}=z(I),nt=mt(U.context,q,N),ht=S.multiply(nt).toRawBytes(),it=mt(U.context,ht,j,N),ct=Y(nt+it*G);x(ct);let Ft=mr(ht,pn(ct,r.BYTES));return Dt("result",Ft,a*2)}let T=aE;function k(N,I,U,q=T){let{context:G,zip215:j}=q,nt=r.BYTES;N=Dt("signature",N,2*nt),I=Dt("message",I),i&&(I=i(I));let ht=Mr(N.slice(nt,2*nt)),it,ct,Ft;try{it=_.fromHex(U,j),ct=_.fromHex(N.slice(0,nt),j),Ft=S.multiplyUnsafe(ht)}catch{return!1}if(!j&&it.isSmallOrder())return!1;let Lt=mt(G,ct.toRawBytes(),it.toRawBytes(),I);return ct.add(it.multiplyUnsafe(Lt)).subtract(Ft).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Jt,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:z,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var $c=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),xh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),fA=BigInt(0),uE=BigInt(1),qc=BigInt(2),lE=BigInt(5),Eh=BigInt(10),fE=BigInt(20),hE=BigInt(40),bh=BigInt(80);function dE(e){let t=$c,n=e*e%t*e%t,i=It(n,qc,t)*n%t,s=It(i,uE,t)*e%t,o=It(s,lE,t)*s%t,a=It(o,Eh,t)*o%t,c=It(a,fE,t)*a%t,u=It(c,hE,t)*c%t,l=It(u,bh,t)*u%t,f=It(l,bh,t)*u%t,h=It(f,Eh,t)*o%t;return{pow_p_5_8:It(h,qc,t)*e%t,b2:n}}function pE(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function mE(e,t){let r=$c,n=gt(t*t*t,r),i=gt(n*n*t,r),s=dE(e*i).pow_p_5_8,o=gt(e*n*s,r),a=gt(t*o*o,r),c=o,u=gt(o*xh,r),l=a===e,f=a===gt(-e,r),h=a===gt(-e*xh,r);return l&&(o=c),(f||h)&&(o=u),ph(o,r)&&(o=gt(-o,r)),{isValid:l||f,value:o}}var yr=uo($c,void 0,!0),zc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Dc,randomBytes:jn,adjustScalarBytes:pE,uvRatio:mE},ei=ho(zc);function wh(e,t,r){if(t.length>255)throw new Error("Context is too big");return ro(Bc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var hA=ho({...zc,domain:wh}),dA=ho({...zc,domain:wh,prehash:Dc});var yE=(yr.ORDER+BigInt(3))/BigInt(8),pA=yr.pow(qc,yE),mA=yr.sqrt(yr.neg(yr.ONE)),yA=(yr.ORDER-BigInt(5))/BigInt(8),gA=BigInt(486662);var xA=mh(yr,yr.neg(BigInt(486664)));var EA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),bA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),wA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),vA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var _A=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ri=32,gr=64,po=32;async function vh(){let e=ei.utils.randomPrivateKey(),t=ei.getPublicKey(e);return{privateKey:Ih(e,t),publicKey:t}}async function _h(e){if(e.length!==po)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=ei.getPublicKey(t);return{privateKey:Ih(t,r),publicKey:r}}async function Sh(e,t){let r=e.subarray(0,po);return ei.sign(t,r)}async function Ah(e,t,r){return ei.verify(t,r,e)}function Ih(e,t){let r=new Uint8Array(gr);for(let n=0;n<po;n++)r[n]=e[n],r[po+n]=t[n];return r}function kt(e,t){t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=ae(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return un(r)}var me={get(e=globalThis){let t=e.crypto;if(t==null||t.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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var Hc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function mo(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,o=e?.iterations??32767,a=me.get();r*=8;async function c(f,h){let p=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:d};typeof h=="string"&&(h=H(h));let y;if(h.length===0){y=await a.subtle.importKey("jwk",Hc,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",Hc,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return kt([p,m.iv,new Uint8Array(g)])}async function u(f,h){let p=f.subarray(0,s),d=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:d};typeof h=="string"&&(h=H(h));let g;if(h.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",Hc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function ni(e,t){let n=await mo().encrypt(e,t);return ln.encode(n)}var Gc=new Float32Array([-0]),Fr=new Uint8Array(Gc.buffer);function Ch(e,t,r){Gc[0]=e,t[r]=Fr[0],t[r+1]=Fr[1],t[r+2]=Fr[2],t[r+3]=Fr[3]}function Th(e,t){return Fr[0]=e[t],Fr[1]=e[t+1],Fr[2]=e[t+2],Fr[3]=e[t+3],Gc[0]}var Yc=new Float64Array([-0]),ce=new Uint8Array(Yc.buffer);function Bh(e,t,r){Yc[0]=e,t[r]=ce[0],t[r+1]=ce[1],t[r+2]=ce[2],t[r+3]=ce[3],t[r+4]=ce[4],t[r+5]=ce[5],t[r+6]=ce[6],t[r+7]=ce[7]}function Lh(e,t){return ce[0]=e[t],ce[1]=e[t+1],ce[2]=e[t+2],ce[3]=e[t+3],ce[4]=e[t+4],ce[5]=e[t+5],ce[6]=e[t+6],ce[7]=e[t+7],Yc[0]}var xE=BigInt(Number.MAX_SAFE_INTEGER),EE=BigInt(Number.MIN_SAFE_INTEGER),ye=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&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(t=!1){if(t)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(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return yn;if(t<xE&&t>EE)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ph&&(i=0n,++n>Ph&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return yn;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):yn}},yn=new ye(0,0);yn.toBigInt=function(){return 0n};yn.zzEncode=yn.zzDecode=function(){return this};yn.length=function(){return 1};var Ph=4294967296n;function Dh(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Nh(e,t,r){if(r-t<1)return"";let i,s=[],o=0,a;for(;t<r;)a=e[t++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&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 Wc(e,t,r){let n=r,i,s;for(let o=0;o<e.length;++o)i=e.charCodeAt(o),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ve(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function yo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Qc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ve(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ve(this,4);return yo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ve(this,4);return yo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ve(this,4);let t=Th(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ve(this,4);let t=Lh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ve(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Nh(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ve(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ve(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ye(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ve(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ve(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ve(this,8);let t=yo(this.buf,this.pos+=4),r=yo(this.buf,this.pos+=4);return new ye(t,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 Xc(e){return new Qc(e instanceof Uint8Array?e:e.subarray())}function re(e,t){let r=Xc(e);return t.decode(r)}function Zc(e){let t=e??8192,r=t>>>1,n,i=t;return function(o){if(o<1||o>r)return ae(o);i+o>t&&(n=ae(t),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var gn=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Jc(){}var tu=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},bE=Zc();function wE(e){return globalThis.Buffer!=null?ae(e):bE(e)}var Qi=class{len;head;tail;states;constructor(){this.len=0,this.head=new gn(Jc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new gn(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new eu((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Yi,10,ye.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ye.fromBigInt(t);return this._push(Yi,r.length(),r)}uint64Number(t){let r=ye.fromNumber(t);return this._push(Yi,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ye.fromBigInt(t).zzEncode();return this._push(Yi,r.length(),r)}sint64Number(t){let r=ye.fromNumber(t).zzEncode();return this._push(Yi,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(jc,1,t?1:0)}fixed32(t){return this._push(Wi,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ye.fromBigInt(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64Number(t){let r=ye.fromNumber(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ch,4,t)}double(t){return this._push(Bh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(jc,1,0):this.uint32(r)._push(_E,r,t)}string(t){let r=Dh(t);return r!==0?this.uint32(r)._push(Wc,r,t):this._push(jc,1,0)}fork(){return this.states=new tu(this),this.head=this.tail=new gn(Jc,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 gn(Jc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=wE(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function jc(e,t,r){t[r]=e&255}function vE(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var eu=class extends gn{next;constructor(t,r){super(vE,t,r),this.next=void 0}};function Yi(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Wi(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function _E(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Qi.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(SE,t,e),this},Qi.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(AE,t,e),this});function SE(e,t,r){t.set(e,r)}function AE(e,t,r){e.length<40?Wc(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(H(e),r)}function ru(){return new Qi}function ne(e,t){let r=ru();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ii;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(ii||(ii={}));function go(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function nu(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return go("enum",ii.VARINT,r,n)}function ie(e,t){return go("message",ii.LENGTH_DELIMITED,e,t)}var Rt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Rt||(Rt={}));var iu;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(iu||(iu={}));(function(e){e.codec=()=>nu(iu)})(Rt||(Rt={}));var tr;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(tr||(tr={}));var er;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(er||(er={}));var Xi=class{_key;constructor(t){this._key=si(t,ri)}async verify(t,r){return Ah(this._key,r,t)}marshal(){return this._key}get bytes(){return tr.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},xn=class{_key;_publicKey;constructor(t,r){this._key=si(t,gr),this._publicKey=si(r,ri)}async sign(t){return Sh(this._key,t)}get public(){return new Xi(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=Dr.digest(this.public.bytes);return Ct.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function IE(e){if(e.length>gr){e=si(e,gr+ri);let n=e.subarray(0,gr),i=e.subarray(gr,e.length);return new xn(n,i)}e=si(e,gr);let t=e.subarray(0,gr),r=e.subarray(ri);return new xn(t,r)}function RE(e){return e=si(e,ri),new Xi(e)}async function CE(){let{privateKey:e,publicKey:t}=await vh();return new xn(e,t)}async function Oh(e){let{privateKey:t,publicKey:r}=await _h(e);return new xn(t,r)}function si(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}function X(e,t="utf8"){let r=js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var EI=yt(Nt(),1),bI=yt(Ws(),1),Mh=yt(dt(),1);function qe(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return X(r,"base64url")}function we(e){let t=Uh(e);return new Mh.default.jsbn.BigInteger(X(t,"base16"),16)}function Uh(e,t){let r=H(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return r}var TE={"P-256":256,"P-384":384,"P-521":521},BE=Object.keys(TE),LI=BE.join(" / ");async function Fh(e,t){let r=ln.decode(e);return mo().decrypt(r,t)}var lu={};Gt(lu,{MAX_KEY_SIZE:()=>ts,RsaPrivateKey:()=>oi,RsaPublicKey:()=>ji,fromJwk:()=>KE,generateKeyPair:()=>VE,unmarshalRsaPrivateKey:()=>UE,unmarshalRsaPublicKey:()=>FE});var Ji=yt(dt(),1);var mR=yt(Hh(),1);function bn(e){if(isNaN(e)||e<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return jn(e)}var ZI=yt(Zs(),1),cu=yt(dt(),1);function Gh(e,t){return t.map(r=>we(e[r]))}function Yh(e){return cu.default.pki.setRsaPrivateKey(...Gh(e,["n","e","d","p","q","dp","dq","qi"]))}function Wh(e){return cu.default.pki.setRsaPublicKey(...Gh(e,["n","e"]))}var wn={};Gt(wn,{jwkToPkcs1:()=>DE,jwkToPkix:()=>kE,pkcs1ToJwk:()=>PE,pkixToJwk:()=>NE});var tR=yt(Mi(),1),eR=yt(Zs(),1);var xr=yt(dt(),1);function PE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e),d:qe(r.d),p:qe(r.p),q:qe(r.q),dp:qe(r.dP),dq:qe(r.dQ),qi:qe(r.qInv),alg:"RS256"}}function DE(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.privateKeyToAsn1({n:we(e.n),e:we(e.e),d:we(e.d),p:we(e.p),q:we(e.q),dP:we(e.dp),dQ:we(e.dq),qInv:we(e.qi)});return H(xr.default.asn1.toDer(t).getBytes(),"ascii")}function NE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e)}}function kE(e){if(e.n==null||e.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.publicKeyToAsn1({n:we(e.n),e:we(e.e)});return H(xr.default.asn1.toDer(t).getBytes(),"ascii")}async function Qh(e){let t=await me.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Jh(t);return{privateKey:r[0],publicKey:r[1]}}async function uu(e){let r=[await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await OE(e)],n=await Jh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Xh(e,t){let r=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Zh(e,t,r){let n=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Jh(e){if(e.privateKey==null||e.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([me.get().subtle.exportKey("jwk",e.privateKey),me.get().subtle.exportKey("jwk",e.publicKey)])}async function OE(e){return me.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function jh(e,t,r,n){let i=t?Wh(e):Yh(e),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return H(o,"ascii")}function td(e,t){return jh(e,!0,t,(r,n)=>n.encrypt(r))}function ed(e,t){return jh(e,!1,t,(r,n)=>n.decrypt(r))}function Eo(e){if(e.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return H(e.n,"base64url").length*8}var ts=8192,ji=class{_key;constructor(t){this._key=t}async verify(t,r){return Zh(this._key,r,t)}marshal(){return wn.jwkToPkix(this._key)}get bytes(){return tr.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return td(this._key,t)}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},oi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return bn(16)}async sign(t){return Xh(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ji(this._publicKey)}decrypt(t){return ed(this._key,t)}marshal(){return wn.jwkToPkcs1(this._key)}get bytes(){return er.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ji.default.util.ByteBuffer(this.marshal()),i=Ji.default.asn1.fromDer(n),s=Ji.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ji.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function UE(e){let t=wn.pkcs1ToJwk(e);if(Eo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await uu(t);return new oi(r.privateKey,r.publicKey)}function FE(e){let t=wn.pkixToJwk(e);if(Eo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new ji(t)}async function KE(e){if(Eo(e)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await uu(e);return new oi(t.privateKey,t.publicKey)}async function VE(e){if(e>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Qh(e);return new oi(t.privateKey,t.publicKey)}var yu={};Gt(yu,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>rb,unmarshalSecp256k1PrivateKey:()=>tb,unmarshalSecp256k1PublicKey:()=>eb});var qE=(e,t,r)=>e&t^~e&r,$E=(e,t,r)=>e&t^e&r^t&r,zE=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]),Kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),fu=class extends ti{constructor(){super(64,32,8,!1),this.A=Kr[0]|0,this.B=Kr[1]|0,this.C=Kr[2]|0,this.D=Kr[3]|0,this.E=Kr[4]|0,this.F=Kr[5]|0,this.G=Kr[6]|0,this.H=Kr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[t,r,n,i,s,o,a,c]}set(t,r,n,i,s,o,a,c){this.A=t|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(t,r){for(let f=0;f<16;f++,r+=4)Vr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let h=Vr[f-15],p=Vr[f-2],d=Fe(h,7)^Fe(h,18)^h>>>3,m=Fe(p,17)^Fe(p,19)^p>>>10;Vr[f]=m+Vr[f-7]+d+Vr[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 h=Fe(a,6)^Fe(a,11)^Fe(a,25),p=l+h+qE(a,c,u)+zE[f]+Vr[f]|0,m=(Fe(n,2)^Fe(n,13)^Fe(n,22))+$E(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(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var rd=no(()=>new fu);function HE(e){let t=Gi(e);je(t,{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}=t;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({...t})}var{bytesToNumberBE:GE,hexToBytes:YE}=ao,vn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=vn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:GE(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=vn,r=typeof e=="string"?YE(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:s}=vn._parseInt(r.subarray(2)),{d:o,l:a}=vn._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){let t=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=t(r(e.s)),i=t(r(e.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}`}},Er=BigInt(0),Pe=BigInt(1),SR=BigInt(2),nd=BigInt(3),AR=BigInt(4);function WE(e){let t=HE(e),{Fp:r}=t,n=t.toBytes||((d,m,y)=>{let g=m.toAffine();return mr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=t.fromBytes||(d=>{let m=d.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(d){let{a:m,b:y}=t,g=r.sqr(d),x=r.mul(g,d);return r.add(r.add(x,r.mul(d,m)),y)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return typeof d=="bigint"&&Er<d&&d<t.n}function a(d){if(!o(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=t;if(m&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=dr(d)),typeof d!="string"||!m.includes(d.length))throw new Error("Invalid key");d=d.padStart(y*2,"0")}let b;try{b=typeof d=="bigint"?d:pr(Dt("private key",d,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof d}`)}return g&&(b=gt(b,x)),a(b),b}let u=new Map;function l(d){if(!(d 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(Dt("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(t.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:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=t,g=r.mul(y,nd),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),z=r.mul(x,b);return z=r.add(z,z),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(z,_),P=r.mul(g,P),W=r.mul(m,W),z=r.sub(D,W),z=r.mul(m,z),z=r.add(z,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,z),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,z),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=t.a,W=r.mul(t.b,nd),z=r.mul(y,b),et=r.mul(g,C),mt=r.mul(x,_),Jt=r.add(y,g),T=r.add(b,C);Jt=r.mul(Jt,T),T=r.add(z,et),Jt=r.sub(Jt,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(z,mt),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(et,mt),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,mt),D=r.add(S,D),S=r.sub(et,D),D=r.add(et,D),P=r.mul(S,D),et=r.add(z,z),et=r.add(et,z),mt=r.mul(Y,mt),T=r.mul(W,T),et=r.add(et,mt),mt=r.sub(z,mt),mt=r.mul(Y,mt),T=r.add(T,mt),z=r.mul(et,T),P=r.add(P,z),z=r.mul(k,T),S=r.mul(Jt,S),S=r.sub(S,z),z=r.mul(Jt,et),D=r.mul(k,D),D=r.add(D,z),new f(S,P,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===Er)return y;if(a(m),m===Pe)return this;let{endo:g}=t;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>Er||_>Er;)b&Pe&&(S=S.add(D)),_&Pe&&(P=P.add(D)),D=D.double(),b>>=Pe,_>>=Pe;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=t;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:z}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(z)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===Er||S===Pe||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=t;if(m===Pe)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}=t;return m===Pe?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return dr(this.toRawBytes(m))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,p=lo(f,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function QE(e){let t=Gi(e);return je(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function id(e){let t=QE(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return Er<T&&T<r.ORDER}function a(T){return gt(T,n)}function c(T){return co(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:h}=WE({...t,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),U=mr;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),I):U(Uint8Array.from([4]),I,r.toBytes(N.y))},fromBytes(T){let k=T.length,L=T[0],N=T.subarray(1);if(k===i&&(L===2||L===3)){let I=pr(N);if(!o(I))throw new Error("Point is not on curve");let U=f(I),q=r.sqrt(U),G=(q&Pe)===Pe;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>dr(Ur(T,t.nByteLength));function d(T){let k=n>>Pe;return T>k}function m(T){return d(T)?a(-T):T}let y=(T,k,L)=>pr(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=t.nByteLength;return k=Dt("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=vn.toSig(Dt("DER",k));return new g(L,N)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,U=P(Dt("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+t.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",j=u.fromHex(G+p(q)),nt=c(q),ht=a(-U*nt),it=a(N*nt),ct=u.BASE.multiplyAndAddUnsafe(j,ht,it);if(!ct)throw new Error("point at infinify");return ct.assertValidity(),ct}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return dn(this.toDERHex())}toDERHex(){return vn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return dn(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(T){try{return l(T),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let T=Kc(t.n);return gh(t.randomBytes(T),t.n)},precompute(T=8,k=u.BASE){return k._setWindowSize(T),k.multiply(BigInt(3)),k}};function b(T,k=!0){return u.fromPrivateKey(T).toRawBytes(k)}function C(T){let k=T instanceof Uint8Array,L=typeof T=="string",N=(k||L)&&T.length;return k?N===i||N===s:L?N===2*i||N===2*s:T instanceof u}function _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=t.bits2int||function(T){let k=pr(T),L=T.length*8-t.nBitLength;return L>0?k>>BigInt(L):k},P=t.bits2int_modN||function(T){return a(S(T))},D=Hi(t.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(Er<=T&&T<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Ur(T,t.nByteLength)}function W(T,k,L=z){if(["recovered","canonical"].some(Lt=>Lt in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=t,{lowS:U,prehash:q,extraEntropy:G}=L;U==null&&(U=!0),T=Dt("msgHash",T),q&&(T=Dt("prehashed msgHash",N(T)));let j=P(T),nt=l(k),ht=[Y(nt),Y(j)];if(G!=null){let Lt=G===!0?I(r.BYTES):G;ht.push(Dt("extraEntropy",Lt))}let it=mr(...ht),ct=j;function Ft(Lt){let jt=S(Lt);if(!h(jt))return;let te=c(jt),qt=u.BASE.multiply(jt).toAffine(),oe=a(qt.x);if(oe===Er)return;let ar=a(te*a(ct+oe*nt));if(ar===Er)return;let rn=(qt.x===oe?0:2)|Number(qt.y&Pe),Di=ar;return U&&d(ar)&&(Di=m(ar),rn^=1),new g(oe,Di,rn)}return{seed:it,k2sig:Ft}}let z={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function mt(T,k,L=z){let{seed:N,k2sig:I}=W(T,k,L),U=t;return Oc(U.hash.outputLen,U.nByteLength,U.hmac)(N,I)}u.BASE._setWindowSize(8);function Jt(T,k,L,N=et){let I=T;if(k=Dt("msgHash",k),L=Dt("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:q}=N,G,j;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(qt){if(!(qt instanceof vn.Err))throw qt;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:qt,s:oe}=I;G=new g(qt,oe)}else throw new Error("PARSE");j=u.fromHex(L)}catch(qt){if(qt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&G.hasHighS())return!1;q&&(k=t.hash(k));let{r:nt,s:ht}=G,it=P(k),ct=c(ht),Ft=a(it*ct),Lt=a(nt*ct),jt=u.BASE.multiplyAndAddUnsafe(j,Ft,Lt)?.toAffine();return jt?a(jt.x)===nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:_,sign:mt,verify:Jt,ProjectivePoint:u,Signature:g,utils:x}}var bo=class extends Jn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,sh(t);let n=zi(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Zn(this),this.iHash.update(t),this}digestInto(t){Zn(this),Tc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},hu=(e,t,r)=>new bo(e,t).update(r).digest();hu.create=(e,t)=>new bo(e,t);function XE(e){return{hash:e,hmac:(t,...r)=>hu(e,t,ro(...r)),randomBytes:jn}}function sd(e,t){let r=n=>id({...e,...XE(n)});return Object.freeze({...r(t),create:r})}var cd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),od=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ZE=BigInt(1),du=BigInt(2),ad=(e,t)=>(e+t/du)/t;function JE(e){let t=cd,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=It(l,r,t)*l%t,h=It(f,r,t)*l%t,p=It(h,du,t)*u%t,d=It(p,i,t)*p%t,m=It(d,s,t)*d%t,y=It(m,a,t)*m%t,g=It(y,c,t)*y%t,x=It(g,a,t)*m%t,b=It(x,r,t)*l%t,C=It(b,o,t)*d%t,_=It(C,n,t)*u%t,S=It(_,du,t);if(!pu.eql(pu.sqr(S),e))throw new Error("Cannot find square root");return S}var pu=uo(cd,void 0,void 0,{sqrt:JE}),br=sd({a:BigInt(0),b:BigInt(7),Fp:pu,n:od,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=od,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ZE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=ad(s*e,t),c=ad(-n*e,t),u=gt(e-a*r-c*i,t),l=gt(-a*n-c*s,t),f=u>o,h=l>o;if(f&&(u=t-u),h&&(l=t-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},rd),MR=BigInt(0);var UR=br.ProjectivePoint;function ud(){return br.utils.randomPrivateKey()}async function ld(e,t){let{digest:r}=await ee.digest(t);try{return br.sign(r,e).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function fd(e,t,r){try{let{digest:n}=await ee.digest(r);return br.verify(t,n,e)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function hd(e){return br.ProjectivePoint.fromHex(e).toRawBytes(!0)}function dd(e){try{br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function mu(e){try{br.ProjectivePoint.fromHex(e)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function pd(e){try{return br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{_key;constructor(t){mu(t),this._key=t}async verify(t,r){return fd(this._key,r,t)}marshal(){return hd(this._key)}get bytes(){return tr.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},rs=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??pd(t),dd(this._key),mu(this._publicKey)}async sign(t){return ld(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function tb(e){return new rs(e)}function eb(e){return new es(e)}async function rb(){let e=ud();return new rs(e)}var wr={rsa:lu,ed25519:su,secp256k1:yu};function gu(e){let t=Object.keys(wr).join(" / ");return new w(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function xu(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return wr[e];throw gu(e)}async function vo(e,t){return xu(e).generateKeyPair(t??2048)}function ns(e){let t=tr.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPublicKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PublicKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw gu(t.Type??"unknown")}}function md(e,t){return t=(t??"rsa").toLowerCase(),xu(t),e.bytes}async function ai(e){let t=er.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPrivateKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PrivateKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw gu(t.Type??"RSA")}}function yd(e,t){return t=(t??"rsa").toLowerCase(),xu(t),e.bytes}async function is(e,t){try{let i=await Fh(e,t);return await ai(i)}catch{}let r=wo.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=wo.default.asn1.toDer(wo.default.pki.privateKeyToAsn1(r));return n=H(n.getBytes(),"ascii"),wr.rsa.unmarshalRsaPrivateKey(n)}var Eu=Symbol.for("@libp2p/content-routing");var ss=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new wu(t,r))}},bu=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},wu=globalThis.CustomEvent??bu;var ve=(e,...t)=>{try{[...t]}catch{}};var vu=Symbol.for("@libp2p/peer-discovery");var _u=Symbol.for("@libp2p/peer-routing");var h4=yt(Ks(),1),ib=yt(dt(),1);var xd=yt(Za(),1),Ed=yt(Nt(),1),gd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(gd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=gd[i],o=(0,xd.default)(e,t,r,n,s);return Ed.default.encode64(o,null)}var Se=yt(Au(),1);Se.default.formatters.b=e=>e==null?"undefined":Ct.baseEncode(e);Se.default.formatters.t=e=>e==null?"undefined":Ee.baseEncode(e);Se.default.formatters.m=e=>e==null?"undefined":ln.baseEncode(e);Se.default.formatters.p=e=>e==null?"undefined":e.toString();Se.default.formatters.c=e=>e==null?"undefined":e.toString();Se.default.formatters.k=e=>e==null?"undefined":e.toString();Se.default.formatters.a=e=>e==null?"undefined":e.toString();function Eb(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function rt(e){let t=Eb(`${e}:trace`);return Se.default.enabled(`${e}:trace`)&&Se.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,Se.default)(`${e}:trace`)),Object.assign((0,Se.default)(e),{error:(0,Se.default)(`${e}:error`),trace:t})}var Iu=Symbol.for("@libp2p/peer-id");function Ao(e){return e!=null&&!!e[Iu]}var bb=Symbol.for("nodejs.util.inspect.custom"),_d=Object.values(Nr).map(e=>e.decoder).reduce((e,t)=>e.or(t),Nr.identity.decoder),Sd=114,Ru=36,Cu=37,as=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Iu]=!0;toString(){return this.string==null&&(this.string=Ct.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ue.createV1(Sd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Tt(this.multihash.bytes,t);if(typeof t=="string")return lt(t).equals(this);if(t?.multihash?.bytes!=null)return Tt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[bb](){return`PeerId(${this.toString()})`}},Sn=class extends as{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},An=class extends as{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},In=class extends as{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Ad(e){if(e.type==="RSA")return new Sn(e);if(e.type==="Ed25519")return new An(e);if(e.type==="secp256k1")return new In(e);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function lt(e,t){if(t=t??_d,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=fn(Ct.decode(`z${e}`));return e.startsWith("12D")?new An({multihash:r}):e.startsWith("16U")?new In({multihash:r}):new Sn({multihash:r})}return fi(_d.decode(e))}function fi(e){try{let t=fn(e);if(t.code===Dr.code){if(t.digest.length===Ru)return new An({multihash:t});if(t.digest.length===Cu)return new In({multihash:t})}if(t.code===ee.code)return new Sn({multihash:t})}catch{return wb(Ue.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function wb(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Sd)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===ee.code)return new Sn({multihash:e.multihash});if(t.code===Dr.code){if(t.digest.length===Ru)return new An({multihash:e.multihash});if(t.digest.length===Cu)return new In({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function hi(e,t){return e.length===Ru?new An({multihash:Je(Dr.code,e),privateKey:t}):e.length===Cu?new In({multihash:Je(Dr.code,e),privateKey:t}):new Sn({multihash:await ee.digest(e),publicKey:e,privateKey:t})}var Io=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var vr="/",Id=new TextEncoder().encode(vr),Ro=Id[0],rr=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=H(t);else if(t instanceof Uint8Array)this._buf=t;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(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(vr))}static random(){return new e(Io().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Id),this._buf[0]!==Ro){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Ro,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ro;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.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 e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(vr).slice(1)}type(){return vb(this.baseNamespace())}name(){return _b(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(vr)||(t+=vr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(vr):new e(t.slice(0,-1).join(vr))}child(t){return this.toString()===vr?t:t.toString()===vr?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Sb(t.map(r=>r.namespaces()))])}};function vb(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function _b(e){let t=e.split(":");return t[t.length-1]}function Sb(e){return[].concat(...e)}var kd=yt(Nd(),1),qr=kd.default;var Hd=yt(zd(),1);var ot;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(ot||(ot={}));var Bo=rt("libp2p:keychain"),qb="/pkcs8/",Gd="/info/",Rn=new WeakMap,Cn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Bu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function _r(e){return e==null||typeof e!="string"?!1:e===(0,Hd.default)(e.trim())&&e.length>0}async function xt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function nr(e){return new rr(qb+e)}function $r(e){return new rr(Gd+e)}var Tn=class{components;init;constructor(t,r){if(this.components=t,this.init=qr(Bu,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Cn.minKeyLength)throw new Error(`dek.keyLength must be least ${Cn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Cn.minSaltLength)throw new Error(`dek.saltLength must be least ${Cn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Cn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Cn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Rn.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Bu),r=Math.ceil(Cn.minSaltLength/3)*3;return t.dek.salt=X(bn(r),"base64"),t}static get options(){return Bu}async createKey(t,r,n=2048){if(!_r(t)||t==="self")throw await xt(),new w("Invalid key name",ot.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await xt(),new w("Invalid key type",ot.ERR_INVALID_KEY_TYPE);let i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w("Key name already exists",ot.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await xt(),new w("Invalid RSA key size",ot.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await vo(r,n),c=await a.id(),u=Rn.get(this);if(u==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,H(f)),h.put($r(t),H(JSON.stringify(o))),await h.commit()}catch(a){throw await xt(),a}return o}async listKeys(){let t={prefix:Gd},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(X(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND);return n}catch(r){throw await xt(),r}}async findKeyByName(t){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=$r(t);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await xt(),Bo.error(n),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=nr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete($r(t)),await i.commit(),n}async renameKey(t,r){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid old key name '${t}'`,ot.ERR_OLD_KEY_NAME_INVALID);if(!_r(r)||r==="self")throw await xt(),new w(`Invalid new key name '${r}'`,ot.ERR_NEW_KEY_NAME_INVALID);let n=nr(t),i=nr(r),s=$r(t),o=$r(r);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${r}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,H(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await xt(),c}}async exportKey(t,r){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),new w("Password is required",ot.ERR_PASSWORD_REQUIRED);let n=nr(t);try{let i=await this.components.datastore.get(n),s=X(i),o=Rn.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await is(s,a)).export(r)}catch(i){throw await xt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await is(n,r);return hi(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),new w("PEM encoded key is required",ot.ERR_PEM_REQUIRED);let i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o;try{o=await is(r,n)}catch{throw await xt(),new w("Cannot read the key, most likely the password is wrong",ot.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=Rn.get(this);if(l==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await xt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,H(r)),u.put($r(t),H(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!_r(t))throw new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",ot.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",ot.ERR_MISSING_PRIVATE_KEY);let n=await ai(r.privateKey),i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o=Rn.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,H(c)),l.put($r(t),H(JSON.stringify(u))),await l.commit(),u}catch(n){throw await xt(),n}}async getPrivateKey(t){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);try{let r=nr(t),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await xt(),Bo.error(r),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await xt(),new w(`Invalid old pass type '${typeof t}'`,ot.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await xt(),new w(`Invalid new pass type '${typeof r}'`,ot.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await xt(),new w(`Invalid pass length ${r.length}`,ot.ERR_INVALID_PASS_LENGTH);Bo("recreating keychain");let n=Rn.get(this);if(n==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?os(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Rn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(nr(a.name)),u=X(c),l=await is(u,i),f=s.toString(),h=await l.export(f),p=this.components.datastore.batch(),d={name:a.name,id:a.id};p.put(nr(a.name),H(h)),p.put($r(a.name),H(JSON.stringify(d))),await p.commit()}Bo("keychain reconstructed")}};function Sr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var Ae=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Sr(this.map.entries(),t=>[lt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,lt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Sr(this.map.keys(),t=>lt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Bn=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Sr(this.set.entries(),t=>{let r=lt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=lt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Sr(this.set.values(),t=>lt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Lu=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Sr(this.list.entries(),t=>lt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Sr(this.list.entries(),t=>[t[0],lt(t[1])])}every(t){return this.list.every((r,n)=>t(lt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=lt(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(lt(n),i,this));if(r!=null)return lt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(lt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(lt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return lt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return lt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var Pu;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Pu||(Pu={}));var Yd=async()=>{let e=await vo("Ed25519"),t=await $b(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function $b(e){return hi(md(e.public),yd(e))}var zb=Math.pow(2,7),Hb=Math.pow(2,14),Gb=Math.pow(2,21),Du=Math.pow(2,28),Nu=Math.pow(2,35),ku=Math.pow(2,42),Ou=Math.pow(2,49),ft=128,ue=127;function ge(e){if(e<zb)return 1;if(e<Hb)return 2;if(e<Gb)return 3;if(e<Du)return 4;if(e<Nu)return 5;if(e<ku)return 6;if(e<Ou)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Yb(e,t,r=0){switch(ge(e)){case 8:t[r++]=e&255|ft,e/=128;case 7:t[r++]=e&255|ft,e/=128;case 6:t[r++]=e&255|ft,e/=128;case 5:t[r++]=e&255|ft,e/=128;case 4:t[r++]=e&255|ft,e>>>=7;case 3:t[r++]=e&255|ft,e>>>=7;case 2:t[r++]=e&255|ft,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Wb(e,t,r=0){switch(ge(e)){case 8:t.set(r++,e&255|ft),e/=128;case 7:t.set(r++,e&255|ft),e/=128;case 6:t.set(r++,e&255|ft),e/=128;case 5:t.set(r++,e&255|ft),e/=128;case 4:t.set(r++,e&255|ft),e>>>=7;case 3:t.set(r++,e&255|ft),e>>>=7;case 2:t.set(r++,e&255|ft),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Qb(e,t){let r=e[t],n=0;if(n+=r&ue,r<ft||(r=e[t+1],n+=(r&ue)<<7,r<ft)||(r=e[t+2],n+=(r&ue)<<14,r<ft)||(r=e[t+3],n+=(r&ue)<<21,r<ft)||(r=e[t+4],n+=(r&ue)*Du,r<ft)||(r=e[t+5],n+=(r&ue)*Nu,r<ft)||(r=e[t+6],n+=(r&ue)*ku,r<ft)||(r=e[t+7],n+=(r&ue)*Ou,r<ft))return n;throw new RangeError("Could not decode varint")}function Xb(e,t){let r=e.get(t),n=0;if(n+=r&ue,r<ft||(r=e.get(t+1),n+=(r&ue)<<7,r<ft)||(r=e.get(t+2),n+=(r&ue)<<14,r<ft)||(r=e.get(t+3),n+=(r&ue)<<21,r<ft)||(r=e.get(t+4),n+=(r&ue)*Du,r<ft)||(r=e.get(t+5),n+=(r&ue)*Nu,r<ft)||(r=e.get(t+6),n+=(r&ue)*ku,r<ft)||(r=e.get(t+7),n+=(r&ue)*Ou,r<ft))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=ae(ge(e))),t instanceof Uint8Array?Yb(e,t,r):Wb(e,t,r)}function Ar(e,t=0){return e instanceof Uint8Array?Qb(e,t):Xb(e,t)}var Qd=Symbol.for("@achingbrain/uint8arraylist");function Wd(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function Lo(e){return!!e?.[Qd]}var Xt=class e{constructor(...t){Object.defineProperty(this,Qd,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Lo(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(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Lo(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(t){let r=Wd(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Wd(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(Lo(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return kt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:kt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=n,s}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===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,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(o);continue}n.push(o.subarray(t-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-t}}indexOf(t,r=0){if(!Lo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.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 h=u;h>=0;h--){let p=this.get(f+h);if(n[h]!==p){l=Math.max(1,h-a[p]);break}}if(l===0)return f}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Tt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Xd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var us;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(us||(us={}));var mi=class e{static createFromProtobuf=async t=>{let r=us.decode(t),n=await hi(r.publicKey);return new e({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(t,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=t.domain,i=t.codec,s=t.marshal(),o=Zd(n,i,s),c=await(await ai(r.privateKey)).sign(o.subarray());return new e({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(t,r)=>{let n=await e.createFromProtobuf(t);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",Xd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(t){let{peerId:r,payloadType:n,payload:i,signature:s}=t;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=us.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return Tt(this.marshal(),t.marshal())}async validate(t){let r=Zd(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ns(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Zd=(e,t,r)=>{let n=H(e),i=De(n.byteLength),s=De(t.length),o=De(r.length);return new Xt(i,n,s,t,o,r)};function Jd(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var Po=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();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(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,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 h=Number.parseInt(f,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=t,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 t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=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]=t(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]=t(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var jd=45,Zb=15,yi=new Po;function Mu(e){if(!(e.length>Zb))return yi.new(e).parseWith(()=>yi.readIPv4Addr())}function Uu(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPv6Addr())}function Do(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPAddr())}var nC=parseInt("0xFFFF",16),iC=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function No(e){return!!Mu(e)}function ko(e){return!!Uu(e)}function gi(e){return!!Do(e)}var rp=No,rw=ko,Fu=function(e){let t=0;if(e=e.toString().trim(),rp(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(rw(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=rp(r[n]),o;s&&(o=Fu(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(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(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},np=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xi={},Ku={},iw=[[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"]];iw.forEach(e=>{let t=sw(...e);Ku[t.code]=t,xi[t.name]=t});function sw(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function pt(e){if(typeof e=="number"){if(Ku[e]!=null)return Ku[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(xi[e]!=null)return xi[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var VC=pt("ip4"),qC=pt("ip6"),$C=pt("ipcidr");function qu(e,t){switch(pt(e).code){case 4:case 41:return aw(t);case 42:return op(t);case 6:case 273:case 33:case 132:return cp(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return op(t);case 421:return fw(t);case 444:return ap(t);case 445:return ap(t);case 466:return lw(t);default:return X(t,"base16")}}function $u(e,t){switch(pt(e).code){case 4:return ip(t);case 41:return ip(t);case 42:return sp(t);case 6:case 273:case 33:case 132:return zu(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sp(t);case 421:return cw(t);case 444:return hw(t);case 445:return dw(t);case 466:return uw(t);default:return H(t,"base16")}}var Vu=Object.values(Nr).map(e=>e.decoder),ow=function(){let e=Vu[0].or(Vu[1]);return Vu.slice(2).forEach(t=>e=e.or(t)),e}();function ip(e){if(!gi(e))throw new Error("invalid ip address");return Fu(e)}function aw(e){let t=np(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!gi(t))throw new Error("invalid ip address");return t}function zu(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function cp(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function sp(e){let t=H(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function op(e){let t=Ar(e);if(e=e.slice(ge(t)),e.length!==t)throw new Error("inconsistent lengths");return X(e)}function cw(e){let t;e[0]==="Q"||e[0]==="1"?t=fn(Ct.decode(`z${e}`)).bytes:t=Ue.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function uw(e){let t=ow.decode(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function lw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function fw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return X(r,"base58btc")}function hw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=Ee.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=zu(n);return kt([r,i],r.length+i.length)}function dw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=Ee.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=zu(n);return kt([r,i],r.length+i.length)}function ap(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=X(t,"base32"),i=cp(r);return`${n}:${i}`}function up(e){e=Hu(e);let t=[],r=[],n=null,i=e.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=pt(o);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw fp("invalid address: "+e);if(a.path===!0){n=Hu(i.slice(s).join("/")),t.push([a.code,$u(a.code,n)]),r.push([a.code,n]);break}let c=$u(a.code,i[s]);t.push([a.code,c]),r.push([a.code,qu(a.code,c)])}return{string:lp(r),bytes:Yu(t),tuples:t,stringTuples:r,path:n}}function Gu(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=Ar(e,i),o=ge(s),a=pt(s),c=pw(a,e.slice(i+o));if(c===0){t.push([s]),r.push([s]),i+=o;continue}let u=e.slice(i+o,i+o+c);if(i+=c+o,i>e.length)throw fp("Invalid address Uint8Array: "+X(e,"base16"));t.push([s,u]);let l=qu(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(e),string:lp(r),tuples:t,stringTuples:r,path:n}}function lp(e){let t=[];return e.map(r=>{let n=pt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Hu(t.join("/"))}function Yu(e){return kt(e.map(t=>{let r=pt(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=kt([n,t[1]])),n}))}function pw(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Ar(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ge(r)}}function Hu(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function fp(e){return new Error("Error parsing address: "+e)}var mw=Symbol.for("nodejs.util.inspect.custom"),Wu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),yw=[pt("dns").code,pt("dns4").code,pt("dns6").code,pt("dnsaddr").code],Oo=class e{bytes;#t;#e;#r;#n;[Wu]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Gu(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=up(t)}else if(zr(t))r=Gu(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",o=pt("tcp"),a=pt("udp"),c=pt("ip4"),u=pt("ip6"),l=pt("dns6"),f=pt("ip6zone");for(let[p,d]of this.stringTuples())p===f.code&&(s=`%${d??""}`),yw.includes(p)&&(r=o.name,i=443,n=`${d??""}${s}`,t=p===l.code?6:4),(p===o.code||p===a.code)&&(r=pt(p).name,i=parseInt(d??"")),(p===c.code||p===u.code)&&(r=pt(p).name,n=`${d??""}${s}`,t=p===u.code?6:4);if(t==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:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},pt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>pt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Yu(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===xi.p2p.code&&t.push([n,i]),n===xi["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(Ct.decode(`z${n}`),"base58btc"):X(Ue.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Tt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Mo.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[mw](){return`Multiaddr(${this.#t})`}};var Mo=new Map;function zr(e){return!!e?.[Wu]}function zt(e){return new Oo(e)}var hp="libp2p-peer-record",dp=Uint8Array.from([3,1]);var ls;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=ie((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=>ne(s,n.codec()),n.decode=s=>re(s,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=ie((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),e.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(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),e.encode=n=>ne(n,e.codec()),e.decode=n=>re(n,e.codec())})(ls||(ls={}));var Ln=class e{static createFromProtobuf=t=>{let r=ls.decode(t),n=fi(r.peerId),i=(r.addresses??[]).map(o=>zt(o.multiaddr)),s=r.seq;return new e({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=hp;static CODEC=dp;peerId;multiaddrs;seqNumber;domain=e.DOMAIN;codec=e.CODEC;marshaled;constructor(t){let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ls.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof e)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Jd(this.multiaddrs,t.multiaddrs))}};function gw(e){return e[Symbol.asyncIterator]!=null}function xw(e){if(gw(e))return(async()=>{let r=[];for await(let n of e)r.push(n);return r})();let t=[];for(let r of e)t.push(r);return t}var fs=xw;var Xu=yt(mp(),1);var ds=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Zu=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},yp=e=>globalThis.DOMException===void 0?new Zu(e):new DOMException(e),gp=e=>{let t=e.reason===void 0?yp("This operation was aborted."):e.reason;return t instanceof Error?t:yp(t)};function Ju(e,t,r,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(gp(c)),c.addEventListener("abort",()=>{a(gp(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new ds(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{o(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function ju(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Pn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ir,tl=class{constructor(){Ir.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Pn(this,Ir,"f")[this.size-1].priority>=r.priority){Pn(this,Ir,"f").push(n);return}let i=ju(Pn(this,Ir,"f"),n,(s,o)=>o.priority-s.priority);Pn(this,Ir,"f").splice(i,0,n)}dequeue(){let t=Pn(this,Ir,"f").shift();return t?.run}filter(t){return Pn(this,Ir,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Pn(this,Ir,"f").length}};Ir=new WeakMap;var xp=tl;var Bt=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,ms,ys,Gr,zo,gs,Fo,$e,ps,Ie,Ko,Re,xs,Hr,Vo,Ep,bp,_p,wp,vp,qo,el,rl,Ho,Sp,$o,Go=class extends Error{},nl=class extends Xu.default{constructor(t){var r,n,i,s;if(super(),Ot.add(this),ms.set(this,void 0),ys.set(this,void 0),Gr.set(this,0),zo.set(this,void 0),gs.set(this,void 0),Fo.set(this,0),$e.set(this,void 0),ps.set(this,void 0),Ie.set(this,void 0),Ko.set(this,void 0),Re.set(this,0),xs.set(this,void 0),Hr.set(this,void 0),Vo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:xp,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Bt(this,ms,t.carryoverConcurrencyCount,"f"),Bt(this,ys,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Bt(this,zo,t.intervalCap,"f"),Bt(this,gs,t.interval,"f"),Bt(this,Ie,new t.queueClass,"f"),Bt(this,Ko,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Bt(this,Vo,t.throwOnTimeout===!0,"f"),Bt(this,Hr,t.autoStart===!1,"f")}get concurrency(){return K(this,xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Bt(this,xs,t,"f"),K(this,Ot,"m",Ho).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,Vo,"f"),...r},new Promise((n,i)=>{K(this,Ie,"f").enqueue(async()=>{var s,o,a;Bt(this,Re,(o=K(this,Re,"f"),o++,o),"f"),Bt(this,Gr,(a=K(this,Gr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new Go("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Ju(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",Sp).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof ds&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",_p).call(this)}},r),this.emit("add"),K(this,Ot,"m",qo).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Hr,"f")?(Bt(this,Hr,!1,"f"),K(this,Ot,"m",Ho).call(this),this):this}pause(){Bt(this,Hr,!0,"f")}clear(){Bt(this,Ie,new(K(this,Ko,"f")),"f")}async onEmpty(){K(this,Ie,"f").size!==0&&await K(this,Ot,"m",$o).call(this,"empty")}async onSizeLessThan(t){K(this,Ie,"f").size<t||await K(this,Ot,"m",$o).call(this,"next",()=>K(this,Ie,"f").size<t)}async onIdle(){K(this,Re,"f")===0&&K(this,Ie,"f").size===0||await K(this,Ot,"m",$o).call(this,"idle")}get size(){return K(this,Ie,"f").size}sizeBy(t){return K(this,Ie,"f").filter(t).length}get pending(){return K(this,Re,"f")}get isPaused(){return K(this,Hr,"f")}};ms=new WeakMap,ys=new WeakMap,Gr=new WeakMap,zo=new WeakMap,gs=new WeakMap,Fo=new WeakMap,$e=new WeakMap,ps=new WeakMap,Ie=new WeakMap,Ko=new WeakMap,Re=new WeakMap,xs=new WeakMap,Hr=new WeakMap,Vo=new WeakMap,Ot=new WeakSet,Ep=function(){return K(this,ys,"f")||K(this,Gr,"f")<K(this,zo,"f")},bp=function(){return K(this,Re,"f")<K(this,xs,"f")},_p=function(){var t;Bt(this,Re,(t=K(this,Re,"f"),t--,t),"f"),K(this,Ot,"m",qo).call(this),this.emit("next")},wp=function(){K(this,Ot,"m",rl).call(this),K(this,Ot,"m",el).call(this),Bt(this,ps,void 0,"f")},vp=function(){let t=Date.now();if(K(this,$e,"f")===void 0){let r=K(this,Fo,"f")-t;if(r<0)Bt(this,Gr,K(this,ms,"f")?K(this,Re,"f"):0,"f");else return K(this,ps,"f")===void 0&&Bt(this,ps,setTimeout(()=>{K(this,Ot,"m",wp).call(this)},r),"f"),!0}return!1},qo=function(){if(K(this,Ie,"f").size===0)return K(this,$e,"f")&&clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f"),this.emit("empty"),K(this,Re,"f")===0&&this.emit("idle"),!1;if(!K(this,Hr,"f")){let t=!K(this,Ot,"a",vp);if(K(this,Ot,"a",Ep)&&K(this,Ot,"a",bp)){let r=K(this,Ie,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",el).call(this),!0):!1}}return!1},el=function(){K(this,ys,"f")||K(this,$e,"f")!==void 0||(Bt(this,$e,setInterval(()=>{K(this,Ot,"m",rl).call(this)},K(this,gs,"f")),"f"),Bt(this,Fo,Date.now()+K(this,gs,"f"),"f"))},rl=function(){K(this,Gr,"f")===0&&K(this,Re,"f")===0&&K(this,$e,"f")&&(clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f")),Bt(this,Gr,K(this,ms,"f")?K(this,Re,"f"):0,"f"),K(this,Ot,"m",Ho).call(this)},Ho=function(){for(;K(this,Ot,"m",qo).call(this););},Sp=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new Go("The task was aborted."))},{once:!0})})},$o=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Yr=nl;var il=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},sl=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Ap=e=>globalThis.DOMException===void 0?new sl(e):new DOMException(e),Ip=e=>{let t=e.reason===void 0?Ap("This operation was aborted."):e.reason;return t instanceof Error?t:Ap(t)};function ol(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,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(t.signal){let{signal:h}=t;h.aborted&&l(Ip(h)),h.addEventListener("abort",()=>{l(Ip(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,l);return}let f=new il;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){l(h)}return}typeof e.cancel=="function"&&e.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 e)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var al="lock:worker:request-read",cl="lock:worker:release-read",ul="lock:master:grant-read",ll="lock:worker:request-write",fl="lock:worker:release-write",hl="lock:master:grant-write";var Wr={},Ei=e=>{e.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)})};Ei.addEventListener=(e,t)=>{Wr[e]==null&&(Wr[e]=[]),Wr[e].push(t)};Ei.removeEventListener=(e,t)=>{Wr[e]!=null&&(Wr[e]=Wr[e].filter(r=>r===t))};Ei.dispatchEvent=function(e,t,r){Wr[e]!=null&&Wr[e].forEach(n=>n(t,r))};var dl=Ei;var Rp=(e,t,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};e.dispatchEvent(new MessageEvent(t,{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)}))}}))},Cp=(e,t,r,n)=>async()=>{let i=Io();return globalThis.postMessage({type:t,identifier:i,name:e}),await 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:e})}))};globalThis.addEventListener("message",o)})},ww={singleProcess:!1},Tp=e=>{if(e=Object.assign({},ww,e),!!globalThis.document||e.singleProcess){let r=new EventTarget;return dl.addEventListener("message",Rp(r,"requestReadLock",al,cl,ul)),dl.addEventListener("message",Rp(r,"requestWriteLock",ll,fl,hl)),r}return{isWorker:!0,readLock:r=>Cp(r,al,ul,cl),writeLock:r=>Cp(r,ll,hl,fl)}};var Dn={},Qr;async function pl(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await ol((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var vw=(e,t)=>{if(Qr.isWorker===!0)return{readLock:Qr.readLock(e,t),writeLock:Qr.writeLock(e,t)};let r=new Yr({concurrency:1}),n;return{async readLock(){if(n!=null)return await pl(n,t);n=new Yr({concurrency:t.concurrency,autoStart:!1});let i=n,s=pl(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await pl(r,t)}}},_w={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function ml(e){let t=Object.assign({},_w,e);return Qr==null&&(Qr=Tp(t),Qr.isWorker!==!0&&(Qr.addEventListener("requestReadLock",r=>{Dn[r.data.name]!=null&&Dn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Qr.addEventListener("requestWriteLock",async r=>{Dn[r.data.name]!=null&&Dn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Dn[t.name]==null&&(Dn[t.name]=vw(t.name,t)),Dn[t.name]}var se={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var bi;(function(e){let t;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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),Wo.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=Wo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={}));let n;e.codec=()=>(n==null&&(n=ie((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Yo.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),e.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),e.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(Yo.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=e.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=e.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),e.encode=i=>ne(i,e.codec()),e.decode=i=>re(i,e.codec())})(bi||(bi={}));var Yo;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Yo||(Yo={}));var Wo;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Wo||(Wo={}));function wi(e,t){let r=bi.decode(t);r.publicKey!=null&&e.publicKey==null&&(e=Ad({...e,publicKey:e.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:e,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:zt(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var yl="/peers/";function vi(e){if(!Ao(e)||e.type==null)throw new w("Invalid PeerId",se.ERR_INVALID_PARAMETERS);let t=e.toCID().toString();return new rr(`${yl}${t}`)}async function Bp(e,t,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=zt(i.multiaddr)),!zr(i.multiaddr))throw new w("Multiaddr was invalid",se.ERR_INVALID_PARAMETERS);if(!await t(e,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 Xo(e,t,r,n){if(t==null)throw new w("Invalid PeerData",se.ERR_INVALID_PARAMETERS);if(t.publicKey!=null&&e.publicKey!=null&&!Tt(t.publicKey,e.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",se.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!e.equals(i.id))throw new w("peer id did not match existing peer id",se.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((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Qo(f,{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Qo(f,{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(r==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[h,p]of f)p==null?a.delete(h):a.set(h,p);a=Qo([...a.entries()],{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),h=new Map(c);for(let[p,d]of f)d==null?h.delete(p):h.set(p,d);c=Qo([...h.entries()],{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let l={addresses:await Bp(e,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,h)=>f.localeCompare(h)),metadata:a,tags:c,publicKey:i?.id.publicKey??t.publicKey??e.publicKey,peerRecordEnvelope:u};return e.type!=="RSA"&&delete l.publicKey,l}function Qo(e,t){let r=new Map;for(let[n,i]of e)i!=null&&t.validate(n,i);for(let[n,i]of e.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,t.map?.(n,i)??i);return r}function Lp(e,t){if(typeof e!="string")throw new w("Metadata key must be a string",se.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",se.ERR_INVALID_PARAMETERS)}function Pp(e,t){if(typeof e!="string")throw new w("Tag name must be a string",se.ERR_INVALID_PARAMETERS);if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new w("Tag value must be an integer",se.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new w("Tag value must be between 0-100",se.ERR_INVALID_PARAMETERS)}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new w("Tag ttl must be an integer",se.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new w("Tag ttl must be between greater than 0",se.ERR_INVALID_PARAMETERS)}}function Dp(e,t){let r;return t.expiry!=null&&(r=t.expiry),t.ttl!=null&&(r=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:r}}function Zo(e,t,r){let n=e.toString().split("/")[2],i=Ee.decode(n),s=fi(i),o=r.get(s);if(o!=null)return o;let a=wi(s,t);return r.set(s,a),a}function Sw(e,t){return e==null?{}:{prefix:yl,filters:(e.filters??[]).map(r=>({key:n,value:i})=>r(Zo(n,i,t))),orders:(e.orders??[]).map(r=>(n,i)=>r(Zo(n.key,n.value,t),Zo(i.key,i.value,t)))}}var Jo=class{peerId;datastore;lock;addressFilter;constructor(t,r={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=r.addressFilter,this.lock=ml({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(vi(t))}async delete(t){if(this.peerId.equals(t))throw new w("Cannot delete self peer",se.ERR_INVALID_PARAMETERS);await this.datastore.delete(vi(t))}async load(t){let r=await this.datastore.get(vi(t));return wi(t,r)}async save(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,i)}async patch(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async merge(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async*all(t){let r=new Ae;for await(let{key:n,value:i}of this.datastore.query(Sw(t??{},r))){let s=Zo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let r=await this.datastore.get(vi(t)),n=wi(t,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#e(t,r,n,i){let s=bi.encode(r);return n!=null&&Tt(s,n)?{peer:wi(t,s),previous:i,updated:!1}:(await this.datastore.put(vi(t),s),{peer:wi(t,s),previous:i,updated:!0})}};var wt=rt("libp2p:peer-store"),jo=class{store;events;peerId;constructor(t,r={}){this.events=t.events,this.peerId=t.peerId,this.store=new Jo(t,r)}async forEach(t,r){wt.trace("forEach await read lock");let n=await this.store.lock.readLock();wt.trace("forEach got read lock");try{for await(let i of this.store.all(r))t(i)}finally{wt.trace("forEach release read lock"),n()}}async all(t){wt.trace("all await read lock");let r=await this.store.lock.readLock();wt.trace("all got read lock");try{return await fs(this.store.all(t))}finally{wt.trace("all release read lock"),r()}}async delete(t){wt.trace("delete await write lock");let r=await this.store.lock.writeLock();wt.trace("delete got write lock");try{await this.store.delete(t)}finally{wt.trace("delete release write lock"),r()}}async has(t){wt.trace("has await read lock");let r=await this.store.lock.readLock();wt.trace("has got read lock");try{return await this.store.has(t)}finally{wt.trace("has release read lock"),r()}}async get(t){wt.trace("get await read lock");let r=await this.store.lock.readLock();wt.trace("get got read lock");try{return await this.store.load(t)}finally{wt.trace("get release read lock"),r()}}async save(t,r){wt.trace("save await write lock");let n=await this.store.lock.writeLock();wt.trace("save got write lock");try{let i=await this.store.save(t,r);return this.#t(t,i),i.peer}finally{wt.trace("save release write lock"),n()}}async patch(t,r){wt.trace("patch await write lock");let n=await this.store.lock.writeLock();wt.trace("patch got write lock");try{let i=await this.store.patch(t,r);return this.#t(t,i),i.peer}finally{wt.trace("patch release write lock"),n()}}async merge(t,r){wt.trace("merge await write lock");let n=await this.store.lock.writeLock();wt.trace("merge got write lock");try{let i=await this.store.merge(t,r);return this.#t(t,i),i.peer}finally{wt.trace("merge release write lock"),n()}}async consumePeerRecord(t,r){let n=await mi.openAndCertify(t,Ln.DOMAIN);if(r?.equals(n.peerId)===!1)return wt("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=Ln.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 mi.createFromProtobuf(s.peerRecordEnvelope),a=Ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return wt("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:t,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#t(t,r){r.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function Aw(e){return e[Symbol.asyncIterator]!=null}function Iw(e){if(Aw(e))return(async()=>{for await(let t of e);})();for(let t of e);}var gl=Iw;function Rw(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var ta=Rw;function Cw(e){return e[Symbol.asyncIterator]!=null}function Tw(e,t){if(Cw(e))return async function*(){for await(let a of e)await t(a)&&(yield a)}();let r=ta(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await t(a)&&(yield a)}();let o=t;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var ze=Tw;function Bw(e){return e[Symbol.asyncIterator]!=null}function Lw(e,t){return Bw(e)?async function*(){yield*(await fs(e)).sort(t)}():function*(){yield*fs(e).sort(t)}()}var xl=Lw;function Pw(e){return e[Symbol.asyncIterator]!=null}function Dw(e,t){return Pw(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var El=Dw;var ea=class{put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield n}async*getMany(t,r={}){for await(let n of t)yield{key:n,value:await this.get(n,r)}}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await gl(this.putMany(t,n)),t=[],await gl(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null){let i=t.prefix;n=ze(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>ze(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>xl(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=ze(n,()=>i++>=s)}return t.limit!=null&&(n=El(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null){let i=t.prefix;n=ze(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>ze(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>xl(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=ze(n,()=>s++>=i)}return t.limit!=null&&(n=El(n,t.limit)),n}};var Op=yt(bl(),1);function Mp(e){return e=e??new Error("Not Found"),(0,Op.default)(e,"ERR_NOT_FOUND")}var ra=class extends ea{data;constructor(){super(),this.data=new Map}put(t,r){return this.data.set(t.toString(),r),t}get(t){let r=this.data.get(t.toString());if(r==null)throw Mp();return r}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,r]of this.data.entries())yield{key:new rr(t),value:r}}*_allKeys(){for(let t of this.data.keys())yield new rr(t)}};function Up(e,t){let r;return function(){let n=function(){r=void 0,e()};clearTimeout(r),r=setTimeout(n,t)}}var Ow=rt("libp2p:address-manager"),Mw=e=>e;function wl(e,t){let r=e.getPeerId();return r!=null&<(r).equals(t)&&(e=e.decapsulate(zt(`/p2p/${t.toString()}`))),e}var na=class{components;listen;announce;observed;announceFilter;constructor(t,r={}){let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Mw,this._updatePeerStoreAddresses=Up(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let t=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>zt(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:t}).catch(r=>{Ow.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(t=>zt(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>zt(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>zt(t))}addObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString();this.observed.delete(r)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>zt(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function Fp(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var vl=class{components={};_started=!1;constructor(t={}){this.components={};for(let[r,n]of Object.entries(t))this.components[r]=n}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(r=>Fp(r)).map(async r=>{await r[t]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},Uw=["metrics","connectionProtector"],Fw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Kp(e={}){let t=new vl(e);return new Proxy(t,{get(n,i,s){if(typeof i=="string"&&!Fw.includes(i)){let o=t.components[i];if(o==null&&!Uw.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?t.components[i]=s:Reflect.set(n,i,s),!0}})}var Yp=yt(Vp(),1);var qp="[a-fA-F\\d:]",Xr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${qp})|(?<=${qp})(?=\\s|$))`:"",He="(?: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}",Kt="[a-fA-F\\d]{1,4}",ia=`
|
|
37
|
+
SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};_m.exports=Nl});var Am=V(()=>{});var Rm=V((EL,Im)=>{Im.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var Tm=V((wL,Cm)=>{var fv=Rm(),kl=Se();Cm.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new kl(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new fv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new kl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new kl(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var Ml=V((vL,Lm)=>{var hv=ys(),dv=Tm(),Bm=Se(),Ol=class extends hv{constructor(t={}){super(t),this._memoryStorage=new dv}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),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(t,r=1,n={}){let i=this.getKey(t);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(t,r=1,n={}){let i=this.getKey(t);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(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new Bm(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new Bm(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Lm.exports=Ol});var Um=V((_L,Mm)=>{var Pm=Am(),pv=Li(),mv=ys(),Nm=Ml(),yv=Se(),Be="rate_limiter_flexible",vi=null,Dm=function(e,t,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},e.send({channel:Be,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},km=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&km.call(this,e)},30)},bi=function(e,t,r,n,i){let s={channel:Be,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):km.call(this,s)},Om=function(e,t){if(!t||t.channel!==Be||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{Dm(e,t,"resolve",n)}).catch(n=>{Dm(e,t,"reject",n)})},gv=function(e){if(!e||e.channel!==Be||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new yv(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},xv=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},wi=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=pv.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Ul=class{constructor(){if(vi)return vi;this._rateLimiters={},Pm.setMaxListeners(0),Pm.on("message",(t,r)=>{r&&r.channel===Be&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new Nm(r.opts)),t.send({channel:Be,type:"init",keyPrefix:r.opts.keyPrefix})):Om.call(this,t,r)}),vi=this}},Fl=class{constructor(t){if(vi)return vi;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Be&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new Nm(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Be,channel:Be,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Be,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Om.call(this,o,s)}})}),vi=this}},Kl=class extends mv{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Be&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:gv.call(this,r)}),process.send({channel:Be,type:"init",opts:xv.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);bi.call(this,"consume",o,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);bi.call(this,"penalty",o,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);bi.call(this,"reward",o,t,r,n)})}block(t,r,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);bi.call(this,"block",o,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);bi.call(this,"get",s,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);bi.call(this,"delete",s,t,r)})}};Mm.exports={RateLimiterClusterMaster:Ul,RateLimiterClusterMasterPM2:Fl,RateLimiterCluster:Kl}});var Km=V((SL,Fm)=>{var Ev=Ei(),bv=Se(),Vl=class extends Ev{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new bv;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(t,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,r,u,(h,p)=>{if(h||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let d=Object.assign({},s);d.attemptNumber=d.attemptNumber?d.attemptNumber+1:1,this._upsert(t,r,n,i,d).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let d={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(d)})}):this.client.get(`${t}_expire`,(h,p)=>{if(h)a(h);else{let d=p===!1?0:p,m={consumedPoints:f,msBeforeNext:d>=0?Math.max(d-c,0):-1};o(m)}})})})}_get(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_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(t){return new Promise((r,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${t}_expire`,o=>{o?n(o):r(s)})})})}};Fm.exports=Vl});var $m=V((IL,qm)=>{var Vm=Se();qm.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Vm(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Vm(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(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var Hm=V((CL,zm)=>{var wv=ys();zm.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof wv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,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 Ym=V((BL,Gm)=>{Gm.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var Zm=V((PL,Xm)=>{var Wm=Ym(),Qm=4294967295,ql="limiter";Xm.exports=class{constructor(t,r={maxQueueSize:Qm}){this._queueLimiters={KEY_DEFAULT:new aa(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=ql){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=ql){return this._queueLimiters[r]||(this._queueLimiters[r]=new aa(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var aa=class{constructor(t,r={maxQueueSize:Qm,key:ql}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new Wm(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new Wm(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var jm=V((NL,Jm)=>{var $l=Se();Jm.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return t?new $l(t.remainingPoints,Math.min(t.msBeforeNext,r?r.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof $l?this._burstLimiter.consume(t,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof $l?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var ey=V((kL,ty)=>{var vv=gm(),_v=bm(),Sv=vm(),Av=Sm(),{RateLimiterClusterMaster:Iv,RateLimiterClusterMasterPM2:Rv,RateLimiterCluster:Cv}=Um(),Tv=Ml(),Bv=Km(),Lv=$m(),Pv=Hm(),Dv=Zm(),Nv=jm(),kv=Se();ty.exports={RateLimiterRedis:vv,RateLimiterMongo:_v,RateLimiterMySQL:Sv,RateLimiterPostgres:Av,RateLimiterMemory:Tv,RateLimiterMemcache:Bv,RateLimiterClusterMaster:Iv,RateLimiterClusterMasterPM2:Rv,RateLimiterCluster:Cv,RLWrapperBlackAndWhite:Lv,RateLimiterUnion:Pv,RateLimiterQueue:Dv,BurstyRateLimiter:Nv,RateLimiterRes:kv}});var m_={};zt(m_,{createLibp2p:()=>p_});var zR=mt(Bi(),1),HR=mt(L0(),1);var Kn=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var po=mt(ht(),1);function nn(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var sc={};zt(sc,{base10:()=>c1});function n1(e,t){if(e.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<e.length;i++){var s=e.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var m=0,y=0,g=0,x=d.length;g!==x&&d[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=d[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=e.charAt(C[D]);return Y}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var m=0;if(d[m]!==" "){for(var y=0,g=0;d[m]===c;)y++,m++;for(var x=(d.length-m)*u+1>>>0,b=new Uint8Array(x);d[m];){var C=r[d.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(d[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(d){var m=h(d);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:p}}var i1=n1,s1=i1,P0=s1;var H_=new Uint8Array(0);var D0=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},or=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var N0=e=>new TextEncoder().encode(e),k0=e=>new TextDecoder().decode(e);var ec=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},rc=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return M0(this,t)}},nc=class{constructor(t){this.decoders=t}or(t){return M0(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},M0=(e,t)=>new nc({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),ic=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new ec(t,r,n),this.decoder=new rc(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Vn=({name:e,prefix:t,encode:r,decode:n})=>new ic(e,t,r,n),Rr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=P0(r,t);return Vn({prefix:e,name:t,encode:n,decode:s=>or(i(s))})},o1=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let s=e.length;for(;e[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[e[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},a1=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],o+=8;o>r;)o-=r,s+=t[i&a>>o];if(o&&(s+=t[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Bt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Vn({prefix:t,name:e,encode(i){return a1(i,n,r)},decode(i){return o1(i,n,r,e)}});var c1=Rr({prefix:"9",name:"base10",alphabet:"0123456789"});var oc={};zt(oc,{base16:()=>u1,base16upper:()=>l1});var u1=Bt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),l1=Bt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ac={};zt(ac,{base2:()=>f1});var f1=Bt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var cc={};zt(cc,{base256emoji:()=>y1});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}"),h1=U0.reduce((e,t,r)=>(e[r]=t,e),[]),d1=U0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function p1(e){return e.reduce((t,r)=>(t+=h1[r],t),"")}function m1(e){let t=[];for(let r of e){let n=d1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var y1=Vn({prefix:"\u{1F680}",name:"base256emoji",encode:p1,decode:m1});var uc={};zt(uc,{base32:()=>me,base32hex:()=>b1,base32hexpad:()=>v1,base32hexpadupper:()=>_1,base32hexupper:()=>w1,base32pad:()=>x1,base32padupper:()=>E1,base32upper:()=>g1,base32z:()=>S1});var me=Bt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),g1=Bt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),x1=Bt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),E1=Bt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),b1=Bt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),w1=Bt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),v1=Bt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),_1=Bt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),S1=Bt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var lc={};zt(lc,{base36:()=>A1,base36upper:()=>I1});var A1=Rr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),I1=Rr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var fc={};zt(fc,{base58btc:()=>It,base58flickr:()=>R1});var It=Rr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),R1=Rr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var dc={};zt(dc,{base64:()=>sn,base64pad:()=>C1,base64url:()=>hc,base64urlpad:()=>T1});var sn=Bt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),C1=Bt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),hc=Bt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),T1=Bt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var pc={};zt(pc,{base8:()=>B1});var B1=Bt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var mc={};zt(mc,{identity:()=>L1});var L1=Vn({prefix:"\0",name:"identity",encode:e=>k0(e),decode:e=>N0(e)});var oS=new TextEncoder,aS=new TextDecoder;var gc={};zt(gc,{identity:()=>Cr});var N1=V0,F0=128,k1=127,O1=~k1,M1=Math.pow(2,31);function V0(e,t,r){t=t||[],r=r||0;for(var n=r;e>=M1;)t[r++]=e&255|F0,e/=128;for(;e&O1;)t[r++]=e&255|F0,e>>>=7;return t[r]=e|0,V0.bytes=r-n+1,t}var U1=yc,F1=128,K0=127;function yc(e,n){var r=0,n=n||0,i=0,s=n,o,a=e.length;do{if(s>=a)throw yc.bytes=0,new RangeError("Could not decode varint");o=e[s++],r+=i<28?(o&K0)<<i:(o&K0)*Math.pow(2,i),i+=7}while(o>=F1);return yc.bytes=s-n,r}var K1=Math.pow(2,7),V1=Math.pow(2,14),q1=Math.pow(2,21),$1=Math.pow(2,28),z1=Math.pow(2,35),H1=Math.pow(2,42),G1=Math.pow(2,49),Y1=Math.pow(2,56),W1=Math.pow(2,63),Q1=function(e){return e<K1?1:e<V1?2:e<q1?3:e<$1?4:e<z1?5:e<H1?6:e<G1?7:e<Y1?8:e<W1?9:10},X1={encode:N1,decode:U1,encodingLength:Q1},Z1=X1,Ni=Z1;var ki=(e,t=0)=>[Ni.decode(e,t),Ni.decode.bytes],qn=(e,t,r=0)=>(Ni.encode(e,t,r),t),$n=e=>Ni.encodingLength(e);var Ye=(e,t)=>{let r=t.byteLength,n=$n(e),i=n+$n(r),s=new Uint8Array(i+r);return qn(e,s,0),qn(r,s,n),s.set(t,i),new zn(e,r,t,s)},on=e=>{let t=or(e),[r,n]=ki(t),[i,s]=ki(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new zn(r,i,o,t)},q0=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&D0(e.bytes,r.bytes)}},zn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var $0=0,J1="identity",z0=or,j1=e=>Ye($0,z0(e)),Cr={code:$0,name:J1,encode:z0,digest:j1};var bc={};zt(bc,{sha256:()=>Jt,sha512:()=>t2});var Ec=({name:e,code:t,encode:r})=>new xc(e,t,r),xc=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Ye(this.code,r):r.then(n=>Ye(this.code,n))}else throw Error("Unknown type, must be binary type")}};var G0=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Jt=Ec({name:"sha2-256",code:18,encode:G0("SHA-256")}),t2=Ec({name:"sha2-512",code:19,encode:G0("SHA-512")});var Y0=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return r2(r,wc(e),t||It.encoder);default:return n2(r,wc(e),t||me.encoder)}};var W0=new WeakMap,wc=e=>{let t=W0.get(e);if(t==null){let r=new Map;return W0.set(e,r),r}return t},De=class e{constructor(t,r,n,i){this.code=r,this.version=t,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:t,multihash:r}=this;if(t!==Oi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==i2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.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:t,digest:r}=this.multihash,n=Ye(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&q0(t.multihash,n.multihash)}toString(t){return Y0(this,t)}toJSON(){return{"/":Y0(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new e(n,i,s,o||Q0(n,i,s.bytes))}else if(r[s2]===!0){let{version:n,multihash:i,code:s}=r,o=on(i);return e.create(n,s,o)}else return null}static create(t,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(t){case 0:{if(r!==Oi)throw new Error(`Version 0 CID must use dag-pb (code: ${Oi}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Q0(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,Oi,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=or(t.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 zn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(o):e.createV1(r.codec,o),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,h]=ki(t.subarray(r));return r+=h,f},i=n(),s=Oi;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(t,r){let[n,i]=e2(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return wc(s).set(n,t),s}},e2=(e,t)=>{switch(e[0]){case"Q":{let r=t||It;return[It.prefix,r.decode(`${It.prefix}${e}`)]}case It.prefix:{let r=t||It;return[It.prefix,r.decode(e)]}case me.prefix:{let r=t||me;return[me.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},r2=(e,t,r)=>{let{prefix:n}=r;if(n!==It.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},n2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},Oi=112,i2=18,Q0=(e,t,r)=>{let n=$n(e),i=n+$n(t),s=new Uint8Array(i+r.byteLength);return qn(e,s,0),qn(t,s,n),s.set(r,i),s},s2=Symbol.for("@ipld/js-cid/CID");var Tr={...mc,...ac,...pc,...sc,...oc,...uc,...lc,...fc,...dc,...cc},_S={...bc,...gc};function ar(e=0){return globalThis.Buffer?.alloc!=null?nn(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ie(e=0){return globalThis.Buffer?.allocUnsafe!=null?nn(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Z0(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var X0=Z0("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),vc=Z0("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ie(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),o2={utf8:X0,"utf-8":X0,hex:Tr.base16,latin1:vc,ascii:vc,binary:vc,...Tr},Gs=o2;function H(e,t="utf8"){let r=Gs[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?nn(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var jc={};zt(jc,{Ed25519PrivateKey:()=>dn,Ed25519PublicKey:()=>$i,generateKeyPair:()=>wE,generateKeyPairFromSeed:()=>Bh,unmarshalEd25519PrivateKey:()=>EE,unmarshalEd25519PublicKey:()=>bE});function Rt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}function J0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function _c(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function j0(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");J0(e.outputLen),J0(e.blockLen)}function Hn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function th(e,t){_c(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Ys=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var eh=e=>e instanceof Uint8Array;var Ws=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ne=(e,t)=>e<<32-t|e>>>t,a2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!a2)throw new Error("Non little-endian hardware is not supported");function Sc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Mi(e){if(typeof e=="string"&&(e=Sc(e)),!eh(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function Qs(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!eh(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Gn=class{clone(){return this._cloneInto()}},MS={}.toString;function Xs(e){let t=n=>e().update(Mi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Yn(e=32){if(Ys&&typeof Ys.getRandomValues=="function")return Ys.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function c2(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,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;e.setUint32(t+c,o,n),e.setUint32(t+u,a,n)}var Wn=class extends Gn{constructor(t,r,n,i){super(),this.blockLen=t,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(t),this.view=Ws(this.buffer)}update(t){Hn(this);let{view:r,buffer:n,blockLen:i}=this;t=Mi(t);let s=t.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=Ws(t);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Hn(this),th(t,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;c2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=Ws(t),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:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};var Zs=BigInt(4294967295),Ac=BigInt(32);function rh(e,t=!1){return t?{h:Number(e&Zs),l:Number(e>>Ac&Zs)}:{h:Number(e>>Ac&Zs)|0,l:Number(e&Zs)|0}}function u2(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:o}=rh(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}var l2=(e,t)=>BigInt(e>>>0)<<Ac|BigInt(t>>>0),f2=(e,t,r)=>e>>>r,h2=(e,t,r)=>e<<32-r|t>>>r,d2=(e,t,r)=>e>>>r|t<<32-r,p2=(e,t,r)=>e<<32-r|t>>>r,m2=(e,t,r)=>e<<64-r|t>>>r-32,y2=(e,t,r)=>e>>>r-32|t<<64-r,g2=(e,t)=>t,x2=(e,t)=>e,E2=(e,t,r)=>e<<r|t>>>32-r,b2=(e,t,r)=>t<<r|e>>>32-r,w2=(e,t,r)=>t<<r-32|e>>>64-r,v2=(e,t,r)=>e<<r-32|t>>>64-r;function _2(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var S2=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),A2=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,I2=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),R2=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,C2=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),T2=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var B2={fromBig:rh,split:u2,toBig:l2,shrSH:f2,shrSL:h2,rotrSH:d2,rotrSL:p2,rotrBH:m2,rotrBL:y2,rotr32H:g2,rotr32L:x2,rotlSH:E2,rotlSL:b2,rotlBH:w2,rotlBL:v2,add:_2,add3L:S2,add3H:A2,add4L:I2,add4H:R2,add5H:T2,add5L:C2},J=B2;var[L2,P2]=(()=>J.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(e=>BigInt(e))))(),Br=new Uint32Array(80),Lr=new Uint32Array(80),Ic=class extends Wn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:h,Gh:p,Gl:d,Hh:m,Hl:y}=this;return[t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y]}set(t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y){this.Ah=t|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=h|0,this.Gh=p|0,this.Gl=d|0,this.Hh=m|0,this.Hl=y|0}process(t,r){for(let b=0;b<16;b++,r+=4)Br[b]=t.getUint32(r),Lr[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let C=Br[b-15]|0,_=Lr[b-15]|0,S=J.rotrSH(C,_,1)^J.rotrSH(C,_,8)^J.shrSH(C,_,7),P=J.rotrSL(C,_,1)^J.rotrSL(C,_,8)^J.shrSL(C,_,7),D=Br[b-2]|0,Y=Lr[b-2]|0,W=J.rotrSH(D,Y,19)^J.rotrBH(D,Y,61)^J.shrSH(D,Y,6),z=J.rotrSL(D,Y,19)^J.rotrBL(D,Y,61)^J.shrSL(D,Y,6),et=J.add4L(P,z,Lr[b-7],Lr[b-16]),pt=J.add4H(et,S,W,Br[b-7],Br[b-16]);Br[b]=pt|0,Lr[b]=et|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:h,Fh:p,Fl:d,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=J.rotrSH(f,h,14)^J.rotrSH(f,h,18)^J.rotrBH(f,h,41),_=J.rotrSL(f,h,14)^J.rotrSL(f,h,18)^J.rotrBL(f,h,41),S=f&p^~f&m,P=h&d^~h&y,D=J.add5L(x,_,P,P2[b],Lr[b]),Y=J.add5H(D,g,C,S,L2[b],Br[b]),W=D|0,z=J.rotrSH(n,i,28)^J.rotrBH(n,i,34)^J.rotrBH(n,i,39),et=J.rotrSL(n,i,28)^J.rotrBL(n,i,34)^J.rotrBL(n,i,39),pt=n&s^n&a^s&a,Qt=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=d|0,p=f|0,d=h|0,{h:f,l:h}=J.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=J.add3L(W,et,Qt);n=J.add3H(T,Y,z,pt),i=T|0}({h:n,l:i}=J.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=J.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=J.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=J.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:h}=J.add(this.Eh|0,this.El|0,f|0,h|0),{h:p,l:d}=J.add(this.Fh|0,this.Fl|0,p|0,d|0),{h:m,l:y}=J.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=J.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x)}roundClean(){Br.fill(0),Lr.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 Rc=Xs(()=>new Ic);var to={};zt(to,{bitGet:()=>F2,bitLen:()=>U2,bitMask:()=>Ui,bitSet:()=>K2,bytesToHex:()=>cr,bytesToNumberBE:()=>ur,bytesToNumberLE:()=>Pr,concatBytes:()=>lr,createHmacDrbg:()=>Bc,ensureBytes:()=>Lt,equalBytes:()=>O2,hexToBytes:()=>cn,hexToNumber:()=>Tc,numberToBytesBE:()=>Dr,numberToBytesLE:()=>un,numberToHexUnpadded:()=>sh,numberToVarBytesBE:()=>k2,utf8ToBytes:()=>M2,validateObject:()=>We});var ih=BigInt(0),Js=BigInt(1),D2=BigInt(2),js=e=>e instanceof Uint8Array,N2=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function cr(e){if(!js(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=N2[e[r]];return t}function sh(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Tc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function cn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,s=e.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function ur(e){return Tc(cr(e))}function Pr(e){if(!js(e))throw new Error("Uint8Array expected");return Tc(cr(Uint8Array.from(e).reverse()))}function Dr(e,t){return cn(e.toString(16).padStart(t*2,"0"))}function un(e,t){return Dr(e,t).reverse()}function k2(e){return cn(sh(e))}function Lt(e,t,r){let n;if(typeof t=="string")try{n=cn(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(js(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function lr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!js(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function O2(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function M2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function U2(e){let t;for(t=0;e>ih;e>>=Js,t+=1);return t}function F2(e,t){return e>>BigInt(t)&Js}var K2=(e,t,r)=>e|(r?Js:ih)<<BigInt(t),Ui=e=>(D2<<BigInt(e-1))-Js,Cc=e=>new Uint8Array(e),nh=e=>Uint8Array.from(e);function Bc(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Cc(e),i=Cc(e),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Cc())=>{i=a(nh([0]),f),n=a(),f.length!==0&&(i=a(nh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,h=[];for(;f<t;){n=a();let p=n.slice();h.push(p),f+=n.length}return lr(...h)};return(f,h)=>{o(),c(f);let p;for(;!(p=h(u()));)c();return o(),p}}var V2={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function We(e,t,r={}){let n=(i,s,o)=>{let a=V2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(o&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var Vt=BigInt(0),_t=BigInt(1),ln=BigInt(2),q2=BigInt(3),Lc=BigInt(4),oh=BigInt(5),ah=BigInt(8),$2=BigInt(9),z2=BigInt(16);function yt(e,t){let r=e%t;return r>=Vt?r:t+r}function H2(e,t,r){if(r<=Vt||t<Vt)throw new Error("Expected power/modulo > 0");if(r===_t)return Vt;let n=_t;for(;t>Vt;)t&_t&&(n=n*e%r),e=e*e%r,t>>=_t;return n}function St(e,t,r){let n=e;for(;t-- >Vt;)n*=n,n%=r;return n}function eo(e,t){if(e===Vt||t<=Vt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=yt(e,t),n=t,i=Vt,s=_t,o=_t,a=Vt;for(;r!==Vt;){let u=n/r,l=n%r,f=i-o*u,h=s-a*u;n=r,r=l,i=o,s=a,o=f,a=h}if(n!==_t)throw new Error("invert: does not exist");return yt(i,t)}function G2(e){let t=(e-_t)/ln,r,n,i;for(r=e-_t,n=0;r%ln===Vt;r/=ln,n++);for(i=ln;i<e&&H2(i,t,e)!==e-_t;i++);if(n===1){let o=(e+_t)/Lc;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+_t)/ln;return function(a,c){if(a.pow(c,t)===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),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(h);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let d=a.pow(l,_t<<BigInt(u-p-1));l=a.sqr(d),f=a.mul(f,d),h=a.mul(h,l),u=p}return f}}function Y2(e){if(e%Lc===q2){let t=(e+_t)/Lc;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%ah===oh){let t=(e-oh)/ah;return function(n,i){let s=n.mul(i,ln),o=n.pow(s,t),a=n.mul(i,o),c=n.mul(n.mul(a,ln),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 e%z2,G2(e)}var ch=(e,t)=>(yt(e,t)&_t)===_t,W2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Pc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=W2.reduce((n,i)=>(n[i]="function",n),t);return We(e,r)}function Q2(e,t,r){if(r<Vt)throw new Error("Expected power > 0");if(r===Vt)return e.ONE;if(r===_t)return t;let n=e.ONE,i=t;for(;r>Vt;)r&_t&&(n=e.mul(n,i)),i=e.sqr(i),r>>=_t;return n}function X2(e,t){let r=new Array(t.length),n=t.reduce((s,o,a)=>e.is0(o)?s:(r[a]=s,e.mul(s,o)),e.ONE),i=e.inv(n);return t.reduceRight((s,o,a)=>e.is0(o)?s:(r[a]=e.mul(s,r[a]),e.mul(s,o)),i),r}function Dc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function ro(e,t,r=!1,n={}){if(e<=Vt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=Dc(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=Y2(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:Ui(i),ZERO:Vt,ONE:_t,create:c=>yt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Vt<=c&&c<e},is0:c=>c===Vt,isOdd:c=>(c&_t)===_t,neg:c=>yt(-c,e),eql:(c,u)=>c===u,sqr:c=>yt(c*c,e),add:(c,u)=>yt(c+u,e),sub:(c,u)=>yt(c-u,e),mul:(c,u)=>yt(c*u,e),pow:(c,u)=>Q2(a,c,u),div:(c,u)=>yt(c*eo(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>eo(c,e),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>X2(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?un(c,s):Dr(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Pr(c):ur(c)}});return Object.freeze(a)}function uh(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function lh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Nc(e){let t=lh(e);return t+Math.ceil(t/2)}function fh(e,t,r=!1){let n=e.length,i=lh(t),s=Nc(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?ur(e):Pr(e),a=yt(o,t-_t)+_t;return r?un(a,i):Dr(a,i)}var J2=BigInt(0),kc=BigInt(1);function no(e,t){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=e.ZERO,a=i;for(;s>J2;)s&kc&&(o=o.add(a)),a=a.double(),s>>=kc;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 h=1;h<a;h++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=e.ZERO,l=e.BASE,f=BigInt(2**i-1),h=2**i,p=BigInt(i);for(let d=0;d<a;d++){let m=d*c,y=Number(o&f);o>>=p,y>c&&(y-=h,o+=kc);let g=m,x=m+Math.abs(y)-1,b=d%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,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 Fi(e){return Pc(e.Fp),We(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Dc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var ke=BigInt(0),ye=BigInt(1),io=BigInt(2),j2=BigInt(8),tE={zip215:!0};function eE(e){let t=Fi(e);return We(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function so(e){let t=eE(e),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=t,u=io<<BigInt(a*8)-ye,l=r.create,f=t.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:ke}}}),h=t.adjustScalarBytes||(N=>N),p=t.domain||((N,I,U)=>{if(I.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),d=N=>typeof N=="bigint"&&ke<N,m=(N,I)=>d(N)&&d(I)&&N<I,y=N=>N===ke||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===ke?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,U,q,G){if(this.ex=I,this.ey=U,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:U,y:q}=I||{};if(!y(U)||!y(q))throw new Error("invalid affine point");return new _(U,q,ye,l(U*q))}static normalizeZ(I){let U=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(U[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:j,et:rt}=this,ft=l(q*q),nt=l(G*G),at=l(j*j),Ut=l(at*at),Tt=l(ft*I),Xt=l(at*l(Tt+nt)),Zt=l(Ut+l(U*l(ft*nt)));if(Xt!==Zt)throw new Error("bad point: equation left != right (1)");let Kt=l(q*G),ne=l(j*rt);if(Kt!==ne)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:U,ey:q,ez:G}=this,{ex:j,ey:rt,ez:ft}=I,nt=l(U*ft),at=l(j*G),Ut=l(q*ft),Tt=l(rt*G);return nt===at&&Ut===Tt}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=t,{ex:U,ey:q,ez:G}=this,j=l(U*U),rt=l(q*q),ft=l(io*l(G*G)),nt=l(I*j),at=U+q,Ut=l(l(at*at)-j-rt),Tt=nt+rt,Xt=Tt-ft,Zt=nt-rt,Kt=l(Ut*Xt),ne=l(Tt*Zt),rr=l(Ut*Zt),Zr=l(Xt*Tt);return new _(Kt,ne,Zr,rr)}add(I){C(I);let{a:U,d:q}=t,{ex:G,ey:j,ez:rt,et:ft}=this,{ex:nt,ey:at,ez:Ut,et:Tt}=I;if(U===BigInt(-1)){let uf=l((j-G)*(at+nt)),lf=l((j+G)*(at-nt)),Pa=l(lf-uf);if(Pa===ke)return this.double();let ff=l(rt*io*Tt),hf=l(ft*io*Ut),df=hf+ff,pf=lf+uf,mf=hf-ff,_y=l(df*Pa),Sy=l(pf*mf),Ay=l(df*mf),Iy=l(Pa*pf);return new _(_y,Sy,Iy,Ay)}let Xt=l(G*nt),Zt=l(j*at),Kt=l(ft*q*Tt),ne=l(rt*Ut),rr=l((G+j)*(nt+at)-Xt-Zt),Zr=ne-Kt,Ii=ne+Kt,cf=l(Zt-U*Xt),Ey=l(rr*Zr),by=l(Ii*cf),wy=l(rr*cf),vy=l(Zr*Ii);return new _(Ey,by,vy,wy)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:U,f:q}=this.wNAF(g(I,n));return _.normalizeZ([U,q])[0]}multiplyUnsafe(I){let U=x(I);return U===ke?P:this.equals(P)||U===ye?this:this.equals(S)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:U,ey:q,ez:G}=this,j=this.is0();I==null&&(I=j?j2:r.inv(G));let rt=l(U*I),ft=l(q*I),nt=l(G*I);if(j)return{x:ke,y:ye};if(nt!==ye)throw new Error("invZ was invalid");return{x:rt,y:ft}}clearCofactor(){let{h:I}=t;return I===ye?this:this.multiplyUnsafe(I)}static fromHex(I,U=!1){let{d:q,a:G}=t,j=r.BYTES;I=Lt("pointHex",I,j);let rt=I.slice(),ft=I[j-1];rt[j-1]=ft&-129;let nt=Pr(rt);nt===ke||(U?g(nt,u):g(nt,r.ORDER));let at=l(nt*nt),Ut=l(at-ye),Tt=l(q*at-G),{isValid:Xt,value:Zt}=f(Ut,Tt);if(!Xt)throw new Error("Point.fromHex: invalid y coordinate");let Kt=(Zt&ye)===ye,ne=(ft&128)!==0;if(!U&&Zt===ke&&ne)throw new Error("Point.fromHex: x=0 and x_0=1");return ne!==Kt&&(Zt=l(-Zt)),_.fromAffine({x:Zt,y:nt})}static fromPrivateKey(I){return z(I).point}toRawBytes(){let{x:I,y:U}=this.toAffine(),q=un(U,r.BYTES);return q[q.length-1]|=I&ye?128:0,q}toHex(){return cr(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,ye,l(t.Gx*t.Gy)),_.ZERO=new _(ke,ye,ye,ke);let{BASE:S,ZERO:P}=_,D=no(_,a*8);function Y(N){return yt(N,n)}function W(N){return Y(Pr(N))}function z(N){let I=a;N=Lt("private key",N,I);let U=Lt("hashed private key",s(N),2*I),q=h(U.slice(0,I)),G=U.slice(I,2*I),j=W(q),rt=S.multiply(j),ft=rt.toRawBytes();return{head:q,prefix:G,scalar:j,point:rt,pointBytes:ft}}function et(N){return z(N).pointBytes}function pt(N=new Uint8Array,...I){let U=lr(...I);return W(s(p(U,Lt("context",N),!!i)))}function Qt(N,I,U={}){N=Lt("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:j}=z(I),rt=pt(U.context,q,N),ft=S.multiply(rt).toRawBytes(),nt=pt(U.context,ft,j,N),at=Y(rt+nt*G);x(at);let Ut=lr(ft,un(at,r.BYTES));return Lt("result",Ut,a*2)}let T=tE;function k(N,I,U,q=T){let{context:G,zip215:j}=q,rt=r.BYTES;N=Lt("signature",N,2*rt),I=Lt("message",I),i&&(I=i(I));let ft=Pr(N.slice(rt,2*rt)),nt,at,Ut;try{nt=_.fromHex(U,j),at=_.fromHex(N.slice(0,rt),j),Ut=S.multiplyUnsafe(ft)}catch{return!1}if(!j&&nt.isSmallOrder())return!1;let Tt=pt(G,at.toRawBytes(),nt.toRawBytes(),I);return at.add(nt.multiplyUnsafe(Tt)).subtract(Ut).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Qt,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:z,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var Mc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),hh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),sA=BigInt(0),rE=BigInt(1),Oc=BigInt(2),nE=BigInt(5),dh=BigInt(10),iE=BigInt(20),sE=BigInt(40),ph=BigInt(80);function oE(e){let t=Mc,n=e*e%t*e%t,i=St(n,Oc,t)*n%t,s=St(i,rE,t)*e%t,o=St(s,nE,t)*s%t,a=St(o,dh,t)*o%t,c=St(a,iE,t)*a%t,u=St(c,sE,t)*c%t,l=St(u,ph,t)*u%t,f=St(l,ph,t)*u%t,h=St(f,dh,t)*o%t;return{pow_p_5_8:St(h,Oc,t)*e%t,b2:n}}function aE(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function cE(e,t){let r=Mc,n=yt(t*t*t,r),i=yt(n*n*t,r),s=oE(e*i).pow_p_5_8,o=yt(e*n*s,r),a=yt(t*o*o,r),c=o,u=yt(o*hh,r),l=a===e,f=a===yt(-e,r),h=a===yt(-e*hh,r);return l&&(o=c),(f||h)&&(o=u),ch(o,r)&&(o=yt(-o,r)),{isValid:l||f,value:o}}var fr=ro(Mc,void 0,!0),Uc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:fr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Rc,randomBytes:Yn,adjustScalarBytes:aE,uvRatio:cE},Qn=so(Uc);function mh(e,t,r){if(t.length>255)throw new Error("Context is too big");return Qs(Sc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var oA=so({...Uc,domain:mh}),aA=so({...Uc,domain:mh,prehash:Rc});var uE=(fr.ORDER+BigInt(3))/BigInt(8),cA=fr.pow(Oc,uE),uA=fr.sqrt(fr.neg(fr.ONE)),lA=(fr.ORDER-BigInt(5))/BigInt(8),fA=BigInt(486662);var hA=uh(fr,fr.neg(BigInt(486664)));var dA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),pA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),mA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),yA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var gA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Xn=32,hr=64,oo=32;async function yh(){let e=Qn.utils.randomPrivateKey(),t=Qn.getPublicKey(e);return{privateKey:bh(e,t),publicKey:t}}async function gh(e){if(e.length!==oo)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Qn.getPublicKey(t);return{privateKey:bh(t,r),publicKey:r}}async function xh(e,t){let r=e.subarray(0,oo);return Qn.sign(t,r)}async function Eh(e,t,r){return Qn.verify(t,r,e)}function bh(e,t){let r=new Uint8Array(hr);for(let n=0;n<oo;n++)r[n]=e[n],r[oo+n]=t[n];return r}function Dt(e,t){t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=ie(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return nn(r)}var he={get(e=globalThis){let t=e.crypto;if(t==null||t.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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var Fc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function ao(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,o=e?.iterations??32767,a=he.get();r*=8;async function c(f,h){let p=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:d};typeof h=="string"&&(h=H(h));let y;if(h.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",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,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",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return Dt([p,m.iv,new Uint8Array(g)])}async function u(f,h){let p=f.subarray(0,s),d=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:d};typeof h=="string"&&(h=H(h));let g;if(h.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,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}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Zn(e,t){let n=await ao().encrypt(e,t);return sn.encode(n)}var Kc=new Float32Array([-0]),Nr=new Uint8Array(Kc.buffer);function vh(e,t,r){Kc[0]=e,t[r]=Nr[0],t[r+1]=Nr[1],t[r+2]=Nr[2],t[r+3]=Nr[3]}function _h(e,t){return Nr[0]=e[t],Nr[1]=e[t+1],Nr[2]=e[t+2],Nr[3]=e[t+3],Kc[0]}var Vc=new Float64Array([-0]),se=new Uint8Array(Vc.buffer);function Sh(e,t,r){Vc[0]=e,t[r]=se[0],t[r+1]=se[1],t[r+2]=se[2],t[r+3]=se[3],t[r+4]=se[4],t[r+5]=se[5],t[r+6]=se[6],t[r+7]=se[7]}function Ah(e,t){return se[0]=e[t],se[1]=e[t+1],se[2]=e[t+2],se[3]=e[t+3],se[4]=e[t+4],se[5]=e[t+5],se[6]=e[t+6],se[7]=e[t+7],Vc[0]}var fE=BigInt(Number.MAX_SAFE_INTEGER),hE=BigInt(Number.MIN_SAFE_INTEGER),de=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&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(t=!1){if(t)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(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return fn;if(t<fE&&t>hE)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ih&&(i=0n,++n>Ih&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return fn;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):fn}},fn=new de(0,0);fn.toBigInt=function(){return 0n};fn.zzEncode=fn.zzDecode=function(){return this};fn.length=function(){return 1};var Ih=4294967296n;function Rh(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Ch(e,t,r){if(r-t<1)return"";let i,s=[],o=0,a;for(;t<r;)a=e[t++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&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 qc(e,t,r){let n=r,i,s;for(let o=0;o<e.length;++o)i=e.charCodeAt(o),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Oe(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function co(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var $c=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Oe(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Oe(this,4);return co(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Oe(this,4);return co(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Oe(this,4);let t=_h(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Oe(this,4);let t=Ah(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Oe(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Ch(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Oe(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Oe(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new de(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Oe(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Oe(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Oe(this,8);let t=co(this.buf,this.pos+=4),r=co(this.buf,this.pos+=4);return new de(t,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 zc(e){return new $c(e instanceof Uint8Array?e:e.subarray())}function jt(e,t){let r=zc(e);return t.decode(r)}function Hc(e){let t=e??8192,r=t>>>1,n,i=t;return function(o){if(o<1||o>r)return ie(o);i+o>t&&(n=ie(t),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var hn=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Gc(){}var Wc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},dE=Hc();function pE(e){return globalThis.Buffer!=null?ie(e):dE(e)}var qi=class{len;head;tail;states;constructor(){this.len=0,this.head=new hn(Gc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new hn(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Ki,10,de.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=de.fromBigInt(t);return this._push(Ki,r.length(),r)}uint64Number(t){let r=de.fromNumber(t);return this._push(Ki,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=de.fromBigInt(t).zzEncode();return this._push(Ki,r.length(),r)}sint64Number(t){let r=de.fromNumber(t).zzEncode();return this._push(Ki,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Yc,1,t?1:0)}fixed32(t){return this._push(Vi,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=de.fromBigInt(t);return this._push(Vi,4,r.lo)._push(Vi,4,r.hi)}fixed64Number(t){let r=de.fromNumber(t);return this._push(Vi,4,r.lo)._push(Vi,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(vh,4,t)}double(t){return this._push(Sh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Yc,1,0):this.uint32(r)._push(yE,r,t)}string(t){let r=Rh(t);return r!==0?this.uint32(r)._push(qc,r,t):this._push(Yc,1,0)}fork(){return this.states=new Wc(this),this.head=this.tail=new hn(Gc,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 hn(Gc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=pE(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Yc(e,t,r){t[r]=e&255}function mE(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Qc=class extends hn{next;constructor(t,r){super(mE,t,r),this.next=void 0}};function Ki(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Vi(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function yE(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(qi.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(gE,t,e),this},qi.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(xE,t,e),this});function gE(e,t,r){t.set(e,r)}function xE(e,t,r){e.length<40?qc(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(H(e),r)}function Xc(){return new qi}function te(e,t){let r=Xc();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Jn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(Jn||(Jn={}));function uo(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Zc(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return uo("enum",Jn.VARINT,r,n)}function ee(e,t){return uo("message",Jn.LENGTH_DELIMITED,e,t)}var At;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(At||(At={}));var Jc;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Jc||(Jc={}));(function(e){e.codec=()=>Zc(Jc)})(At||(At={}));var Qe;(function(e){let t;e.codec=()=>(t==null&&(t=ee((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),At.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=At.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(Qe||(Qe={}));var Xe;(function(e){let t;e.codec=()=>(t==null&&(t=ee((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),At.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=At.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(Xe||(Xe={}));var $i=class{_key;constructor(t){this._key=jn(t,Xn)}async verify(t,r){return Eh(this._key,r,t)}marshal(){return this._key}get bytes(){return Qe.encode({Type:At.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}},dn=class{_key;_publicKey;constructor(t,r){this._key=jn(t,hr),this._publicKey=jn(r,Xn)}async sign(t){return xh(this._key,t)}get public(){return new $i(this._publicKey)}marshal(){return this._key}get bytes(){return Xe.encode({Type:At.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}async id(){let t=Cr.digest(this.public.bytes);return It.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Zn(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function EE(e){if(e.length>hr){e=jn(e,hr+Xn);let n=e.subarray(0,hr),i=e.subarray(hr,e.length);return new dn(n,i)}e=jn(e,hr);let t=e.subarray(0,hr),r=e.subarray(Xn);return new dn(t,r)}function bE(e){return e=jn(e,Xn),new $i(e)}async function wE(){let{privateKey:e,publicKey:t}=await yh();return new dn(e,t)}async function Bh(e){let{privateKey:t,publicKey:r}=await gh(e);return new dn(t,r)}function jn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}function X(e,t="utf8"){let r=Gs[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var dI=mt(Pt(),1),pI=mt(Vs(),1),Lh=mt(ht(),1);function Me(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=Dt([new Uint8Array(t-r.length),r])}return X(r,"base64url")}function ge(e){let t=Ph(e);return new Lh.default.jsbn.BigInteger(X(t,"base16"),16)}function Ph(e,t){let r=H(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=Dt([new Uint8Array(t-r.length),r])}return r}var vE={"P-256":256,"P-384":384,"P-521":521},_E=Object.keys(vE),AI=_E.join(" / ");async function Dh(e,t){let r=sn.decode(e);return ao().decrypt(r,t)}var iu={};zt(iu,{MAX_KEY_SIZE:()=>Yi,RsaPrivateKey:()=>ti,RsaPublicKey:()=>Gi,fromJwk:()=>DE,generateKeyPair:()=>NE,unmarshalRsaPrivateKey:()=>LE,unmarshalRsaPublicKey:()=>PE});var Hi=mt(ht(),1);var uR=mt(Fh(),1);function mn(e){if(isNaN(e)||e<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Yn(e)}var HI=mt(zs(),1),ru=mt(ht(),1);function Kh(e,t){return t.map(r=>ge(e[r]))}function Vh(e){return ru.default.pki.setRsaPrivateKey(...Kh(e,["n","e","d","p","q","dp","dq","qi"]))}function qh(e){return ru.default.pki.setRsaPublicKey(...Kh(e,["n","e"]))}var yn={};zt(yn,{jwkToPkcs1:()=>IE,jwkToPkix:()=>CE,pkcs1ToJwk:()=>AE,pkixToJwk:()=>RE});var WI=mt(Bi(),1),QI=mt(zs(),1);var dr=mt(ht(),1);function AE(e){let t=dr.default.asn1.fromDer(X(e,"ascii")),r=dr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Me(r.n),e:Me(r.e),d:Me(r.d),p:Me(r.p),q:Me(r.q),dp:Me(r.dP),dq:Me(r.dQ),qi:Me(r.qInv),alg:"RS256"}}function IE(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=dr.default.pki.privateKeyToAsn1({n:ge(e.n),e:ge(e.e),d:ge(e.d),p:ge(e.p),q:ge(e.q),dP:ge(e.dp),dQ:ge(e.dq),qInv:ge(e.qi)});return H(dr.default.asn1.toDer(t).getBytes(),"ascii")}function RE(e){let t=dr.default.asn1.fromDer(X(e,"ascii")),r=dr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Me(r.n),e:Me(r.e)}}function CE(e){if(e.n==null||e.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=dr.default.pki.publicKeyToAsn1({n:ge(e.n),e:ge(e.e)});return H(dr.default.asn1.toDer(t).getBytes(),"ascii")}async function $h(e){let t=await he.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Gh(t);return{privateKey:r[0],publicKey:r[1]}}async function nu(e){let r=[await he.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await TE(e)],n=await Gh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function zh(e,t){let r=await he.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await he.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Hh(e,t,r){let n=await he.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return he.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Gh(e){if(e.privateKey==null||e.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([he.get().subtle.exportKey("jwk",e.privateKey),he.get().subtle.exportKey("jwk",e.publicKey)])}async function TE(e){return he.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Yh(e,t,r,n){let i=t?qh(e):Vh(e),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return H(o,"ascii")}function Wh(e,t){return Yh(e,!0,t,(r,n)=>n.encrypt(r))}function Qh(e,t){return Yh(e,!1,t,(r,n)=>n.decrypt(r))}function fo(e){if(e.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return H(e.n,"base64url").length*8}var Yi=8192,Gi=class{_key;constructor(t){this._key=t}async verify(t,r){return Hh(this._key,r,t)}marshal(){return yn.jwkToPkix(this._key)}get bytes(){return Qe.encode({Type:At.RSA,Data:this.marshal()}).subarray()}encrypt(t){return Wh(this._key,t)}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}},ti=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return mn(16)}async sign(t){return zh(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Gi(this._publicKey)}decrypt(t){return Qh(this._key,t)}marshal(){return yn.jwkToPkcs1(this._key)}get bytes(){return Xe.encode({Type:At.RSA,Data:this.marshal()}).subarray()}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Hi.default.util.ByteBuffer(this.marshal()),i=Hi.default.asn1.fromDer(n),s=Hi.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Hi.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(r==="libp2p-key")return Zn(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function LE(e){let t=yn.pkcs1ToJwk(e);if(fo(t)>Yi)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await nu(t);return new ti(r.privateKey,r.publicKey)}function PE(e){let t=yn.pkixToJwk(e);if(fo(t)>Yi)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Gi(t)}async function DE(e){if(fo(e)>Yi)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await nu(e);return new ti(t.privateKey,t.publicKey)}async function NE(e){if(e>Yi)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await $h(e);return new ti(t.privateKey,t.publicKey)}var lu={};zt(lu,{Secp256k1PrivateKey:()=>Qi,Secp256k1PublicKey:()=>Wi,generateKeyPair:()=>QE,unmarshalSecp256k1PrivateKey:()=>YE,unmarshalSecp256k1PublicKey:()=>WE});var kE=(e,t,r)=>e&t^~e&r,OE=(e,t,r)=>e&t^e&r^t&r,ME=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]),kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Or=new Uint32Array(64),su=class extends Wn{constructor(){super(64,32,8,!1),this.A=kr[0]|0,this.B=kr[1]|0,this.C=kr[2]|0,this.D=kr[3]|0,this.E=kr[4]|0,this.F=kr[5]|0,this.G=kr[6]|0,this.H=kr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[t,r,n,i,s,o,a,c]}set(t,r,n,i,s,o,a,c){this.A=t|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(t,r){for(let f=0;f<16;f++,r+=4)Or[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let h=Or[f-15],p=Or[f-2],d=Ne(h,7)^Ne(h,18)^h>>>3,m=Ne(p,17)^Ne(p,19)^p>>>10;Or[f]=m+Or[f-7]+d+Or[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 h=Ne(a,6)^Ne(a,11)^Ne(a,25),p=l+h+kE(a,c,u)+ME[f]+Or[f]|0,m=(Ne(n,2)^Ne(n,13)^Ne(n,22))+OE(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(){Or.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Xh=Xs(()=>new su);function UE(e){let t=Fi(e);We(t,{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}=t;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({...t})}var{bytesToNumberBE:FE,hexToBytes:KE}=to,gn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=gn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:FE(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=gn,r=typeof e=="string"?KE(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:s}=gn._parseInt(r.subarray(2)),{d:o,l:a}=gn._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){let t=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=t(r(e.s)),i=t(r(e.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}`}},pr=BigInt(0),Re=BigInt(1),xR=BigInt(2),Zh=BigInt(3),ER=BigInt(4);function VE(e){let t=UE(e),{Fp:r}=t,n=t.toBytes||((d,m,y)=>{let g=m.toAffine();return lr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=t.fromBytes||(d=>{let m=d.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(d){let{a:m,b:y}=t,g=r.sqr(d),x=r.mul(g,d);return r.add(r.add(x,r.mul(d,m)),y)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return typeof d=="bigint"&&pr<d&&d<t.n}function a(d){if(!o(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=t;if(m&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=cr(d)),typeof d!="string"||!m.includes(d.length))throw new Error("Invalid key");d=d.padStart(y*2,"0")}let b;try{b=typeof d=="bigint"?d:ur(Lt("private key",d,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof d}`)}return g&&(b=yt(b,x)),a(b),b}let u=new Map;function l(d){if(!(d 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(Lt("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(t.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:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=t,g=r.mul(y,Zh),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),z=r.mul(x,b);return z=r.add(z,z),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(z,_),P=r.mul(g,P),W=r.mul(m,W),z=r.sub(D,W),z=r.mul(m,z),z=r.add(z,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,z),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,z),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=t.a,W=r.mul(t.b,Zh),z=r.mul(y,b),et=r.mul(g,C),pt=r.mul(x,_),Qt=r.add(y,g),T=r.add(b,C);Qt=r.mul(Qt,T),T=r.add(z,et),Qt=r.sub(Qt,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(z,pt),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(et,pt),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,pt),D=r.add(S,D),S=r.sub(et,D),D=r.add(et,D),P=r.mul(S,D),et=r.add(z,z),et=r.add(et,z),pt=r.mul(Y,pt),T=r.mul(W,T),et=r.add(et,pt),pt=r.sub(z,pt),pt=r.mul(Y,pt),T=r.add(T,pt),z=r.mul(et,T),P=r.add(P,z),z=r.mul(k,T),S=r.mul(Qt,S),S=r.sub(S,z),z=r.mul(Qt,et),D=r.mul(k,D),D=r.add(D,z),new f(S,P,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===pr)return y;if(a(m),m===Re)return this;let{endo:g}=t;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>pr||_>pr;)b&Re&&(S=S.add(D)),_&Re&&(P=P.add(D)),D=D.double(),b>>=Re,_>>=Re;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=t;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:z}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(z)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===pr||S===Re||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=t;if(m===Re)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}=t;return m===Re?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return cr(this.toRawBytes(m))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,p=no(f,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function qE(e){let t=Fi(e);return We(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Jh(e){let t=qE(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return pr<T&&T<r.ORDER}function a(T){return yt(T,n)}function c(T){return eo(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:h}=VE({...t,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),U=lr;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),I):U(Uint8Array.from([4]),I,r.toBytes(N.y))},fromBytes(T){let k=T.length,L=T[0],N=T.subarray(1);if(k===i&&(L===2||L===3)){let I=ur(N);if(!o(I))throw new Error("Point is not on curve");let U=f(I),q=r.sqrt(U),G=(q&Re)===Re;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>cr(Dr(T,t.nByteLength));function d(T){let k=n>>Re;return T>k}function m(T){return d(T)?a(-T):T}let y=(T,k,L)=>ur(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=t.nByteLength;return k=Lt("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=gn.toSig(Lt("DER",k));return new g(L,N)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,U=P(Lt("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+t.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",j=u.fromHex(G+p(q)),rt=c(q),ft=a(-U*rt),nt=a(N*rt),at=u.BASE.multiplyAndAddUnsafe(j,ft,nt);if(!at)throw new Error("point at infinify");return at.assertValidity(),at}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return cn(this.toDERHex())}toDERHex(){return gn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return cn(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(T){try{return l(T),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let T=Nc(t.n);return fh(t.randomBytes(T),t.n)},precompute(T=8,k=u.BASE){return k._setWindowSize(T),k.multiply(BigInt(3)),k}};function b(T,k=!0){return u.fromPrivateKey(T).toRawBytes(k)}function C(T){let k=T instanceof Uint8Array,L=typeof T=="string",N=(k||L)&&T.length;return k?N===i||N===s:L?N===2*i||N===2*s:T instanceof u}function _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=t.bits2int||function(T){let k=ur(T),L=T.length*8-t.nBitLength;return L>0?k>>BigInt(L):k},P=t.bits2int_modN||function(T){return a(S(T))},D=Ui(t.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(pr<=T&&T<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Dr(T,t.nByteLength)}function W(T,k,L=z){if(["recovered","canonical"].some(Tt=>Tt in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=t,{lowS:U,prehash:q,extraEntropy:G}=L;U==null&&(U=!0),T=Lt("msgHash",T),q&&(T=Lt("prehashed msgHash",N(T)));let j=P(T),rt=l(k),ft=[Y(rt),Y(j)];if(G!=null){let Tt=G===!0?I(r.BYTES):G;ft.push(Lt("extraEntropy",Tt))}let nt=lr(...ft),at=j;function Ut(Tt){let Xt=S(Tt);if(!h(Xt))return;let Zt=c(Xt),Kt=u.BASE.multiply(Xt).toAffine(),ne=a(Kt.x);if(ne===pr)return;let rr=a(Zt*a(at+ne*rt));if(rr===pr)return;let Zr=(Kt.x===ne?0:2)|Number(Kt.y&Re),Ii=rr;return U&&d(rr)&&(Ii=m(rr),Zr^=1),new g(ne,Ii,Zr)}return{seed:nt,k2sig:Ut}}let z={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function pt(T,k,L=z){let{seed:N,k2sig:I}=W(T,k,L),U=t;return Bc(U.hash.outputLen,U.nByteLength,U.hmac)(N,I)}u.BASE._setWindowSize(8);function Qt(T,k,L,N=et){let I=T;if(k=Lt("msgHash",k),L=Lt("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:q}=N,G,j;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(Kt){if(!(Kt instanceof gn.Err))throw Kt;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:Kt,s:ne}=I;G=new g(Kt,ne)}else throw new Error("PARSE");j=u.fromHex(L)}catch(Kt){if(Kt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&G.hasHighS())return!1;q&&(k=t.hash(k));let{r:rt,s:ft}=G,nt=P(k),at=c(ft),Ut=a(nt*at),Tt=a(rt*at),Xt=u.BASE.multiplyAndAddUnsafe(j,Ut,Tt)?.toAffine();return Xt?a(Xt.x)===rt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:_,sign:pt,verify:Qt,ProjectivePoint:u,Signature:g,utils:x}}var ho=class extends Gn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,j0(t);let n=Mi(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Hn(this),this.iHash.update(t),this}digestInto(t){Hn(this),_c(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ou=(e,t,r)=>new ho(e,t).update(r).digest();ou.create=(e,t)=>new ho(e,t);function $E(e){return{hash:e,hmac:(t,...r)=>ou(e,t,Qs(...r)),randomBytes:Yn}}function jh(e,t){let r=n=>Jh({...e,...$E(n)});return Object.freeze({...r(t),create:r})}var rd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),td=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),zE=BigInt(1),au=BigInt(2),ed=(e,t)=>(e+t/au)/t;function HE(e){let t=rd,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=St(l,r,t)*l%t,h=St(f,r,t)*l%t,p=St(h,au,t)*u%t,d=St(p,i,t)*p%t,m=St(d,s,t)*d%t,y=St(m,a,t)*m%t,g=St(y,c,t)*y%t,x=St(g,a,t)*m%t,b=St(x,r,t)*l%t,C=St(b,o,t)*d%t,_=St(C,n,t)*u%t,S=St(_,au,t);if(!cu.eql(cu.sqr(S),e))throw new Error("Cannot find square root");return S}var cu=ro(rd,void 0,void 0,{sqrt:HE}),mr=jh({a:BigInt(0),b:BigInt(7),Fp:cu,n:td,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=td,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-zE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=ed(s*e,t),c=ed(-n*e,t),u=yt(e-a*r-c*i,t),l=yt(-a*n-c*s,t),f=u>o,h=l>o;if(f&&(u=t-u),h&&(l=t-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},Xh),LR=BigInt(0);var PR=mr.ProjectivePoint;function nd(){return mr.utils.randomPrivateKey()}async function id(e,t){let{digest:r}=await Jt.digest(t);try{return mr.sign(r,e).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function sd(e,t,r){try{let{digest:n}=await Jt.digest(r);return mr.verify(t,n,e)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function od(e){return mr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function ad(e){try{mr.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function uu(e){try{mr.ProjectivePoint.fromHex(e)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function cd(e){try{return mr.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var Wi=class{_key;constructor(t){uu(t),this._key=t}async verify(t,r){return sd(this._key,r,t)}marshal(){return od(this._key)}get bytes(){return Qe.encode({Type:At.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}},Qi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??cd(t),ad(this._key),uu(this._publicKey)}async sign(t){return id(this._key,t)}get public(){return new Wi(this._publicKey)}marshal(){return this._key}get bytes(){return Xe.encode({Type:At.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Rt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Jt.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Zn(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function YE(e){return new Qi(e)}function WE(e){return new Wi(e)}async function QE(){let e=nd();return new Qi(e)}var yr={rsa:iu,ed25519:jc,secp256k1:lu};function fu(e){let t=Object.keys(yr).join(" / ");return new w(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function hu(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return yr[e];throw fu(e)}async function mo(e,t){return hu(e).generateKeyPair(t??2048)}function Xi(e){let t=Qe.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case At.RSA:return yr.rsa.unmarshalRsaPublicKey(r);case At.Ed25519:return yr.ed25519.unmarshalEd25519PublicKey(r);case At.Secp256k1:return yr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw fu(t.Type??"unknown")}}function ud(e,t){return t=(t??"rsa").toLowerCase(),hu(t),e.bytes}async function ei(e){let t=Xe.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case At.RSA:return yr.rsa.unmarshalRsaPrivateKey(r);case At.Ed25519:return yr.ed25519.unmarshalEd25519PrivateKey(r);case At.Secp256k1:return yr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw fu(t.Type??"RSA")}}function ld(e,t){return t=(t??"rsa").toLowerCase(),hu(t),e.bytes}async function Zi(e,t){try{let i=await Dh(e,t);return await ei(i)}catch{}let r=po.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=po.default.asn1.toDer(po.default.pki.privateKeyToAsn1(r));return n=H(n.getBytes(),"ascii"),yr.rsa.unmarshalRsaPrivateKey(n)}var du=Symbol.for("@libp2p/content-routing");var Ji=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new mu(t,r))}},pu=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},mu=globalThis.CustomEvent??pu;var xe=(e,...t)=>{try{[...t]}catch{}};var yu=Symbol.for("@libp2p/peer-discovery");var gu=Symbol.for("@libp2p/peer-routing");var o4=mt(Ds(),1),ZE=mt(ht(),1);var hd=mt(Ha(),1),dd=mt(Pt(),1),fd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function ji(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(fd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=fd[i],o=(0,hd.default)(e,t,r,n,s);return dd.default.encode64(o,null)}var be=mt(Eu(),1);be.default.formatters.b=e=>e==null?"undefined":It.baseEncode(e);be.default.formatters.t=e=>e==null?"undefined":me.baseEncode(e);be.default.formatters.m=e=>e==null?"undefined":sn.baseEncode(e);be.default.formatters.p=e=>e==null?"undefined":e.toString();be.default.formatters.c=e=>e==null?"undefined":e.toString();be.default.formatters.k=e=>e==null?"undefined":e.toString();be.default.formatters.a=e=>e==null?"undefined":e.toString();function hb(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function xo(){return{forComponent(e){return Nt(e)}}}function Nt(e){let t=hb(`${e}:trace`);return be.default.enabled(`${e}:trace`)&&be.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,be.default)(`${e}:trace`)),Object.assign((0,be.default)(e),{error:(0,be.default)(`${e}:error`),trace:t})}var bu=Symbol.for("@libp2p/peer-id");function Eo(e){return e!=null&&!!e[bu]}var db=Symbol.for("nodejs.util.inspect.custom"),gd=Object.values(Tr).map(e=>e.decoder).reduce((e,t)=>e.or(t),Tr.identity.decoder),xd=114,wu=36,vu=37,ts=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[bu]=!0;toString(){return this.string==null&&(this.string=It.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return De.createV1(xd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Rt(this.multihash.bytes,t);if(typeof t=="string")return ut(t).equals(this);if(t?.multihash?.bytes!=null)return Rt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[db](){return`PeerId(${this.toString()})`}},En=class extends ts{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},bn=class extends ts{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},wn=class extends ts{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Ed(e){if(e.type==="RSA")return new En(e);if(e.type==="Ed25519")return new bn(e);if(e.type==="secp256k1")return new wn(e);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function ut(e,t){if(t=t??gd,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=on(It.decode(`z${e}`));return e.startsWith("12D")?new bn({multihash:r}):e.startsWith("16U")?new wn({multihash:r}):new En({multihash:r})}return si(gd.decode(e))}function si(e){try{let t=on(e);if(t.code===Cr.code){if(t.digest.length===wu)return new bn({multihash:t});if(t.digest.length===vu)return new wn({multihash:t})}if(t.code===Jt.code)return new En({multihash:t})}catch{return pb(De.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function pb(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==xd)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===Jt.code)return new En({multihash:e.multihash});if(t.code===Cr.code){if(t.digest.length===wu)return new bn({multihash:e.multihash});if(t.digest.length===vu)return new wn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function oi(e,t){return e.length===wu?new bn({multihash:Ye(Cr.code,e),privateKey:t}):e.length===vu?new wn({multihash:Ye(Cr.code,e),privateKey:t}):new En({multihash:await Jt.digest(e),publicKey:e,privateKey:t})}var bo=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var gr="/",bd=new TextEncoder().encode(gr),wo=bd[0],Ze=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=H(t);else if(t instanceof Uint8Array)this._buf=t;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]!==wo)throw new Error("Invalid key")}toString(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(gr))}static random(){return new e(bo().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=bd),this._buf[0]!==wo){let t=new Uint8Array(this._buf.byteLength+1);t.fill(wo,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===wo;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.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 e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(gr).slice(1)}type(){return mb(this.baseNamespace())}name(){return yb(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(gr)||(t+=gr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(gr):new e(t.slice(0,-1).join(gr))}child(t){return this.toString()===gr?t:t.toString()===gr?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...gb(t.map(r=>r.namespaces()))])}};function mb(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function yb(e){let t=e.split(":");return t[t.length-1]}function gb(e){return[].concat(...e)}var Td=mt(Cd(),1),Mr=Td.default;var Fd=mt(Ud(),1);var st;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(st||(st={}));var So=Nt("libp2p:keychain"),kb="/pkcs8/",Kd="/info/",vn=new WeakMap,_n={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Su={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function xr(e){return e==null||typeof e!="string"?!1:e===(0,Fd.default)(e.trim())&&e.length>0}async function gt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Je(e){return new Ze(kb+e)}function Ur(e){return new Ze(Kd+e)}var Sn=class{components;init;constructor(t,r){if(this.components=t,this.init=Mr(Su,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<_n.minKeyLength)throw new Error(`dek.keyLength must be least ${_n.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<_n.minSaltLength)throw new Error(`dek.saltLength must be least ${_n.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<_n.minIterationCount)throw new Error(`dek.iterationCount must be least ${_n.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?ji(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";vn.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Su),r=Math.ceil(_n.minSaltLength/3)*3;return t.dek.salt=X(mn(r),"base64"),t}static get options(){return Su}async createKey(t,r,n=2048){if(!xr(t)||t==="self")throw await gt(),new w("Invalid key name",st.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await gt(),new w("Invalid key type",st.ERR_INVALID_KEY_TYPE);let i=Je(t);if(await this.components.datastore.has(i))throw await gt(),new w("Key name already exists",st.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await gt(),new w("Invalid RSA key size",st.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await mo(r,n),c=await a.id(),u=vn.get(this);if(u==null)throw new w("dek missing",st.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,H(f)),h.put(Ur(t),H(JSON.stringify(o))),await h.commit()}catch(a){throw await gt(),a}return o}async listKeys(){let t={prefix:Kd},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(X(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,st.ERR_KEY_NOT_FOUND);return n}catch(r){throw await gt(),r}}async findKeyByName(t){if(!xr(t))throw await gt(),new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);let r=Ur(t);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await gt(),So.error(n),new w(`Key '${t}' does not exist.`,st.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!xr(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);let r=Je(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete(Ur(t)),await i.commit(),n}async renameKey(t,r){if(!xr(t)||t==="self")throw await gt(),new w(`Invalid old key name '${t}'`,st.ERR_OLD_KEY_NAME_INVALID);if(!xr(r)||r==="self")throw await gt(),new w(`Invalid new key name '${r}'`,st.ERR_NEW_KEY_NAME_INVALID);let n=Je(t),i=Je(r),s=Ur(t),o=Ur(r);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${r}' already exists`,st.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,H(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await gt(),c}}async exportKey(t,r){if(!xr(t))throw await gt(),new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("Password is required",st.ERR_PASSWORD_REQUIRED);let n=Je(t);try{let i=await this.components.datastore.get(n),s=X(i),o=vn.get(this);if(o==null)throw new w("dek missing",st.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await Zi(s,a)).export(r)}catch(i){throw await gt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await Zi(n,r);return oi(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!xr(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("PEM encoded key is required",st.ERR_PEM_REQUIRED);let i=Je(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,st.ERR_KEY_ALREADY_EXISTS);let o;try{o=await Zi(r,n)}catch{throw await gt(),new w("Cannot read the key, most likely the password is wrong",st.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=vn.get(this);if(l==null)throw new w("dek missing",st.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await gt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,H(r)),u.put(Ur(t),H(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!xr(t))throw new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",st.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",st.ERR_MISSING_PRIVATE_KEY);let n=await ei(r.privateKey),i=Je(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,st.ERR_KEY_ALREADY_EXISTS);let o=vn.get(this);if(o==null)throw new w("dek missing",st.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,H(c)),l.put(Ur(t),H(JSON.stringify(u))),await l.commit(),u}catch(n){throw await gt(),n}}async getPrivateKey(t){if(!xr(t))throw await gt(),new w(`Invalid key name '${t}'`,st.ERR_INVALID_KEY_NAME);try{let r=Je(t),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await gt(),So.error(r),new w(`Key '${t}' does not exist.`,st.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await gt(),new w(`Invalid old pass type '${typeof t}'`,st.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await gt(),new w(`Invalid new pass type '${typeof r}'`,st.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await gt(),new w(`Invalid pass length ${r.length}`,st.ERR_INVALID_PASS_LENGTH);So("recreating keychain");let n=vn.get(this);if(n==null)throw new w("dek missing",st.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?ji(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";vn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(Je(a.name)),u=X(c),l=await Zi(u,i),f=s.toString(),h=await l.export(f),p=this.components.datastore.batch(),d={name:a.name,id:a.id};p.put(Je(a.name),H(h)),p.put(Ur(a.name),H(JSON.stringify(d))),await p.commit()}So("keychain reconstructed")}};function Er(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var we=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Er(this.map.entries(),t=>[ut(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,ut(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Er(this.map.keys(),t=>ut(t))}values(){return this.map.values()}get size(){return this.map.size}};var An=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Er(this.set.entries(),t=>{let r=ut(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=ut(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Er(this.set.values(),t=>ut(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Au=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Er(this.list.entries(),t=>ut(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Er(this.list.entries(),t=>[t[0],ut(t[1])])}every(t){return this.list.every((r,n)=>t(ut(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=ut(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(ut(n),i,this));if(r!=null)return ut(r)}findIndex(t){return this.list.findIndex((r,n)=>t(ut(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(ut(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return ut(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return ut(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var Iu;(function(e){let t;e.codec=()=>(t==null&&(t=ee((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})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(Iu||(Iu={}));var Vd=async()=>{let e=await mo("Ed25519"),t=await Ob(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function Ob(e){return oi(ud(e.public),ld(e))}var Mb=Math.pow(2,7),Ub=Math.pow(2,14),Fb=Math.pow(2,21),Ru=Math.pow(2,28),Cu=Math.pow(2,35),Tu=Math.pow(2,42),Bu=Math.pow(2,49),lt=128,oe=127;function pe(e){if(e<Mb)return 1;if(e<Ub)return 2;if(e<Fb)return 3;if(e<Ru)return 4;if(e<Cu)return 5;if(e<Tu)return 6;if(e<Bu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Kb(e,t,r=0){switch(pe(e)){case 8:t[r++]=e&255|lt,e/=128;case 7:t[r++]=e&255|lt,e/=128;case 6:t[r++]=e&255|lt,e/=128;case 5:t[r++]=e&255|lt,e/=128;case 4:t[r++]=e&255|lt,e>>>=7;case 3:t[r++]=e&255|lt,e>>>=7;case 2:t[r++]=e&255|lt,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Vb(e,t,r=0){switch(pe(e)){case 8:t.set(r++,e&255|lt),e/=128;case 7:t.set(r++,e&255|lt),e/=128;case 6:t.set(r++,e&255|lt),e/=128;case 5:t.set(r++,e&255|lt),e/=128;case 4:t.set(r++,e&255|lt),e>>>=7;case 3:t.set(r++,e&255|lt),e>>>=7;case 2:t.set(r++,e&255|lt),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function qb(e,t){let r=e[t],n=0;if(n+=r&oe,r<lt||(r=e[t+1],n+=(r&oe)<<7,r<lt)||(r=e[t+2],n+=(r&oe)<<14,r<lt)||(r=e[t+3],n+=(r&oe)<<21,r<lt)||(r=e[t+4],n+=(r&oe)*Ru,r<lt)||(r=e[t+5],n+=(r&oe)*Cu,r<lt)||(r=e[t+6],n+=(r&oe)*Tu,r<lt)||(r=e[t+7],n+=(r&oe)*Bu,r<lt))return n;throw new RangeError("Could not decode varint")}function $b(e,t){let r=e.get(t),n=0;if(n+=r&oe,r<lt||(r=e.get(t+1),n+=(r&oe)<<7,r<lt)||(r=e.get(t+2),n+=(r&oe)<<14,r<lt)||(r=e.get(t+3),n+=(r&oe)<<21,r<lt)||(r=e.get(t+4),n+=(r&oe)*Ru,r<lt)||(r=e.get(t+5),n+=(r&oe)*Cu,r<lt)||(r=e.get(t+6),n+=(r&oe)*Tu,r<lt)||(r=e.get(t+7),n+=(r&oe)*Bu,r<lt))return n;throw new RangeError("Could not decode varint")}function Ce(e,t,r=0){return t==null&&(t=ie(pe(e))),t instanceof Uint8Array?Kb(e,t,r):Vb(e,t,r)}function br(e,t=0){return e instanceof Uint8Array?qb(e,t):$b(e,t)}var $d=Symbol.for("@achingbrain/uint8arraylist");function qd(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function Ao(e){return!!e?.[$d]}var Wt=class e{constructor(...t){Object.defineProperty(this,$d,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Ao(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(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Ao(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(t){let r=qd(this.bufs,t);return r.buf[r.index]}set(t,r){let n=qd(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(Ao(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return Dt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:Dt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=n,s}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===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,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(o);continue}n.push(o.subarray(t-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-t}}indexOf(t,r=0){if(!Ao(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.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 h=u;h>=0;h--){let p=this.get(f+h);if(n[h]!==p){l=Math.max(1,h-a[p]);break}}if(l===0)return f}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=ie(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=ar(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=ar(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=ar(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=ie(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=ar(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=ar(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=ar(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=ar(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=ar(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Rt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var zd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var rs;(function(e){let t;e.codec=()=>(t==null&&(t=ee((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})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(rs||(rs={}));var ui=class e{static createFromProtobuf=async t=>{let r=rs.decode(t),n=await oi(r.publicKey);return new e({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(t,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=t.domain,i=t.codec,s=t.marshal(),o=Hd(n,i,s),c=await(await ei(r.privateKey)).sign(o.subarray());return new e({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(t,r)=>{let n=await e.createFromProtobuf(t);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",zd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(t){let{peerId:r,payloadType:n,payload:i,signature:s}=t;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=rs.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return Rt(this.marshal(),t.marshal())}async validate(t){let r=Hd(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return Xi(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Hd=(e,t,r)=>{let n=H(e),i=Ce(n.byteLength),s=Ce(t.length),o=Ce(r.length);return new Wt(i,n,s,t,o,r)};function Gd(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var Io=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();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(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,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 h=Number.parseInt(f,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=t,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 t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=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]=t(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]=t(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Yd=45,zb=15,li=new Io;function Lu(e){if(!(e.length>zb))return li.new(e).parseWith(()=>li.readIPv4Addr())}function Pu(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yd))return li.new(e).parseWith(()=>li.readIPv6Addr())}function Ro(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yd))return li.new(e).parseWith(()=>li.readIPAddr())}var t8=parseInt("0xFFFF",16),e8=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Co(e){return!!Lu(e)}function To(e){return!!Pu(e)}function fi(e){return!!Ro(e)}var Xd=Co,Qb=To,Du=function(e){let t=0;if(e=e.toString().trim(),Xd(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(Qb(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=Xd(r[n]),o;s&&(o=Du(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(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(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},Zd=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var hi={},Nu={},Zb=[[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"]];Zb.forEach(e=>{let t=Jb(...e);Nu[t.code]=t,hi[t.name]=t});function Jb(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function dt(e){if(typeof e=="number"){if(Nu[e]!=null)return Nu[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(hi[e]!=null)return hi[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var U8=dt("ip4"),F8=dt("ip6"),K8=dt("ipcidr");function Ou(e,t){switch(dt(e).code){case 4:case 41:return tw(t);case 42:return tp(t);case 6:case 273:case 33:case 132:return rp(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return tp(t);case 421:return iw(t);case 444:return ep(t);case 445:return ep(t);case 466:return nw(t);default:return X(t,"base16")}}function Mu(e,t){switch(dt(e).code){case 4:return Jd(t);case 41:return Jd(t);case 42:return jd(t);case 6:case 273:case 33:case 132:return Uu(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return jd(t);case 421:return ew(t);case 444:return sw(t);case 445:return ow(t);case 466:return rw(t);default:return H(t,"base16")}}var ku=Object.values(Tr).map(e=>e.decoder),jb=function(){let e=ku[0].or(ku[1]);return ku.slice(2).forEach(t=>e=e.or(t)),e}();function Jd(e){if(!fi(e))throw new Error("invalid ip address");return Du(e)}function tw(e){let t=Zd(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!fi(t))throw new Error("invalid ip address");return t}function Uu(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function rp(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function jd(e){let t=H(e),r=Uint8Array.from(Ce(t.length));return Dt([r,t],r.length+t.length)}function tp(e){let t=br(e);if(e=e.slice(pe(t)),e.length!==t)throw new Error("inconsistent lengths");return X(e)}function ew(e){let t;e[0]==="Q"||e[0]==="1"?t=on(It.decode(`z${e}`)).bytes:t=De.parse(e).multihash.bytes;let r=Uint8Array.from(Ce(t.length));return Dt([r,t],r.length+t.length)}function rw(e){let t=jb.decode(e),r=Uint8Array.from(Ce(t.length));return Dt([r,t],r.length+t.length)}function nw(e){let t=br(e),r=e.slice(pe(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function iw(e){let t=br(e),r=e.slice(pe(t));if(r.length!==t)throw new Error("inconsistent lengths");return X(r,"base58btc")}function sw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=me.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Uu(n);return Dt([r,i],r.length+i.length)}function ow(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=me.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Uu(n);return Dt([r,i],r.length+i.length)}function ep(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=X(t,"base32"),i=rp(r);return`${n}:${i}`}function np(e){e=Fu(e);let t=[],r=[],n=null,i=e.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=dt(o);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw sp("invalid address: "+e);if(a.path===!0){n=Fu(i.slice(s).join("/")),t.push([a.code,Mu(a.code,n)]),r.push([a.code,n]);break}let c=Mu(a.code,i[s]);t.push([a.code,c]),r.push([a.code,Ou(a.code,c)])}return{string:ip(r),bytes:Vu(t),tuples:t,stringTuples:r,path:n}}function Ku(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=br(e,i),o=pe(s),a=dt(s),c=aw(a,e.slice(i+o));if(c===0){t.push([s]),r.push([s]),i+=o;continue}let u=e.slice(i+o,i+o+c);if(i+=c+o,i>e.length)throw sp("Invalid address Uint8Array: "+X(e,"base16"));t.push([s,u]);let l=Ou(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(e),string:ip(r),tuples:t,stringTuples:r,path:n}}function ip(e){let t=[];return e.map(r=>{let n=dt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Fu(t.join("/"))}function Vu(e){return Dt(e.map(t=>{let r=dt(t[0]),n=Uint8Array.from(Ce(r.code));return t.length>1&&t[1]!=null&&(n=Dt([n,t[1]])),n}))}function aw(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=br(t instanceof Uint8Array?t:Uint8Array.from(t));return r+pe(r)}}function Fu(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function sp(e){return new Error("Error parsing address: "+e)}var cw=Symbol.for("nodejs.util.inspect.custom"),qu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),uw=[dt("dns").code,dt("dns4").code,dt("dns6").code,dt("dnsaddr").code],Bo=class e{bytes;#t;#e;#r;#n;[qu]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Ku(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=np(t)}else if(Fr(t))r=Ku(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",o=dt("tcp"),a=dt("udp"),c=dt("ip4"),u=dt("ip6"),l=dt("dns6"),f=dt("ip6zone");for(let[p,d]of this.stringTuples())p===f.code&&(s=`%${d??""}`),uw.includes(p)&&(r=o.name,i=443,n=`${d??""}${s}`,t=p===l.code?6:4),(p===o.code||p===a.code)&&(r=dt(p).name,i=parseInt(d??"")),(p===c.code||p===u.code)&&(r=dt(p).name,n=`${d??""}${s}`,t=p===u.code?6:4);if(t==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:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},dt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>dt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Vu(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===hi.p2p.code&&t.push([n,i]),n===hi["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(It.decode(`z${n}`),"base58btc"):X(De.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Rt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Lo.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[cw](){return`Multiaddr(${this.#t})`}};var Lo=new Map;function Fr(e){return!!e?.[qu]}function qt(e){return new Bo(e)}var op="libp2p-peer-record",ap=Uint8Array.from([3,1]);var ns;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=ee((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=>te(s,n.codec()),n.decode=s=>jt(s,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=ee((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),e.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(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),e.encode=n=>te(n,e.codec()),e.decode=n=>jt(n,e.codec())})(ns||(ns={}));var In=class e{static createFromProtobuf=t=>{let r=ns.decode(t),n=si(r.peerId),i=(r.addresses??[]).map(o=>qt(o.multiaddr)),s=r.seq;return new e({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=op;static CODEC=ap;peerId;multiaddrs;seqNumber;domain=e.DOMAIN;codec=e.CODEC;marshaled;constructor(t){let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ns.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof e)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Gd(this.multiaddrs,t.multiaddrs))}};function lw(e){return e[Symbol.asyncIterator]!=null}function fw(e){if(lw(e))return(async()=>{let r=[];for await(let n of e)r.push(n);return r})();let t=[];for(let r of e)t.push(r);return t}var is=fw;var zu=mt(up(),1);var os=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Hu=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},lp=e=>globalThis.DOMException===void 0?new Hu(e):new DOMException(e),fp=e=>{let t=e.reason===void 0?lp("This operation was aborted."):e.reason;return t instanceof Error?t:lp(t)};function Gu(e,t,r,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(fp(c)),c.addEventListener("abort",()=>{a(fp(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new os(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{o(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function Yu(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Rn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},wr,Wu=class{constructor(){wr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Rn(this,wr,"f")[this.size-1].priority>=r.priority){Rn(this,wr,"f").push(n);return}let i=Yu(Rn(this,wr,"f"),n,(s,o)=>o.priority-s.priority);Rn(this,wr,"f").splice(i,0,n)}dequeue(){let t=Rn(this,wr,"f").shift();return t?.run}filter(t){return Rn(this,wr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Rn(this,wr,"f").length}};wr=new WeakMap;var hp=Wu;var Ct=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},kt,cs,us,Vr,Uo,ls,Do,Ue,as,ve,No,_e,fs,Kr,ko,dp,pp,gp,mp,yp,Oo,Qu,Xu,Fo,xp,Mo,Ko=class extends Error{},Zu=class extends zu.default{constructor(t){var r,n,i,s;if(super(),kt.add(this),cs.set(this,void 0),us.set(this,void 0),Vr.set(this,0),Uo.set(this,void 0),ls.set(this,void 0),Do.set(this,0),Ue.set(this,void 0),as.set(this,void 0),ve.set(this,void 0),No.set(this,void 0),_e.set(this,0),fs.set(this,void 0),Kr.set(this,void 0),ko.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:hp,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Ct(this,cs,t.carryoverConcurrencyCount,"f"),Ct(this,us,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Ct(this,Uo,t.intervalCap,"f"),Ct(this,ls,t.interval,"f"),Ct(this,ve,new t.queueClass,"f"),Ct(this,No,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Ct(this,ko,t.throwOnTimeout===!0,"f"),Ct(this,Kr,t.autoStart===!1,"f")}get concurrency(){return K(this,fs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Ct(this,fs,t,"f"),K(this,kt,"m",Fo).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,ko,"f"),...r},new Promise((n,i)=>{K(this,ve,"f").enqueue(async()=>{var s,o,a;Ct(this,_e,(o=K(this,_e,"f"),o++,o),"f"),Ct(this,Vr,(a=K(this,Vr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new Ko("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Gu(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,kt,"m",xp).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof os&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,kt,"m",gp).call(this)}},r),this.emit("add"),K(this,kt,"m",Oo).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Kr,"f")?(Ct(this,Kr,!1,"f"),K(this,kt,"m",Fo).call(this),this):this}pause(){Ct(this,Kr,!0,"f")}clear(){Ct(this,ve,new(K(this,No,"f")),"f")}async onEmpty(){K(this,ve,"f").size!==0&&await K(this,kt,"m",Mo).call(this,"empty")}async onSizeLessThan(t){K(this,ve,"f").size<t||await K(this,kt,"m",Mo).call(this,"next",()=>K(this,ve,"f").size<t)}async onIdle(){K(this,_e,"f")===0&&K(this,ve,"f").size===0||await K(this,kt,"m",Mo).call(this,"idle")}get size(){return K(this,ve,"f").size}sizeBy(t){return K(this,ve,"f").filter(t).length}get pending(){return K(this,_e,"f")}get isPaused(){return K(this,Kr,"f")}};cs=new WeakMap,us=new WeakMap,Vr=new WeakMap,Uo=new WeakMap,ls=new WeakMap,Do=new WeakMap,Ue=new WeakMap,as=new WeakMap,ve=new WeakMap,No=new WeakMap,_e=new WeakMap,fs=new WeakMap,Kr=new WeakMap,ko=new WeakMap,kt=new WeakSet,dp=function(){return K(this,us,"f")||K(this,Vr,"f")<K(this,Uo,"f")},pp=function(){return K(this,_e,"f")<K(this,fs,"f")},gp=function(){var t;Ct(this,_e,(t=K(this,_e,"f"),t--,t),"f"),K(this,kt,"m",Oo).call(this),this.emit("next")},mp=function(){K(this,kt,"m",Xu).call(this),K(this,kt,"m",Qu).call(this),Ct(this,as,void 0,"f")},yp=function(){let t=Date.now();if(K(this,Ue,"f")===void 0){let r=K(this,Do,"f")-t;if(r<0)Ct(this,Vr,K(this,cs,"f")?K(this,_e,"f"):0,"f");else return K(this,as,"f")===void 0&&Ct(this,as,setTimeout(()=>{K(this,kt,"m",mp).call(this)},r),"f"),!0}return!1},Oo=function(){if(K(this,ve,"f").size===0)return K(this,Ue,"f")&&clearInterval(K(this,Ue,"f")),Ct(this,Ue,void 0,"f"),this.emit("empty"),K(this,_e,"f")===0&&this.emit("idle"),!1;if(!K(this,Kr,"f")){let t=!K(this,kt,"a",yp);if(K(this,kt,"a",dp)&&K(this,kt,"a",pp)){let r=K(this,ve,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,kt,"m",Qu).call(this),!0):!1}}return!1},Qu=function(){K(this,us,"f")||K(this,Ue,"f")!==void 0||(Ct(this,Ue,setInterval(()=>{K(this,kt,"m",Xu).call(this)},K(this,ls,"f")),"f"),Ct(this,Do,Date.now()+K(this,ls,"f"),"f"))},Xu=function(){K(this,Vr,"f")===0&&K(this,_e,"f")===0&&K(this,Ue,"f")&&(clearInterval(K(this,Ue,"f")),Ct(this,Ue,void 0,"f")),Ct(this,Vr,K(this,cs,"f")?K(this,_e,"f"):0,"f"),K(this,kt,"m",Fo).call(this)},Fo=function(){for(;K(this,kt,"m",Oo).call(this););},xp=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new Ko("The task was aborted."))},{once:!0})})},Mo=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var qr=Zu;var Ju=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},ju=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Ep=e=>globalThis.DOMException===void 0?new ju(e):new DOMException(e),bp=e=>{let t=e.reason===void 0?Ep("This operation was aborted."):e.reason;return t instanceof Error?t:Ep(t)};function tl(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,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(t.signal){let{signal:h}=t;h.aborted&&l(bp(h)),h.addEventListener("abort",()=>{l(bp(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,l);return}let f=new Ju;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){l(h)}return}typeof e.cancel=="function"&&e.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 e)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var el="lock:worker:request-read",rl="lock:worker:release-read",nl="lock:master:grant-read",il="lock:worker:request-write",sl="lock:worker:release-write",ol="lock:master:grant-write";var $r={},di=e=>{e.addEventListener("message",t=>{di.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{di.dispatchEvent("message",e,t)})};di.addEventListener=(e,t)=>{$r[e]==null&&($r[e]=[]),$r[e].push(t)};di.removeEventListener=(e,t)=>{$r[e]!=null&&($r[e]=$r[e].filter(r=>r===t))};di.dispatchEvent=function(e,t,r){$r[e]!=null&&$r[e].forEach(n=>n(t,r))};var al=di;var wp=(e,t,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};e.dispatchEvent(new MessageEvent(t,{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)}))}}))},vp=(e,t,r,n)=>async()=>{let i=bo();return globalThis.postMessage({type:t,identifier:i,name:e}),await 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:e})}))};globalThis.addEventListener("message",o)})},pw={singleProcess:!1},_p=e=>{if(e=Object.assign({},pw,e),!!globalThis.document||e.singleProcess){let r=new EventTarget;return al.addEventListener("message",wp(r,"requestReadLock",el,rl,nl)),al.addEventListener("message",wp(r,"requestWriteLock",il,sl,ol)),r}return{isWorker:!0,readLock:r=>vp(r,el,nl,rl),writeLock:r=>vp(r,il,ol,sl)}};var Cn={},zr;async function cl(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await tl((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var mw=(e,t)=>{if(zr.isWorker===!0)return{readLock:zr.readLock(e,t),writeLock:zr.writeLock(e,t)};let r=new qr({concurrency:1}),n;return{async readLock(){if(n!=null)return await cl(n,t);n=new qr({concurrency:t.concurrency,autoStart:!1});let i=n,s=cl(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await cl(r,t)}}},yw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function ul(e){let t=Object.assign({},yw,e);return zr==null&&(zr=_p(t),zr.isWorker!==!0&&(zr.addEventListener("requestReadLock",r=>{Cn[r.data.name]!=null&&Cn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),zr.addEventListener("requestWriteLock",async r=>{Cn[r.data.name]!=null&&Cn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Cn[t.name]==null&&(Cn[t.name]=mw(t.name,t)),Cn[t.name]}var re={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var pi;(function(e){let t;(function(i){let s;i.codec=()=>(s==null&&(s=ee((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=>te(o,i.codec()),i.decode=o=>jt(o,i.codec())})(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=ee((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),qo.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=qo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>te(o,i.codec()),i.decode=o=>jt(o,i.codec())})(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={}));let n;e.codec=()=>(n==null&&(n=ee((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Vo.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),e.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),e.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(Vo.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=e.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=e.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),e.encode=i=>te(i,e.codec()),e.decode=i=>jt(i,e.codec())})(pi||(pi={}));var Vo;(function(e){let t;e.codec=()=>(t==null&&(t=ee((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})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(Vo||(Vo={}));var qo;(function(e){let t;e.codec=()=>(t==null&&(t=ee((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})),t),e.encode=r=>te(r,e.codec()),e.decode=r=>jt(r,e.codec())})(qo||(qo={}));function mi(e,t){let r=pi.decode(t);r.publicKey!=null&&e.publicKey==null&&(e=Ed({...e,publicKey:e.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:e,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:qt(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var ll="/peers/";function yi(e){if(!Eo(e)||e.type==null)throw new w("Invalid PeerId",re.ERR_INVALID_PARAMETERS);let t=e.toCID().toString();return new Ze(`${ll}${t}`)}async function Sp(e,t,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=qt(i.multiaddr)),!Fr(i.multiaddr))throw new w("Multiaddr was invalid",re.ERR_INVALID_PARAMETERS);if(!await t(e,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 zo(e,t,r,n){if(t==null)throw new w("Invalid PeerData",re.ERR_INVALID_PARAMETERS);if(t.publicKey!=null&&e.publicKey!=null&&!Rt(t.publicKey,e.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",re.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!e.equals(i.id))throw new w("peer id did not match existing peer id",re.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((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=$o(f,{validate:Ap})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=$o(f,{validate:Ip,map:Rp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(r==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[h,p]of f)p==null?a.delete(h):a.set(h,p);a=$o([...a.entries()],{validate:Ap})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),h=new Map(c);for(let[p,d]of f)d==null?h.delete(p):h.set(p,d);c=$o([...h.entries()],{validate:Ip,map:Rp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let l={addresses:await Sp(e,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,h)=>f.localeCompare(h)),metadata:a,tags:c,publicKey:i?.id.publicKey??t.publicKey??e.publicKey,peerRecordEnvelope:u};return e.type!=="RSA"&&delete l.publicKey,l}function $o(e,t){let r=new Map;for(let[n,i]of e)i!=null&&t.validate(n,i);for(let[n,i]of e.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,t.map?.(n,i)??i);return r}function Ap(e,t){if(typeof e!="string")throw new w("Metadata key must be a string",re.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",re.ERR_INVALID_PARAMETERS)}function Ip(e,t){if(typeof e!="string")throw new w("Tag name must be a string",re.ERR_INVALID_PARAMETERS);if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new w("Tag value must be an integer",re.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new w("Tag value must be between 0-100",re.ERR_INVALID_PARAMETERS)}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new w("Tag ttl must be an integer",re.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new w("Tag ttl must be between greater than 0",re.ERR_INVALID_PARAMETERS)}}function Rp(e,t){let r;return t.expiry!=null&&(r=t.expiry),t.ttl!=null&&(r=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:r}}function Ho(e,t,r){let n=e.toString().split("/")[2],i=me.decode(n),s=si(i),o=r.get(s);if(o!=null)return o;let a=mi(s,t);return r.set(s,a),a}function gw(e,t){return e==null?{}:{prefix:ll,filters:(e.filters??[]).map(r=>({key:n,value:i})=>r(Ho(n,i,t))),orders:(e.orders??[]).map(r=>(n,i)=>r(Ho(n.key,n.value,t),Ho(i.key,i.value,t)))}}var Go=class{peerId;datastore;lock;addressFilter;constructor(t,r={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=r.addressFilter,this.lock=ul({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(yi(t))}async delete(t){if(this.peerId.equals(t))throw new w("Cannot delete self peer",re.ERR_INVALID_PARAMETERS);await this.datastore.delete(yi(t))}async load(t){let r=await this.datastore.get(yi(t));return mi(t,r)}async save(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await zo(t,r,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,i)}async patch(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await zo(t,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async merge(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await zo(t,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async*all(t){let r=new we;for await(let{key:n,value:i}of this.datastore.query(gw(t??{},r))){let s=Ho(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let r=await this.datastore.get(yi(t)),n=mi(t,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#e(t,r,n,i){let s=pi.encode(r);return n!=null&&Rt(s,n)?{peer:mi(t,s),previous:i,updated:!1}:(await this.datastore.put(yi(t),s),{peer:mi(t,s),previous:i,updated:!0})}};var Et=Nt("libp2p:peer-store"),Yo=class{store;events;peerId;constructor(t,r={}){this.events=t.events,this.peerId=t.peerId,this.store=new Go(t,r)}async forEach(t,r){Et.trace("forEach await read lock");let n=await this.store.lock.readLock();Et.trace("forEach got read lock");try{for await(let i of this.store.all(r))t(i)}finally{Et.trace("forEach release read lock"),n()}}async all(t){Et.trace("all await read lock");let r=await this.store.lock.readLock();Et.trace("all got read lock");try{return await is(this.store.all(t))}finally{Et.trace("all release read lock"),r()}}async delete(t){Et.trace("delete await write lock");let r=await this.store.lock.writeLock();Et.trace("delete got write lock");try{await this.store.delete(t)}finally{Et.trace("delete release write lock"),r()}}async has(t){Et.trace("has await read lock");let r=await this.store.lock.readLock();Et.trace("has got read lock");try{return await this.store.has(t)}finally{Et.trace("has release read lock"),r()}}async get(t){Et.trace("get await read lock");let r=await this.store.lock.readLock();Et.trace("get got read lock");try{return await this.store.load(t)}finally{Et.trace("get release read lock"),r()}}async save(t,r){Et.trace("save await write lock");let n=await this.store.lock.writeLock();Et.trace("save got write lock");try{let i=await this.store.save(t,r);return this.#t(t,i),i.peer}finally{Et.trace("save release write lock"),n()}}async patch(t,r){Et.trace("patch await write lock");let n=await this.store.lock.writeLock();Et.trace("patch got write lock");try{let i=await this.store.patch(t,r);return this.#t(t,i),i.peer}finally{Et.trace("patch release write lock"),n()}}async merge(t,r){Et.trace("merge await write lock");let n=await this.store.lock.writeLock();Et.trace("merge got write lock");try{let i=await this.store.merge(t,r);return this.#t(t,i),i.peer}finally{Et.trace("merge release write lock"),n()}}async consumePeerRecord(t,r){let n=await ui.openAndCertify(t,In.DOMAIN);if(r?.equals(n.peerId)===!1)return Et("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=In.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 ui.createFromProtobuf(s.peerRecordEnvelope),a=In.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return Et("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:t,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#t(t,r){r.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function xw(e){return e[Symbol.asyncIterator]!=null}function Ew(e){if(xw(e))return(async()=>{for await(let t of e);})();for(let t of e);}var fl=Ew;function bw(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var Wo=bw;function ww(e){return e[Symbol.asyncIterator]!=null}function vw(e,t){if(ww(e))return async function*(){for await(let a of e)await t(a)&&(yield a)}();let r=Wo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await t(a)&&(yield a)}();let o=t;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var Fe=vw;function _w(e){return e[Symbol.asyncIterator]!=null}function Sw(e,t){return _w(e)?async function*(){yield*(await is(e)).sort(t)}():function*(){yield*is(e).sort(t)}()}var hl=Sw;function Aw(e){return e[Symbol.asyncIterator]!=null}function Iw(e,t){return Aw(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var dl=Iw;var Qo=class{put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield n}async*getMany(t,r={}){for await(let n of t)yield{key:n,value:await this.get(n,r)}}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await fl(this.putMany(t,n)),t=[],await fl(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null){let i=t.prefix;n=Fe(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Fe(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>hl(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=Fe(n,()=>i++>=s)}return t.limit!=null&&(n=dl(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null){let i=t.prefix;n=Fe(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Fe(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>hl(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=Fe(n,()=>s++>=i)}return t.limit!=null&&(n=dl(n,t.limit)),n}};var Bp=mt(pl(),1);function Lp(e){return e=e??new Error("Not Found"),(0,Bp.default)(e,"ERR_NOT_FOUND")}var Xo=class extends Qo{data;constructor(){super(),this.data=new Map}put(t,r){return this.data.set(t.toString(),r),t}get(t){let r=this.data.get(t.toString());if(r==null)throw Lp();return r}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,r]of this.data.entries())yield{key:new Ze(t),value:r}}*_allKeys(){for(let t of this.data.keys())yield new Ze(t)}};function Pp(e,t){let r;return function(){let n=function(){r=void 0,e()};clearTimeout(r),r=setTimeout(n,t)}}var Tw=Nt("libp2p:address-manager"),Bw=e=>e;function ml(e,t){let r=e.getPeerId();return r!=null&&ut(r).equals(t)&&(e=e.decapsulate(qt(`/p2p/${t.toString()}`))),e}var Zo=class{components;listen;announce;observed;announceFilter;constructor(t,r={}){let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Bw,this._updatePeerStoreAddresses=Pp(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let t=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>qt(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:t}).catch(r=>{Tw.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(t=>qt(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>qt(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>qt(t))}addObservedAddr(t){t=ml(t,this.components.peerId);let r=t.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(t){t=ml(t,this.components.peerId);let r=t.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=ml(t,this.components.peerId);let r=t.toString();this.observed.delete(r)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>qt(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function Dp(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var yl=class{components={};_started=!1;constructor(t={}){this.components={};for(let[r,n]of Object.entries(t))this.components[r]=n;this.components.logger==null&&(this.components.logger=xo())}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(r=>Dp(r)).map(async r=>{await r[t]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},Lw=["metrics","connectionProtector"],Pw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Np(e={}){let t=new yl(e);return new Proxy(t,{get(n,i,s){if(typeof i=="string"&&!Pw.includes(i)){let o=t.components[i];if(o==null&&!Lw.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?t.components[i]=s:Reflect.set(n,i,s),!0}})}var Vp=mt(kp(),1);var Op="[a-fA-F\\d:]",Hr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${Op})|(?<=${Op})(?=\\s|$))`:"",Ke="(?: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}",Ft="[a-fA-F\\d]{1,4}",Jo=`
|
|
38
38
|
(?:
|
|
39
|
-
(?:${
|
|
40
|
-
(?:${
|
|
41
|
-
(?:${
|
|
42
|
-
(?:${
|
|
43
|
-
(?:${
|
|
44
|
-
(?:${
|
|
45
|
-
(?:${
|
|
46
|
-
(?::(?:(?::${
|
|
39
|
+
(?:${Ft}:){7}(?:${Ft}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
40
|
+
(?:${Ft}:){6}(?:${Ke}|:${Ft}|:)| // 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
|
|
41
|
+
(?:${Ft}:){5}(?::${Ke}|(?::${Ft}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
|
|
42
|
+
(?:${Ft}:){4}(?:(?::${Ft}){0,1}:${Ke}|(?::${Ft}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
|
|
43
|
+
(?:${Ft}:){3}(?:(?::${Ft}){0,2}:${Ke}|(?::${Ft}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
|
|
44
|
+
(?:${Ft}:){2}(?:(?::${Ft}){0,3}:${Ke}|(?::${Ft}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
|
|
45
|
+
(?:${Ft}:){1}(?:(?::${Ft}){0,4}:${Ke}|(?::${Ft}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
46
|
+
(?::(?:(?::${Ft}){0,5}:${Ke}|(?::${Ft}){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(),Kw=new RegExp(`(?:^${He}$)|(?:^${ia}$)`),Vw=new RegExp(`^${He}$`),qw=new RegExp(`^${ia}$`),_l=e=>e&&e.exact?Kw:new RegExp(`(?:${Xr(e)}${He}${Xr(e)})|(?:${Xr(e)}${ia}${Xr(e)})`,"g");_l.v4=e=>e&&e.exact?Vw:new RegExp(`${Xr(e)}${He}${Xr(e)}`,"g");_l.v6=e=>e&&e.exact?qw:new RegExp(`${Xr(e)}${ia}${Xr(e)}`,"g");var $p=_l;var Wp=yt(Hp(),1),{isValid:$w,parse:zw}=Wp.default,Hw=["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"],Gw=Hw.map(e=>new Yp.Netmask(e));function Yw(e){for(let t of Gw)if(t.contains(e))return!0;return!1}function Gp(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var Qp=e=>{if($w(e)){let t=zw(e);if(t.kind()==="ipv4")return Yw(t.toNormalizedString());if(t.kind()==="ipv6")return Gp(e)}else if(gi(e)&&$p.v6().test(e))return Gp(e)};var oa=Qp;function Xp(e={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{let r=t.stringTuples();return r[0][0]===4||r[0][0]===41?!!oa(`${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,...e}}var dB=Symbol.for("@libp2p/transport");var Zr;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(Zr||(Zr={}));var Ww=e=>e.toString().split("/").slice(1),bs=e=>({match:t=>t.length<1?!1:e(t[0])?t.slice(1):!1,pattern:"fn"}),Mt=e=>({match:t=>bs(r=>r===e).match(t),pattern:e}),ua=()=>({match:e=>bs(t=>typeof t=="string").match(e),pattern:"{string}"}),Zp=()=>({match:e=>bs(t=>!isNaN(parseInt(t))).match(e),pattern:"{number}"}),Ne=()=>({match:e=>{if(e.length<2||e[0]!=="p2p"&&e[0]!=="ipfs")return!1;if(e[1].startsWith("Q")||e[1].startsWith("1"))try{Ct.decode(`z${e[1]}`)}catch{return!1}else return!1;return e.slice(2)},pattern:"/p2p/{peerid}"}),aa=()=>({match:e=>{if(e.length<2||e[0]!=="certhash")return!1;try{xc.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),ir=e=>({match:t=>{let r=e.match(t);return r===!1?t:r},pattern:`optional(${e.pattern})`}),sr=(...e)=>({match:t=>{let r;for(let n of e){let i=n.match(t);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${e.map(t=>t.pattern).join(", ")})`}),Ut=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${e.map(t=>t.pattern).join(", ")})`});function Ht(...e){function t(i){let s=Ww(i);for(let o of e){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return t(i)!==!1}function n(i){let s=t(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Al=Ut(Mt("dns4"),ua()),Il=Ut(Mt("dns6"),ua()),Rl=Ut(Mt("dnsaddr"),ua()),Jp=Ut(Mt("dns"),ua()),EB=Ht(Al),bB=Ht(Il),wB=Ht(Rl),vB=Ht(sr(Jp,Rl,Al,Il)),jp=Ut(Mt("ip4"),bs(No)),tm=Ut(Mt("ip6"),bs(ko)),em=sr(jp,tm),ws=sr(em,Jp,Al,Il,Rl),_B=Ht(ws),SB=Ht(jp),AB=Ht(tm),IB=Ht(em),la=Ut(ws,Mt("tcp"),Zp()),vs=Ut(ws,Mt("udp"),Zp()),Qw=sr(la,vs),RB=Ht(la),CB=Ht(vs),Cl=Ut(vs,Mt("quic")),fa=Ut(vs,Mt("quic-v1")),Xw=sr(Cl,fa),TB=Ht(Cl),BB=Ht(fa),Sl=sr(ws,la,vs,Cl,fa),rm=sr(Ut(Sl,Mt("ws"),ir(Ne()))),LB=Ht(rm),nm=sr(Ut(Sl,Mt("wss"),ir(Ne())),Ut(Sl,Mt("tls"),Mt("ws"),ir(Ne()))),PB=Ht(nm),im=Ut(Qw,Mt("webrtc-direct"),aa(),ir(aa()),ir(Ne())),DB=Ht(im),sm=Ut(fa,Mt("webtransport"),aa(),aa(),ir(Ne())),NB=Ht(sm),ca=sr(rm,nm,Ut(la,ir(Ne())),Ut(Xw,ir(Ne())),Ut(ws,ir(Ne())),im,sm,Ne()),kB=Ht(ca),Zw=Ut(ca,Mt("p2p-circuit"),Ne()),Tl=Ht(Zw),Jw=sr(Ut(ca,Mt("p2p-circuit"),Mt("webrtc"),Ne()),Ut(ca,Mt("webrtc"),ir(Ne())),Mt("webrtc")),OB=Ht(Jw);function Bl(e){try{let{address:t}=e.nodeAddress();return!!oa(t)}catch{return!0}}function jw(e,t){let r=Bl(e.multiaddr),n=Bl(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function tv(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}function ev(e,t){let r=Tl.exactMatch(e.multiaddr),n=Tl.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function _i(e,t){let r=jw(e,t);if(r!==0)return r;let n=ev(e,t);return n!==0?n:tv(e,t)}var Pl=yt(Au(),1),Dl=yt(cm(),1);function ha(e,t,r){return`${e}?name=${t}&type=${r}`}async function um(e,t){return await(await fetch(e,{headers:new Headers({accept:"application/dns-json"}),signal:t})).json()}function Nn(e,t){return`${t}_${e}`}var Ll=Object.assign((0,Pl.default)("dns-over-http-resolver"),{error:(0,Pl.default)("dns-over-http-resolver:error")}),Nl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(t={}){this._cache=new Dl.default({max:t?.maxCache??100}),this._TXTcache=new Dl.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??um,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>{t.abort()})}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return this.resolve4(t);case"AAAA":return this.resolve6(t);case"TXT":return this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Nn(t,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(ha(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Nn(t,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(ha(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Nn(t,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(ha(s,t,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(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},lm=Nl;var fm=lm;var{code:ov}=pt("dnsaddr");async function Si(e,t={}){let r=new fm;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.stringTuples().find(([a])=>a===ov)??[];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 or;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(or||(or={}));var F;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var av={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:Si},addressSorter:_i},transportManager:{faultTolerance:Zr.FATAL_ALL}};function hm(e){let t=qr(av,e);if(t.transports==null||t.transports.length<1)throw new w(or.ERR_TRANSPORTS_REQUIRED,F.ERR_TRANSPORTS_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(or.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return t}var dm="keep-alive";var hy=yt(ay(),1);var $v=rt("libp2p:get-peer");function pa(e){if(Ao(e))return{peerId:e,multiaddrs:[]};Array.isArray(e)||(e=[e]);let t;if(e.length>0){let r=e[0].getPeerId();t=r==null?void 0:lt(r),e.forEach(n=>{if(!zr(n))throw $v.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(t!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=lt(i);if(t==null||!t.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:t,multiaddrs:e}}function zv(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Xl=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",F.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(s);return}let o=zv(this.#t,s,(a,c)=>c.priority-a.priority);this.#t.splice(o,0,s)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},ma=class extends Yr{constructor(t={}){super({...t,queueClass:Xl})}hasJob(t){return this.sizeBy({peerId:t})>0}};var ya="last-dial-failure";var ga=5,xa=100,Ea=50,cy=1e3*60*7;var Zt=rt("libp2p:connection-manager:auto-dial"),kn={minConnections:ga,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:cy,autoDialDiscoveredPeersDebounce:10},ba=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;constructor(t,r){this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.minConnections=r.minConnections??kn.minConnections,this.autoDialPriority=r.autoDialPriority??kn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??kn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??kn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??kn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??kn.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new ma({concurrency:r.autoDialConcurrency??kn.autoDialConcurrency}),this.queue.addListener("error",i=>{Zt.error("error during auto-dial",i)}),t.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{Zt.error(i)})});let n;t.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{Zt.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let t=this.connectionManager.getConnectionsMap(),r=t.size;if(r>=this.minConnections){this.minConnections>0&&Zt.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){Zt("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){Zt("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,Zt("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Bn(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(Zt.trace("not autodialing %p because they have no addresses",u.id),!1):t.has(u.id)?(Zt.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(Zt.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(Zt.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new Ae;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,h=o.get(l.id)??0;return f>h?-1:f<h?1:0}).filter(u=>{let l=u.metadata.get(ya);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});Zt("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){Zt("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}Zt("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{Zt.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{Zt.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var Ti=rt("libp2p:connection-manager:connection-pruner"),uy={maxConnections:xa,allow:[]},wa=class{maxConnections;connectionManager;peerStore;allow;events;constructor(t,r={}){this.maxConnections=r.maxConnections??uy.maxConnections,this.allow=r.allow??uy.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,t.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{Ti.error(n)})})}async maybePruneConnections(){let t=this.connectionManager.getConnections(),r=t.length,n=Math.max(r-this.maxConnections,0);if(Ti("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Ti("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new Ae;for(let a of t){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"&&Ti.error("error loading peer tags",u)}}}let s=t.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,h=c.timeline.open;return f<h?1:f>h?-1:0}),o=[];for(let a of s)if(Ti("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){Ti.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function va(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}function jr(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var ly=rt("libp2p:connection-manager:utils");async function tf(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];let n=await Yv(e,t),o=(await Promise.all(n.map(async a=>tf(a,t)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return ly("resolved %s to",e,o.map(a=>a.toString())),o}async function Yv(e,t){try{return e=zt(e.toString()),await e.resolve(t)}catch(r){return ly.error(`multiaddr ${e.toString()} could not be resolved`,r),[]}}function fy(...e){let t=[];for(let n of e)n!=null&&(ve(1/0,n),t.push(n));let r=va(t);return ve(1/0,r),r}var Vt=rt("libp2p:connection-manager:dial-queue"),Ss={addressSorter:_i,maxParallelDials:Ea,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:Si}},_a=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;constructor(t,r={}){this.addressSorter=r.addressSorter??Ss.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??Ss.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??Ss.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??Ss.dialTimeout,this.connections=r.connections??new Ae,this.peerId=t.peerId,this.peerStore=t.peerStore,this.connectionGater=t.connectionGater,this.transportManager=t.transportManager,this.shutDownController=new AbortController,ve(1/0,this.shutDownController.signal),this.pendingDialCount=t.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=t.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))Mo.set(n,i);this.queue=new Yr({concurrency:r.maxParallelDials??Ss.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=>{Vt.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)})}stop(){this.shutDownController.abort()}async dial(t,r={}){let{peerId:n,multiaddrs:i}=pa(t),s=i.map(h=>({multiaddr:h,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(h){throw o.clear(),h}let c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:a.find(p=>p.multiaddr.equals(h.remoteAddr)));if(c!=null)return Vt("already connected to %a",c.remoteAddr),c;let u=this.pendingDials.find(h=>!!(h.peerId!=null&&n!=null&&h.peerId.equals(n)||a.map(({multiaddr:p})=>p.toString()).join()===h.multiaddrs.map(p=>p.toString()).join()));if(u!=null)return Vt("joining existing dial target for %p",n),o.clear(),u.promise;Vt("creating dial target for",a.map(({multiaddr:h})=>h.toString()));let l={id:Wv(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:h})=>h)};l.promise=this.performDial(l,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(h=>h.id!==l.id),o.clear()}).catch(async h=>{if(Vt.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),h),n!=null)try{await this.peerStore.patch(n,{metadata:{[ya]:H(Date.now().toString())}})}catch(p){Vt.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new w(h.message,F.ERR_TIMEOUT):h}),this.pendingDials.push(l);let f=await l.promise;return c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:h.id!==f.id&&h.remoteAddr.equals(f.remoteAddr)),c!=null?(Vt("already connected to %a",c.remoteAddr),await f.close(),c):(Vt("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(t){let r=va([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,t]);try{ve?.(1/0,r)}catch{}return r}async calculateMultiaddrs(t,r=[],n={}){if(t!=null){if(this.peerId.equals(t))throw new w("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(t)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){Vt("loading multiaddrs for %p",t);try{let l=await this.peerStore.get(t);r.push(...l.addresses),Vt("loaded multiaddrs for %p",t,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 tf(l.multiaddr,n);return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(t!=null){let l=`/p2p/${t.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 t!=null&&f!=null?t.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),h=o.get(f);if(h!=null){h.isCertified=h.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(Vt("addresses for %p before filtering",t??"unknown peer",i.map(({multiaddr:l})=>l.toString())),Vt("addresses for %p after filtering",t??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("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 w("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(t,r={}){let n=t.multiaddrs.map(()=>new AbortController);try{let i=new Yr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{Vt.error("error dialling",o)});let s=await Promise.any(t.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=fy(c.signal,r.signal);u.addEventListener("abort",()=>{Vt("dial to %a aborted",o)});let l=jr();return await i.add(async()=>{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Gn);return}await this.queue.add(async()=>{try{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Gn);return}t.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){Vt("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{Vt.error("error closing superfluous connection",h)}),l.reject(new Gn);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),Vt("dial to %a succeeded",o),l.resolve(f)}catch(f){Vt.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 w("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return t.status="success",s}catch(i){throw t.status="error",t.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Wv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Te=rt("libp2p:connection-manager"),Zv=50,On={minConnections:ga,maxConnections:xa,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Sa=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;constructor(t,r={}){this.maxConnections=r.maxConnections??On.maxConnections;let n=r.minConnections??On.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new Ae,this.started=!1,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,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=>zt(i)),this.deny=(r.deny??[]).map(i=>zt(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??On.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new hy.RateLimiterMemory({points:r.inboundConnectionThreshold??On.inboundConnectionThreshold,duration:1}),this.autoDial=new ba({connectionManager:this,peerStore:t.peerStore,events:t.events},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??On.autoDialConcurrency,autoDialPriority:r.autoDialPriority??On.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??On.autoDialMaxQueueLength}),this.connectionPruner=new wa({connectionManager:this,peerStore:t.peerStore,events:t.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new _a({peerId:t.peerId,metrics:t.metrics,peerStore:t.peerStore,transportManager:t.transportManager,connectionGater:t.connectionGater},{addressSorter:r.addressSorter??_i,maxParallelDials:r.maxParallelDials??Ea,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Si},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};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"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let 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))t[o]=t[o]??[],t[o].push(a)}let r={};for(let[n,i]of Object.entries(t)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,Te("started")}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[r=>r.tags.has(dm)]});await Promise.all(t.map(async r=>{await this.openConnection(r.id).catch(n=>{Te.error(n)})}))}).catch(t=>{Te.error(t)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){Te.error(i)}})());Te("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),Te("stopped")}onConnect(t){this._onConnect(t).catch(r=>{Te.error(r)})}async _onConnect(t){let{detail:r}=t;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(t){let{detail:r}=t;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(t){if(t!=null)return this.connections.get(t)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=pa(t);if(n!=null&&r.force!==!0){Te("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return Te("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(t,{...r,priority:r.priority??Zv}),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(t,r={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Te("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return Te("connection from %a refused - incomingPendingConnections exceeded by host",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Te("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(Te("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var Aa=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Bi=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Aa(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new Aa(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var sf=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mn(e={}){return Jv(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}},e)}function Jv(e,t){t=t??{};let r=t.onEnd,n=new Bi,i,s,o,a=jr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(e(n))}catch(b){g(b)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=jr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new Bi,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(t?.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})},h=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new Bi,h(),{done:!0}),d=y=>(h(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:f,end:h,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((C,_)=>{b=()=>{_(new sf)},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}},i}function jv(e){return e[Symbol.asyncIterator]!=null}function t_(...e){let t=[];for(let r of e)jv(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var tn=t_;function Un(e,...t){if(e==null)throw new Error("Empty pipeline");if(of(e)){let n=e;e=()=>n.source}else if(py(e)||dy(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&of(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)of(r[n])&&(r[n]=r_(r[n]));return e_(...r)}var e_=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},dy=e=>e?.[Symbol.asyncIterator]!=null,py=e=>e?.[Symbol.iterator]!=null,of=e=>e==null?!1:e.sink!=null&&e.source!=null,r_=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=e.source;if(dy(s))i=async function*(){yield*s,n.end()};else if(py(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return tn(n,i())}return e.source};function n_(e){return e[Symbol.asyncIterator]!=null}function i_(e,t){if(n_(e))return async function*(){for await(let a of e)yield t(a)}();let r=ta(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield t(a)}();let o=t;return function*(){yield s;for(let a of r)yield o(a)}()}var my=i_;async function*As(e,t){yield*my(e,async r=>(await t.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function Ia(e){let t=new Set;return ze(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*Ra(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw new w(`more peers required, seen: ${r} min: ${t}`,"NOT_FOUND")}var Ca=class{routers;started;components;constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(tn(...this.routers.map(n=>n.findProviders(t,r))),n=>As(n,this.components.peerStore),n=>Ia(n),n=>Ra(n))}async provide(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,r)}))}async put(t,r,n){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(t,r,n)}))}async get(t,r){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(t,r)))}};function s_(e){return e[Symbol.asyncIterator]!=null}function o_(e){if(s_(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var Ta=o_;var a_=rt("libp2p:peer-routing"),Ba=class{components;routers;constructor(t,r){this.components=t,this.routers=r.routers??[]}async findPeer(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",F.ERR_FIND_SELF);let n=await Un(tn(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(s){a_.error(s)}}())),i=>ze(i,Boolean),i=>As(i,this.components.peerStore),async i=>Ta(i));if(n!=null)return n;throw new w(or.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(tn(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>As(n,this.components.peerStore),n=>Ia(n),n=>Ra(n))}};var c_=rt("libp2p:registrar"),af=32,cf=64,La=class{topologies;handlers;components;constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(t){let r=this.handlers.get(t);if(r==null)throw new w(`No handler registered for protocol ${t}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=qr.bind({ignoreUndefined:!0})({maxInboundStreams:af,maxOutboundStreams:cf},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,r){if(r==null)throw new w("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.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&&c_.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(t){let{peer:r,previous:n}=t.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(t){let r=t.detail.protocols,n=t.detail.connection,i=t.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 uf=class extends Map{metric;constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function yy(e){let{name:t,metrics:r}=e,n;return r!=null?n=new uf({name:t,metrics:r}):n=new Map,n}var en=rt("libp2p:transports"),Pa=class{components;transports;listeners;faultTolerance;started;constructor(t,r={}){this.components=t,this.started=!1,this.transports=new Map,this.listeners=yy({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Zr.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);en("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[r,n]of this.listeners)for(en("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),en("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);if(t==null||t.length===0){en("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(t),o=[];for(let u of s){en("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 h=f.findIndex(p=>p===l);f.splice(h,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!==Zr.NO_FATAL)throw new w(`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===Zr.FATAL_ALL)throw new w(n,F.ERR_NO_VALID_ADDRESSES);en(`libp2p in dial mode only: ${n}`)}}async remove(t){let r=this.listeners.get(t)??[];en.trace("removing transport %s",t);let n=[];for(en.trace("closing listeners for %s",t);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var Rr="/multistream/1.0.0";function lf(e){let t=async function*(){let r=yield,n=new Xt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Xt;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Xt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function Da(e){let t=Mn(),r=lf(e.source),n=jr(),i,s=e.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var Is=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function gy(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function xy(e,t,r){let n=r??{},i=gy(e);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new Is(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:p}=n;f(new Is(h,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function Na(e){return e[Symbol.asyncIterator]!=null}var ka=e=>{let t=ge(e),r=ae(t);return De(e,r),ka.bytes=t,r};ka.bytes=0;function Oa(e,t){t=t??{};let r=t.lengthEncoder??ka;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Na(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Oa.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??ka;return new Xt(r(e.byteLength),e)};var Li=yt(bl(),1);var u_=8,l_=1024*1024*4,Fn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Fn||(Fn={}));var ff=e=>{let t=Ar(e);return ff.bytes=ge(t),t};ff.bytes=0;function Rs(e,t){let r=new Xt,n=Fn.LENGTH,i=-1,s=t?.lengthDecoder??ff,o=t?.maxLengthLength??u_,a=t?.maxDataLength??l_;function*c(){for(;r.byteLength>0;){if(n===Fn.LENGTH)try{if(i=s(r),i<0)throw(0,Li.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Li.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Fn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,Li.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Fn.LENGTH}}}return Na(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Rs.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await e.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 Rs(n,{...t??{},onLength:s=>{r=s}})};var d_=rt("libp2p:mss"),Ey=H(`
|
|
49
|
-
`);function Cs(e){let t=new Xt(e,Ey);return Oa.single(t)}function Kn(e,t,r={}){let n=Cs(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function by(e,t,r={}){let n=new Xt;for(let i of t)n.append(Cs(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function p_(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)},i=n;t?.signal!=null&&(i=xy(n,t.signal));let s=a=>{r=a},o=await Un(i,a=>Rs(a,{onLength:s,maxDataLength:1024}),async a=>Ta(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Ey[0])throw d_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Pi(e,t){let r=await p_(e,t);return X(r.subarray())}var Ts=rt("libp2p:mss:select");async function Bs(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=Da(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Ts.trace('select: write ["%s", "%s"]',Rr,a);let c=H(Rr),u=H(a);by(i,[c,u],r);let l=await Pi(n,r);if(Ts.trace('select: read "%s"',l),l===Rr&&(l=await Pi(n,r),Ts.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of t){Ts.trace('select: write "%s"',f),Kn(i,H(f),r);let h=await Pi(n,r);if(Ts.trace('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Ls=rt("libp2p:mss:handle");async function Ps(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=Da(e);for(;;){let a=await Pi(i,r);if(Ls.trace('read "%s"',a),a===Rr){Ls.trace('respond with "%s" for "%s"',Rr,a),Kn(n,H(Rr),r);continue}if(t.includes(a))return Kn(n,H(a),r),Ls.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Kn(n,new Xt(...t.map(c=>Cs(H(c)))),r),Ls.trace('respond with "%s" for %s',t,a);continue}Kn(n,H("na"),r),Ls('respond with "na" for "%s"',a)}}var vy=Symbol.for("@libp2p/connection");var Vn=rt("libp2p:connection"),y_=500,hf=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.transient=t.transient??!1,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";[vy]=!0;get streams(){return this._getStreams()}async newStream(t,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(t)||(t=[t]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(t,r);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){Vn("closing connection to %a",this.remoteAddr),this.status="closing",t.signal=t?.signal??AbortSignal.timeout(y_),ve(1/0,t.signal);try{Vn.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(t))),Vn.trace("closing underlying transport"),await this._close(t),Vn.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){Vn.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(t){Vn.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this.streams.forEach(r=>{r.abort(t)}),Vn.error("all streams aborted",this.streams.length),this._abort(t),this.timeline.close=Date.now(),this.status="closed"}};function _y(e){return new hf(e)}var Et=rt("libp2p:upgrader");function x_(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return af}function E_(e,t,r={}){try{let{options:n}=t.getHandler(e);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??cf}function Sy(e,t,r){let n=0;return r.streams.forEach(i=>{i.direction===t&&i.protocol===e&&n++}),n}var Ma=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(t,r){this.components=t,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=t.events}async shouldBlockConnection(t,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(t,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{t.abort(new w("inbound upgrade timeout",F.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0}),ve(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Et("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(Et("protecting the inbound connection"),f=await h.protect(t))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let h={...f,...i};await this.shouldBlockConnection(s,h,"denyInboundEncryptedConnection")}else{let h=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=lt(h);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...f,...i},this.muxers);a=h.muxerFactory,o=h.stream}}catch(h){throw Et.error("Failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,t,"denyInboundUpgradedConnection"),Et("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;n!=null&&(i=lt(n),await this.shouldBlockConnection(i,t,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),Et("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}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 w("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 Et.error("Failed to upgrade outbound connection",f),await t.close(f),f}return await this.shouldBlockConnection(o,t,"denyOutboundUpgradedConnection"),Et("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=t,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:d=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Ps(d,m);if(Et("%s: incoming stream opened on %s",n,g),f==null)return;let x=x_(g,this.components.registrar);if(Sy(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(C),C}d.source=y.source,d.sink=y.sink,d.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(d,f),this._onStream({connection:f,stream:d,protocol:g})}).catch(async m=>{Et.error(m),d.timeline.close==null&&await d.close()})}}),l=async(d,m={})=>{if(u==null)throw new w("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);Et("%s-%s: starting new stream on %s",f.id,n,d);let y=await u.newStream();try{m.signal==null&&(Et("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),m.signal=AbortSignal.timeout(3e4),ve(1/0,m.signal));let{stream:g,protocol:x}=await Bs(y,d,m),b=E_(x,this.components.registrar,m);if(Sy(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw Et.error("could not create new stream for protocols %s on connection with address %a",d,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{Et.error(d)}));let h=i.timeline;i.timeline=new Proxy(h,{set:(...d)=>(f!=null&&d[1]==="close"&&d[2]!=null&&h.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){Et.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{Et.error(m)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=_y({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(Et.trace("close muxer"),await u.close(d)),Et.trace("close maconn"),await i.close(d),Et.trace("closed maconn")},abort:d=>{i.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());Et("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Ps(t,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Et("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());Et("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Bs(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Et("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());Et("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Bs(t,n,{writeBytes:!0});Et("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing outbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());Et("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ps(t,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing inbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var xe=rt("libp2p"),df=class extends ss{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;components;#t;constructor(t){super();let r=new ss,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new wu(c.type,{detail:c.detail}));return u||l},ve(1/0,r),this.#t=!1,this.peerId=t.peerId,this.services={};let i=this.components=Kp({peerId:t.peerId,events:r,datastore:t.datastore??new ra,connectionGater:Xp(t.connectionGater)});this.peerStore=this.configureComponent("peerStore",new jo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(i)),this.components.upgrader=new Ma(this.components,{connectionEncryption:(t.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(t.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Pa(this.components,t.transportManager)),this.configureComponent("connectionManager",new Sa(this.components,t.connectionManager)),this.configureComponent("registrar",new La(this.components)),this.configureComponent("addressManager",new na(this.components,t.addresses));let s=Tn.generateOptions();this.keychain=this.configureComponent("keyChain",new Tn(this.components,{...s,...t.keychain}));let o=(t.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ba(this.components,{routers:o}));let a=(t.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ca(this.components,{routers:a})),(t.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#e(f)})}),t.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),t.services!=null)for(let c of Object.keys(t.services)){let u=t.services[c],l=u(this.components);if(l==null){xe.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[Eu]!=null&&(xe("registering service %s for content routing",c),a.push(l[Eu])),l[_u]!=null&&(xe("registering service %s for peer routing",c),o.push(l[_u])),l[vu]!=null&&(xe("registering service %s for peer discovery",c),l[vu].addEventListener("peer",f=>{this.#e(f)}))}}configureComponent(t,r){return r==null&&xe.error("component %s was null or undefined",t),this.components[t]=r,r}async start(){if(this.#t)return;this.#t=!0,xe("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(xe("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),xe("libp2p has started")}catch(r){throw xe.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#t&&(xe("libp2p is stopping"),this.#t=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),xe("libp2p has stopped"))}isStarted(){return this.#t}getConnections(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new Bn;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw new w("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 w("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,r={}){zr(t)&&(t=lt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,r)}async getPublicKey(t,r={}){if(xe("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.id.publicKey!=null)return n.id.publicKey;let i=kt([H("/pk/"),t.multihash.digest]),s=await this.contentRouting.get(i,r);return ns(s),await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return this.components.registrar.register(t,r)}unregister(t){this.components.registrar.unregister(t)}#e(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){xe.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{xe.error(n)})}};async function Ay(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Tn({datastore:t},qr(Tn.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await Yd()),new df(hm(e))}async function b_(e){let t=await Ay(e);return e.start!==!1&&await t.start(),t}return Fy(w_);})();
|
|
48
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Dw=new RegExp(`(?:^${Ke}$)|(?:^${Jo}$)`),Nw=new RegExp(`^${Ke}$`),kw=new RegExp(`^${Jo}$`),gl=e=>e&&e.exact?Dw:new RegExp(`(?:${Hr(e)}${Ke}${Hr(e)})|(?:${Hr(e)}${Jo}${Hr(e)})`,"g");gl.v4=e=>e&&e.exact?Nw:new RegExp(`${Hr(e)}${Ke}${Hr(e)}`,"g");gl.v6=e=>e&&e.exact?kw:new RegExp(`${Hr(e)}${Jo}${Hr(e)}`,"g");var Mp=gl;var qp=mt(Fp(),1),{isValid:Ow,parse:Mw}=qp.default,Uw=["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"],Fw=Uw.map(e=>new Vp.Netmask(e));function Kw(e){for(let t of Fw)if(t.contains(e))return!0;return!1}function Kp(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var $p=e=>{if(Ow(e)){let t=Mw(e);if(t.kind()==="ipv4")return Kw(t.toNormalizedString());if(t.kind()==="ipv6")return Kp(e)}else if(fi(e)&&Mp.v6().test(e))return Kp(e)};var ta=$p;function zp(e={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{let r=t.stringTuples();return r[0][0]===4||r[0][0]===41?!!ta(`${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,...e}}var fB=Symbol.for("@libp2p/transport");var Gr;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(Gr||(Gr={}));var Vw=e=>e.toString().split("/").slice(1),ds=e=>({match:t=>t.length<1?!1:e(t[0])?t.slice(1):!1,pattern:"fn"}),Ot=e=>({match:t=>ds(r=>r===e).match(t),pattern:e}),na=()=>({match:e=>ds(t=>typeof t=="string").match(e),pattern:"{string}"}),Hp=()=>({match:e=>ds(t=>!isNaN(parseInt(t))).match(e),pattern:"{number}"}),Te=()=>({match:e=>{if(e.length<2||e[0]!=="p2p"&&e[0]!=="ipfs")return!1;if(e[1].startsWith("Q")||e[1].startsWith("1"))try{It.decode(`z${e[1]}`)}catch{return!1}else return!1;return e.slice(2)},pattern:"/p2p/{peerid}"}),ea=()=>({match:e=>{if(e.length<2||e[0]!=="certhash")return!1;try{hc.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),je=e=>({match:t=>{let r=e.match(t);return r===!1?t:r},pattern:`optional(${e.pattern})`}),tr=(...e)=>({match:t=>{let r;for(let n of e){let i=n.match(t);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${e.map(t=>t.pattern).join(", ")})`}),Mt=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${e.map(t=>t.pattern).join(", ")})`});function $t(...e){function t(i){let s=Vw(i);for(let o of e){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return t(i)!==!1}function n(i){let s=t(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var El=Mt(Ot("dns4"),na()),bl=Mt(Ot("dns6"),na()),wl=Mt(Ot("dnsaddr"),na()),Gp=Mt(Ot("dns"),na()),gB=$t(El),xB=$t(bl),EB=$t(wl),bB=$t(tr(Gp,wl,El,bl)),Yp=Mt(Ot("ip4"),ds(Co)),Wp=Mt(Ot("ip6"),ds(To)),Qp=tr(Yp,Wp),ps=tr(Qp,Gp,El,bl,wl),wB=$t(ps),vB=$t(Yp),_B=$t(Wp),SB=$t(Qp),ia=Mt(ps,Ot("tcp"),Hp()),ms=Mt(ps,Ot("udp"),Hp()),qw=tr(ia,ms),AB=$t(ia),IB=$t(ms),vl=Mt(ms,Ot("quic")),sa=Mt(ms,Ot("quic-v1")),$w=tr(vl,sa),RB=$t(vl),CB=$t(sa),xl=tr(ps,ia,ms,vl,sa),Xp=tr(Mt(xl,Ot("ws"),je(Te()))),TB=$t(Xp),Zp=tr(Mt(xl,Ot("wss"),je(Te())),Mt(xl,Ot("tls"),Ot("ws"),je(Te()))),BB=$t(Zp),Jp=Mt(qw,Ot("webrtc-direct"),ea(),je(ea()),je(Te())),LB=$t(Jp),jp=Mt(sa,Ot("webtransport"),ea(),ea(),je(Te())),PB=$t(jp),ra=tr(Xp,Zp,Mt(ia,je(Te())),Mt($w,je(Te())),Mt(ps,je(Te())),Jp,jp,Te()),DB=$t(ra),zw=Mt(ra,Ot("p2p-circuit"),Te()),_l=$t(zw),Hw=tr(Mt(ra,Ot("p2p-circuit"),Ot("webrtc"),Te()),Mt(ra,Ot("webrtc"),je(Te())),Ot("webrtc")),NB=$t(Hw);function Sl(e){try{let{address:t}=e.nodeAddress();return!!ta(t)}catch{return!0}}function Gw(e,t){let r=Sl(e.multiaddr),n=Sl(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function Yw(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}function Ww(e,t){let r=_l.exactMatch(e.multiaddr),n=_l.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function gi(e,t){let r=Gw(e,t);if(r!==0)return r;let n=Ww(e,t);return n!==0?n:Yw(e,t)}var Il=mt(Eu(),1),Rl=mt(rm(),1);function oa(e,t,r){return`${e}?name=${t}&type=${r}`}async function nm(e,t){return await(await fetch(e,{headers:new Headers({accept:"application/dns-json"}),signal:t})).json()}function Tn(e,t){return`${t}_${e}`}var Al=Object.assign((0,Il.default)("dns-over-http-resolver"),{error:(0,Il.default)("dns-over-http-resolver:error")}),Cl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(t={}){this._cache=new Rl.default({max:t?.maxCache??100}),this._TXTcache=new Rl.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??nm,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>{t.abort()})}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return this.resolve4(t);case"AAAA":return this.resolve6(t);case"TXT":return this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Tn(t,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(oa(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Tn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Al.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Tn(t,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(oa(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Tn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Al.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Tn(t,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(oa(s,t,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(Tn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Al.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},im=Cl;var sm=im;var{code:jw}=dt("dnsaddr");async function xi(e,t={}){let r=new sm;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.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 er;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(er||(er={}));var F;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var tv={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:xi},addressSorter:gi},transportManager:{faultTolerance:Gr.FATAL_ALL}};function om(e){let t=Mr(tv,e);if(t.transports==null||t.transports.length<1)throw new w(er.ERR_TRANSPORTS_REQUIRED,F.ERR_TRANSPORTS_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(er.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return t}var am="keep-alive";var sy=mt(ey(),1);var Ov=Nt("libp2p:get-peer");function ca(e){if(Eo(e))return{peerId:e,multiaddrs:[]};Array.isArray(e)||(e=[e]);let t;if(e.length>0){let r=e[0].getPeerId();t=r==null?void 0:ut(r),e.forEach(n=>{if(!Fr(n))throw Ov.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(t!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=ut(i);if(t==null||!t.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:t,multiaddrs:e}}function Mv(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var zl=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",F.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(s);return}let o=Mv(this.#t,s,(a,c)=>c.priority-a.priority);this.#t.splice(o,0,s)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},ua=class extends qr{constructor(t={}){super({...t,queueClass:zl})}hasJob(t){return this.sizeBy({peerId:t})>0}};var la="last-dial-failure";var fa=5,ha=100,da=50,ry=1e3*60*7;var Bn={minConnections:fa,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:ry,autoDialDiscoveredPeersDebounce:10},pa=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;#t;constructor(t,r){this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.minConnections=r.minConnections??Bn.minConnections,this.autoDialPriority=r.autoDialPriority??Bn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??Bn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??Bn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??Bn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??Bn.autoDialDiscoveredPeersDebounce,this.#t=t.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new ua({concurrency:r.autoDialConcurrency??Bn.autoDialConcurrency}),this.queue.addListener("error",i=>{this.#t.error("error during auto-dial",i)}),t.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{this.#t.error(i)})});let n;t.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{this.#t.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(t=>{this.#t.error("error while autodialing",t)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(t=>{this.#t.error("error while autodialing",t)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let t=this.connectionManager.getConnectionsMap(),r=t.size;if(r>=this.minConnections){this.minConnections>0&&this.#t.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.#t("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){this.#t("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,this.#t("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new An(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.#t.trace("not autodialing %p because they have no addresses",u.id),!1):t.has(u.id)?(this.#t.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.#t.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(this.#t.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new we;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,h=o.get(l.id)??0;return f>h?-1:f<h?1:0}).filter(u=>{let l=u.metadata.get(la);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});this.#t("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.#t("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}this.#t("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{this.#t.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{this.#t.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var ny={maxConnections:ha,allow:[]},ma=class{maxConnections;connectionManager;peerStore;allow;events;#t;constructor(t,r={}){this.maxConnections=r.maxConnections??ny.maxConnections,this.allow=r.allow??ny.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,this.#t=t.logger.forComponent("libp2p:connection-manager:connection-pruner"),t.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.#t.error(n)})})}async maybePruneConnections(){let t=this.connectionManager.getConnections(),r=t.length,n=Math.max(r-this.maxConnections,0);if(this.#t("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;this.#t("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new we;for(let a of t){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.#t.error("error loading peer tags",u)}}}let s=t.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,h=c.timeline.open;return f<h?1:f>h?-1:0}),o=[];for(let a of s)if(this.#t("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.#t.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function ya(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}function Wr(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}async function Wl(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];let n=await Kv(e,t),o=(await Promise.all(n.map(async a=>Wl(a,t)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return t.log("resolved %s to",e,o.map(a=>a.toString())),o}async function Kv(e,t){try{return e=qt(e.toString()),await e.resolve(t)}catch(r){return t.log.error(`multiaddr ${e.toString()} could not be resolved`,r),[]}}function iy(...e){let t=[];for(let n of e)n!=null&&(xe(1/0,n),t.push(n));let r=ya(t);return xe(1/0,r),r}var gs={addressSorter:gi,maxParallelDials:da,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:xi}},ga=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;#t;constructor(t,r={}){this.addressSorter=r.addressSorter??gs.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??gs.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??gs.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??gs.dialTimeout,this.connections=r.connections??new we,this.#t=t.logger.forComponent("libp2p:connection-manager:dial-queue"),this.peerId=t.peerId,this.peerStore=t.peerStore,this.connectionGater=t.connectionGater,this.transportManager=t.transportManager,this.shutDownController=new AbortController,xe(1/0,this.shutDownController.signal),this.pendingDialCount=t.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=t.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))Lo.set(n,i);this.queue=new qr({concurrency:r.maxParallelDials??gs.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.#t.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)})}stop(){this.shutDownController.abort()}async dial(t,r={}){let{peerId:n,multiaddrs:i}=ca(t),s=i.map(h=>({multiaddr:h,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(h){throw o.clear(),h}let c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:a.find(p=>p.multiaddr.equals(h.remoteAddr)));if(c!=null)return this.#t("already connected to %a",c.remoteAddr),c;let u=this.pendingDials.find(h=>!!(h.peerId!=null&&n!=null&&h.peerId.equals(n)||a.map(({multiaddr:p})=>p.toString()).join()===h.multiaddrs.map(p=>p.toString()).join()));if(u!=null)return this.#t("joining existing dial target for %p",n),o.clear(),u.promise;this.#t("creating dial target for",a.map(({multiaddr:h})=>h.toString()));let l={id:Vv(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:h})=>h)};l.promise=this.performDial(l,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(h=>h.id!==l.id),o.clear()}).catch(async h=>{if(this.#t.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),h),n!=null)try{await this.peerStore.patch(n,{metadata:{[la]:H(Date.now().toString())}})}catch(p){this.#t.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new w(h.message,F.ERR_TIMEOUT):h}),this.pendingDials.push(l);let f=await l.promise;return c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:h.id!==f.id&&h.remoteAddr.equals(f.remoteAddr)),c!=null?(this.#t("already connected to %a",c.remoteAddr),await f.close(),c):(this.#t("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(t){let r=ya([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,t]);try{xe?.(1/0,r)}catch{}return r}async calculateMultiaddrs(t,r=[],n={}){if(t!=null){if(this.peerId.equals(t))throw new w("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(t)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){this.#t("loading multiaddrs for %p",t);try{let l=await this.peerStore.get(t);r.push(...l.addresses),this.#t("loaded multiaddrs for %p",t,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 Wl(l.multiaddr,{...n,log:this.#t});return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(t!=null){let l=`/p2p/${t.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 t!=null&&f!=null?t.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),h=o.get(f);if(h!=null){h.isCertified=h.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(this.#t("addresses for %p before filtering",t??"unknown peer",i.map(({multiaddr:l})=>l.toString())),this.#t("addresses for %p after filtering",t??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("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 w("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(t,r={}){let n=t.multiaddrs.map(()=>new AbortController);try{let i=new qr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{this.#t.error("error dialling",o)});let s=await Promise.any(t.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=iy(c.signal,r.signal);u.addEventListener("abort",()=>{this.#t("dial to %a aborted",o)});let l=Wr();return await i.add(async()=>{if(u.aborted){this.#t("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Kn);return}await this.queue.add(async()=>{try{if(u.aborted){this.#t("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Kn);return}t.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){this.#t("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{this.#t.error("error closing superfluous connection",h)}),l.reject(new Kn);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),this.#t("dial to %a succeeded",o),l.resolve(f)}catch(f){this.#t.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 w("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return t.status="success",s}catch(i){throw t.status="error",t.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Vv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var zv=50,Ln={minConnections:fa,maxConnections:ha,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},xa=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;#t;constructor(t,r={}){this.maxConnections=r.maxConnections??Ln.maxConnections;let n=r.minConnections??Ln.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new we,this.started=!1,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,this.#t=t.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=>qt(i)),this.deny=(r.deny??[]).map(i=>qt(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??Ln.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new sy.RateLimiterMemory({points:r.inboundConnectionThreshold??Ln.inboundConnectionThreshold,duration:1}),this.autoDial=new pa({connectionManager:this,peerStore:t.peerStore,events:t.events,logger:t.logger},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??Ln.autoDialConcurrency,autoDialPriority:r.autoDialPriority??Ln.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??Ln.autoDialMaxQueueLength}),this.connectionPruner=new ma({connectionManager:this,peerStore:t.peerStore,events:t.events,logger:t.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new ga({peerId:t.peerId,metrics:t.metrics,peerStore:t.peerStore,transportManager:t.transportManager,connectionGater:t.connectionGater,logger:t.logger},{addressSorter:r.addressSorter??gi,maxParallelDials:r.maxParallelDials??da,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:xi},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};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"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let 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))t[o]=t[o]??[],t[o].push(a)}let r={};for(let[n,i]of Object.entries(t)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,this.#t("started")}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[r=>r.tags.has(am)]});await Promise.all(t.map(async r=>{await this.openConnection(r.id).catch(n=>{this.#t.error(n)})}))}).catch(t=>{this.#t.error(t)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){this.#t.error(i)}})());this.#t("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),this.#t("stopped")}onConnect(t){this._onConnect(t).catch(r=>{this.#t.error(r)})}async _onConnect(t){let{detail:r}=t;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(t){let{detail:r}=t;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(t){if(t!=null)return this.connections.get(t)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=ca(t);if(n!=null&&r.force!==!0){this.#t("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.#t("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(t,{...r,priority:r.priority??zv}),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(t,r={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.#t("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.#t("connection from %a refused - incomingPendingConnections exceeded by host",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return this.#t("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.#t("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var Ea=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},_i=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Ea(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new Ea(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Jl=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Pn(e={}){return Hv(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}},e)}function Hv(e,t){t=t??{};let r=t.onEnd,n=new _i,i,s,o,a=Wr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(e(n))}catch(b){g(b)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Wr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new _i,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(t?.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})},h=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new _i,h(),{done:!0}),d=y=>(h(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:f,end:h,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((C,_)=>{b=()=>{_(new Jl)},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}},i}function Gv(e){return e[Symbol.asyncIterator]!=null}function Yv(...e){let t=[];for(let r of e)Gv(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Pn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Qr=Yv;function Dn(e,...t){if(e==null)throw new Error("Empty pipeline");if(jl(e)){let n=e;e=()=>n.source}else if(ay(e)||oy(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&jl(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)jl(r[n])&&(r[n]=Qv(r[n]));return Wv(...r)}var Wv=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},oy=e=>e?.[Symbol.asyncIterator]!=null,ay=e=>e?.[Symbol.iterator]!=null,jl=e=>e==null?!1:e.sink!=null&&e.source!=null,Qv=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Pn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=e.source;if(oy(s))i=async function*(){yield*s,n.end()};else if(ay(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Qr(n,i())}return e.source};function Xv(e){return e[Symbol.asyncIterator]!=null}function Zv(e,t){if(Xv(e))return async function*(){for await(let a of e)yield t(a)}();let r=Wo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield t(a)}();let o=t;return function*(){yield s;for(let a of r)yield o(a)}()}var cy=Zv;async function*xs(e,t){yield*cy(e,async r=>(await t.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function ba(e){let t=new Set;return Fe(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*wa(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw new w(`more peers required, seen: ${r} min: ${t}`,"NOT_FOUND")}var va=class{routers;started;components;constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Dn(Qr(...this.routers.map(n=>n.findProviders(t,r))),n=>xs(n,this.components.peerStore),n=>ba(n),n=>wa(n))}async provide(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,r)}))}async put(t,r,n){if(!this.isStarted())throw new w(er.NOT_STARTED_YET,F.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(t,r,n)}))}async get(t,r){if(!this.isStarted())throw new w(er.NOT_STARTED_YET,F.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(t,r)))}};function Jv(e){return e[Symbol.asyncIterator]!=null}function jv(e){if(Jv(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var _a=jv;var t_=Nt("libp2p:peer-routing"),Sa=class{components;routers;constructor(t,r){this.components=t,this.routers=r.routers??[]}async findPeer(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",F.ERR_FIND_SELF);let n=await Dn(Qr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(s){t_.error(s)}}())),i=>Fe(i,Boolean),i=>xs(i,this.components.peerStore),async i=>_a(i));if(n!=null)return n;throw new w(er.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Dn(Qr(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>xs(n,this.components.peerStore),n=>ba(n),n=>wa(n))}};var e_=Nt("libp2p:registrar"),tf=32,ef=64,Aa=class{topologies;handlers;components;constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(t){let r=this.handlers.get(t);if(r==null)throw new w(`No handler registered for protocol ${t}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Mr.bind({ignoreUndefined:!0})({maxInboundStreams:tf,maxOutboundStreams:ef},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,r){if(r==null)throw new w("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.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&&e_.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(t){let{peer:r,previous:n}=t.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(t){let r=t.detail.protocols,n=t.detail.connection,i=t.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 rf=class extends Map{metric;constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function uy(e){let{name:t,metrics:r}=e,n;return r!=null?n=new rf({name:t,metrics:r}):n=new Map,n}var Xr=Nt("libp2p:transports"),Ia=class{components;transports;listeners;faultTolerance;started;constructor(t,r={}){this.components=t,this.started=!1,this.transports=new Map,this.listeners=uy({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Gr.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);Xr("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[r,n]of this.listeners)for(Xr("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),Xr("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);if(t==null||t.length===0){Xr("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(t),o=[];for(let u of s){Xr("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 h=f.findIndex(p=>p===l);f.splice(h,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 w(`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 w(n,F.ERR_NO_VALID_ADDRESSES);Xr(`libp2p in dial mode only: ${n}`)}}async remove(t){let r=this.listeners.get(t)??[];Xr.trace("removing transport %s",t);let n=[];for(Xr.trace("closing listeners for %s",t);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var vr="/multistream/1.0.0";function nf(e){let t=async function*(){let r=yield,n=new Wt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Wt;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Wt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function Ra(e){let t=Pn(),r=nf(e.source),n=Wr(),i,s=e.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var Es=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ly(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function fy(e,t,r){let n=r??{},i=ly(e);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new Es(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:p}=n;f(new Es(h,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function Ca(e){return e[Symbol.asyncIterator]!=null}var Ta=e=>{let t=pe(e),r=ie(t);return Ce(e,r),Ta.bytes=t,r};Ta.bytes=0;function Ba(e,t){t=t??{};let r=t.lengthEncoder??Ta;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Ca(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Ba.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Ta;return new Wt(r(e.byteLength),e)};var Si=mt(pl(),1);var r_=8,n_=1024*1024*4,Nn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Nn||(Nn={}));var sf=e=>{let t=br(e);return sf.bytes=pe(t),t};sf.bytes=0;function bs(e,t){let r=new Wt,n=Nn.LENGTH,i=-1,s=t?.lengthDecoder??sf,o=t?.maxLengthLength??r_,a=t?.maxDataLength??n_;function*c(){for(;r.byteLength>0;){if(n===Nn.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),t?.onLength!=null&&t.onLength(i),n=Nn.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===Nn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Nn.LENGTH}}}return Ca(e)?async function*(){for await(let u of e)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 e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Si.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}bs.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await e.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 bs(n,{...t??{},onLength:s=>{r=s}})};var o_=Nt("libp2p:mss"),hy=H(`
|
|
49
|
+
`);function ws(e){let t=new Wt(e,hy);return Ba.single(t)}function kn(e,t,r={}){let n=ws(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function dy(e,t,r={}){let n=new Wt;for(let i of t)n.append(ws(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function a_(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)},i=n;t?.signal!=null&&(i=fy(n,t.signal));let s=a=>{r=a},o=await Dn(i,a=>bs(a,{onLength:s,maxDataLength:1024}),async a=>_a(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==hy[0])throw o_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ai(e,t){let r=await a_(e,t);return X(r.subarray())}var vs=Nt("libp2p:mss:select");async function _s(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=Ra(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");vs.trace('select: write ["%s", "%s"]',vr,a);let c=H(vr),u=H(a);dy(i,[c,u],r);let l=await Ai(n,r);if(vs.trace('select: read "%s"',l),l===vr&&(l=await Ai(n,r),vs.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of t){vs.trace('select: write "%s"',f),kn(i,H(f),r);let h=await Ai(n,r);if(vs.trace('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Ss=Nt("libp2p:mss:handle");async function As(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=Ra(e);for(;;){let a=await Ai(i,r);if(Ss.trace('read "%s"',a),a===vr){Ss.trace('respond with "%s" for "%s"',vr,a),kn(n,H(vr),r);continue}if(t.includes(a))return kn(n,H(a),r),Ss.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){kn(n,new Wt(...t.map(c=>ws(H(c)))),r),Ss.trace('respond with "%s" for %s',t,a);continue}kn(n,H("na"),r),Ss('respond with "na" for "%s"',a)}}var my=Symbol.for("@libp2p/connection");var u_=500,of=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;#t;constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.transient=t.transient??!1,this.#t=t.logger.forComponent("libp2p:connection"),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";[my]=!0;get streams(){return this._getStreams()}async newStream(t,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(t)||(t=[t]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(t,r);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){if(this.#t("closing connection to %a",this.remoteAddr),this.status="closing",t.signal==null){let r=AbortSignal.timeout(u_);xe(1/0,r),t={...t,signal:r}}try{this.#t.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(t))),this.#t.trace("closing underlying transport"),await this._close(t),this.#t.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){this.#t.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(t){this.#t.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this.streams.forEach(r=>{r.abort(t)}),this.#t.error("all streams aborted",this.streams.length),this._abort(t),this.timeline.close=Date.now(),this.status="closed"}};function yy(e){return new of(e)}var f_=3e4;function h_(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return tf}function d_(e,t,r={}){try{let{options:n}=t.getHandler(e);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??ef}function gy(e,t,r){let n=0;return r.streams.forEach(i=>{i.direction===t&&i.protocol===e&&n++}),n}var La=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;#t;constructor(t,r){this.components=t,this.connectionEncryption=new Map,this.#t=t.logger.forComponent("libp2p:upgrader"),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=t.events}async shouldBlockConnection(t,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(t,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{t.abort(new w("inbound upgrade timeout",F.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0}),xe(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),this.#t("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(this.#t("protecting the inbound connection"),f=await h.protect(t))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let h={...f,...i};await this.shouldBlockConnection(s,h,"denyInboundEncryptedConnection")}else{let h=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=ut(h);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...f,...i},this.muxers);a=h.muxerFactory,o=h.stream}}catch(h){throw this.#t.error("Failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,t,"denyInboundUpgradedConnection"),this.#t("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;n!=null&&(i=ut(n),await this.shouldBlockConnection(i,t,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),this.#t("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}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 w("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 this.#t.error("Failed to upgrade outbound connection",f),await t.close(f),f}return await this.shouldBlockConnection(o,t,"denyOutboundUpgradedConnection"),this.#t("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=t,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:d=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await As(d,m);if(this.#t("%s: incoming stream opened on %s",n,g),f==null)return;let x=h_(g,this.components.registrar);if(gy(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(C),C}d.source=y.source,d.sink=y.sink,d.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(d,f),this._onStream({connection:f,stream:d,protocol:g})}).catch(async m=>{this.#t.error(m),d.timeline.close==null&&await d.close()})}}),l=async(d,m={})=>{if(u==null)throw new w("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);this.#t("%s-%s: starting new stream on %s",f.id,n,d);let y=await u.newStream();try{if(m.signal==null){this.#t("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d);let _=AbortSignal.timeout(f_);xe(1/0,_),m={...m,signal:_}}let{stream:g,protocol:x}=await _s(y,d,m),b=d_(x,this.components.registrar,m);if(gy(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw this.#t.error("could not create new stream for protocols %s on connection with address %a",d,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{this.#t.error(d)}));let h=i.timeline;i.timeline=new Proxy(h,{set:(...d)=>(f!=null&&d[1]==="close"&&d[2]!=null&&h.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){this.#t.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{this.#t.error(m)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=yy({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 d=>{u!=null&&(this.#t.trace("close muxer"),await u.close(d)),this.#t.trace("close maconn"),await i.close(d),this.#t.trace("closed maconn")},abort:d=>{i.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());this.#t("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await As(t,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return this.#t("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());this.#t("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await _s(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return this.#t("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());this.#t("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await _s(t,n,{writeBytes:!0});this.#t("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw this.#t.error("error multiplexing outbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());this.#t("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await As(t,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw this.#t.error("error multiplexing inbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var af=class extends Ji{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;logger;components;#t;#e;constructor(t){super();let r=new Ji,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new mu(c.type,{detail:c.detail}));return u||l},xe(1/0,r),this.#t=!1,this.peerId=t.peerId,this.logger=t.logger??xo(),this.#e=this.logger.forComponent("libp2p"),this.services={};let i=this.components=Np({peerId:t.peerId,logger:this.logger,events:r,datastore:t.datastore??new Xo,connectionGater:zp(t.connectionGater)});this.peerStore=this.configureComponent("peerStore",new Yo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(i)),this.components.upgrader=new La(this.components,{connectionEncryption:(t.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(t.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Ia(this.components,t.transportManager)),this.configureComponent("connectionManager",new xa(this.components,t.connectionManager)),this.configureComponent("registrar",new Aa(this.components)),this.configureComponent("addressManager",new Zo(this.components,t.addresses));let s=Sn.generateOptions();this.keychain=this.configureComponent("keyChain",new Sn(this.components,{...s,...t.keychain}));let o=(t.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Sa(this.components,{routers:o}));let a=(t.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new va(this.components,{routers:a})),(t.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#r(f)})}),t.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),t.services!=null)for(let c of Object.keys(t.services)){let u=t.services[c],l=u(this.components);if(l==null){this.#e.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[du]!=null&&(this.#e("registering service %s for content routing",c),a.push(l[du])),l[gu]!=null&&(this.#e("registering service %s for peer routing",c),o.push(l[gu])),l[yu]!=null&&(this.#e("registering service %s for peer discovery",c),l[yu].addEventListener("peer",f=>{this.#r(f)}))}}configureComponent(t,r){return r==null&&this.#e.error("component %s was null or undefined",t),this.components[t]=r,r}async start(){if(this.#t)return;this.#t=!0,this.#e("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(this.#e("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),this.#e("libp2p has started")}catch(r){throw this.#e.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#t&&(this.#e("libp2p is stopping"),this.#t=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),this.#e("libp2p has stopped"))}isStarted(){return this.#t}getConnections(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new An;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw new w("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 w("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,r={}){Fr(t)&&(t=ut(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,r)}async getPublicKey(t,r={}){if(this.#e("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.id.publicKey!=null)return n.id.publicKey;let i=Dt([H("/pk/"),t.multihash.digest]),s=await this.contentRouting.get(i,r);return Xi(s),await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return this.components.registrar.register(t,r)}unregister(t){this.components.registrar.unregister(t)}#r(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){this.#e.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{this.#e.error(n)})}};async function xy(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Sn({datastore:t},Mr(Sn.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await Vd()),new af(om(e))}async function p_(e){let t=await xy(e);return e.start!==!1&&await t.start(),t}return Py(m_);})();
|
|
50
50
|
/*! Bundled license information:
|
|
51
51
|
|
|
52
52
|
@noble/hashes/esm/utils.js:
|