libp2p 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +5 -4
  2. package/dist/index.min.js +58 -0
  3. package/dist/src/address-manager/index.d.ts +8 -0
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/circuit/index.d.ts +11 -1
  7. package/dist/src/circuit/index.d.ts.map +1 -1
  8. package/dist/src/circuit/index.js.map +1 -1
  9. package/dist/src/circuit/transport.d.ts +1 -1
  10. package/dist/src/circuit/transport.d.ts.map +1 -1
  11. package/dist/src/config.js +1 -1
  12. package/dist/src/config.js.map +1 -1
  13. package/dist/src/connection-manager/index.d.ts +9 -28
  14. package/dist/src/connection-manager/index.d.ts.map +1 -1
  15. package/dist/src/connection-manager/index.js +23 -12
  16. package/dist/src/connection-manager/index.js.map +1 -1
  17. package/dist/src/fetch/index.d.ts +14 -0
  18. package/dist/src/fetch/index.d.ts.map +1 -1
  19. package/dist/src/fetch/index.js +14 -0
  20. package/dist/src/fetch/index.js.map +1 -1
  21. package/dist/src/identify/index.d.ts +4 -1
  22. package/dist/src/identify/index.d.ts.map +1 -1
  23. package/dist/src/index.d.ts +123 -137
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +34 -0
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/insecure/index.d.ts +23 -0
  28. package/dist/src/insecure/index.d.ts.map +1 -1
  29. package/dist/src/insecure/index.js +23 -0
  30. package/dist/src/insecure/index.js.map +1 -1
  31. package/dist/src/keychain/index.d.ts +2 -2
  32. package/dist/src/keychain/index.d.ts.map +1 -1
  33. package/dist/src/libp2p.d.ts +5 -2
  34. package/dist/src/libp2p.d.ts.map +1 -1
  35. package/dist/src/libp2p.js +16 -0
  36. package/dist/src/libp2p.js.map +1 -1
  37. package/dist/src/nat-manager.d.ts.map +1 -1
  38. package/dist/src/nat-manager.js +5 -1
  39. package/dist/src/nat-manager.js.map +1 -1
  40. package/dist/src/peer-routing.d.ts +1 -1
  41. package/dist/src/peer-routing.d.ts.map +1 -1
  42. package/dist/src/peer-routing.js +1 -1
  43. package/dist/src/peer-routing.js.map +1 -1
  44. package/dist/src/pnet/index.d.ts +23 -0
  45. package/dist/src/pnet/index.d.ts.map +1 -1
  46. package/dist/src/pnet/index.js +23 -0
  47. package/dist/src/pnet/index.js.map +1 -1
  48. package/dist/src/pnet/key-generator.d.ts +3 -2
  49. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  50. package/dist/src/pnet/key-generator.js +7 -10
  51. package/dist/src/pnet/key-generator.js.map +1 -1
  52. package/dist/src/transport-manager.d.ts +1 -13
  53. package/dist/src/transport-manager.d.ts.map +1 -1
  54. package/dist/src/transport-manager.js +1 -14
  55. package/dist/src/transport-manager.js.map +1 -1
  56. package/package.json +30 -32
  57. package/src/address-manager/index.ts +8 -0
  58. package/src/circuit/index.ts +13 -1
  59. package/src/circuit/transport.ts +1 -1
  60. package/src/config.ts +1 -1
  61. package/src/connection-manager/index.ts +49 -56
  62. package/src/fetch/README.md +7 -2
  63. package/src/fetch/index.ts +14 -0
  64. package/src/identify/index.ts +1 -1
  65. package/src/index.ts +130 -149
  66. package/src/insecure/index.ts +24 -0
  67. package/src/keychain/index.ts +2 -2
  68. package/src/libp2p.ts +22 -2
  69. package/src/nat-manager.ts +6 -1
  70. package/src/peer-routing.ts +2 -2
  71. package/src/pnet/README.md +31 -29
  72. package/src/pnet/index.ts +24 -0
  73. package/src/pnet/key-generator.ts +7 -12
  74. package/src/transport-manager.ts +1 -15
  75. package/src/version.ts +1 -1
@@ -0,0 +1,58 @@
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 h1=Object.create;var Jo=Object.defineProperty;var d1=Object.getOwnPropertyDescriptor;var p1=Object.getOwnPropertyNames;var m1=Object.getPrototypeOf,y1=Object.prototype.hasOwnProperty;var N=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),pt=(t,e)=>{for(var r in e)Jo(t,r,{get:e[r],enumerable:!0})},wd=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of p1(e))!y1.call(t,i)&&i!==r&&Jo(t,i,{get:()=>e[i],enumerable:!(n=d1(e,i))||n.enumerable});return t};var C=(t,e,r)=>(r=t!=null?h1(m1(t)):{},wd(e||!t||!t.__esModule?Jo(r,"default",{value:t,enumerable:!0}):r,t)),g1=t=>wd(Jo({},"__esModule",{value:!0}),t);var Du=N((uT,xd)=>{var Ti=1e3,Ri=Ti*60,Ni=Ri*60,Hn=Ni*24,E1=Hn*7,v1=Hn*365.25;xd.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return w1(t);if(r==="number"&&isFinite(t))return e.long?b1(t):x1(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function w1(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*v1;case"weeks":case"week":case"w":return r*E1;case"days":case"day":case"d":return r*Hn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ni;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ri;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ti;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function x1(t){var e=Math.abs(t);return e>=Hn?Math.round(t/Hn)+"d":e>=Ni?Math.round(t/Ni)+"h":e>=Ri?Math.round(t/Ri)+"m":e>=Ti?Math.round(t/Ti)+"s":t+"ms"}function b1(t){var e=Math.abs(t);return e>=Hn?ea(t,e,Hn,"day"):e>=Ni?ea(t,e,Ni,"hour"):e>=Ri?ea(t,e,Ri,"minute"):e>=Ti?ea(t,e,Ti,"second"):t+" ms"}function ea(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Sd=N((lT,bd)=>{function S1(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Du(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let 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=e;function r(l){let f,h=null,d,p;function y(...g){if(!y.enabled)return;let E=y,x=Number(new Date),_=x-(f||x);E.diff=_,E.prev=f,E.curr=x,f=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let B=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(L,te)=>{if(L==="%%")return"%";B++;let ae=r.formatters[te];if(typeof ae=="function"){let st=g[B];L=ae.call(E,st),g.splice(B,1),B--}return L}),r.formatArgs.call(E,g),(E.log||r.log).apply(E,g)}return y.namespace=l,y.useColors=r.useColors(),y.color=r.selectColor(l),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(d!==r.namespaces&&(d=r.namespaces,p=r.enabled(l)),p),set:g=>{h=g}}),typeof r.init=="function"&&r.init(y),y}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,]+/),d=h.length;for(f=0;f<d;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}bd.exports=S1});var Lu=N((Tt,ta)=>{Tt.formatArgs=A1;Tt.save=C1;Tt.load=I1;Tt.useColors=_1;Tt.storage=T1();Tt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Tt.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 _1(){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 A1(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+ta.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}Tt.log=console.debug||console.log||(()=>{});function C1(t){try{t?Tt.storage.setItem("debug",t):Tt.storage.removeItem("debug")}catch{}}function I1(){let t;try{t=Tt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function T1(){try{return localStorage}catch{}}ta.exports=Sd()(Tt);var{formatters:R1}=ta.exports;R1.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var G=N((AR,Gd)=>{"use strict";function $d(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function Mx(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return $d(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),$d(new i,r)}}Gd.exports=Mx});var jd=N((BR,Xd)=>{"use strict";Xd.exports=function(){return Date.now()}});var nl=N((OR,Zd)=>{"use strict";var fa=jd(),rl=class{constructor(e,r,n){let i=this;this._started=fa(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(fa()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,e.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,r)}reschedule(e){e||(e=this._scheduled);let r=fa();r+e-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(e)):this._triggered?this._schedule(e):(this._started=r,this._rescheduled=e)}_schedule(e){this._triggered=!1,this._started=fa(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function Kx(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let t;if(arguments.length>0){t=new Array(arguments.length-2);for(var e=0;e<t.length;e++)t[e]=arguments[e+2]}return new rl(arguments[0],arguments[1],t)}Zd.exports=Kx});var Kr=N((kR,ep)=>{"use strict";var{AbortController:Vx}=globalThis,Jd=nl(),Os=class extends Vx{constructor(e){super(),this._ms=e,this._timer=Jd(()=>this.abort(),e),Object.setPrototypeOf(this,Os.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=Jd(()=>this.abort(),this._ms)}};ep.exports={TimeoutController:Os}});var sl=N((GR,rp)=>{"use strict";var ki=new Map,$x=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function Gx(t,e,r){for(;ki.get(r);){try{await t()}catch(n){setTimeout(()=>{throw n},1);break}if(!ki.get(r))break;await new Promise(n=>{let i=setTimeout(n,e);ki.set(r,i)})}}function Yx(t,e,r){r=r||e;let n=$x(),i=setTimeout(()=>{Gx(t,e,n)},r);return ki.set(n,i),n}function Wx(t){let e=ki.get(t);e&&(clearTimeout(e),ki.delete(t))}rp.exports={setDelayedInterval:Yx,clearDelayedInterval:Wx}});var mr=N((YR,ol)=>{"use strict";var Ui=typeof Reflect=="object"?Reflect:null,np=Ui&&typeof Ui.apply=="function"?Ui.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},da;Ui&&typeof Ui.ownKeys=="function"?da=Ui.ownKeys:Object.getOwnPropertySymbols?da=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:da=function(e){return Object.getOwnPropertyNames(e)};function Qx(t){console&&console.warn&&console.warn(t)}var sp=Number.isNaN||function(e){return e!==e};function xe(){xe.init.call(this)}ol.exports=xe;ol.exports.once=Jx;xe.EventEmitter=xe;xe.prototype._events=void 0;xe.prototype._eventsCount=0;xe.prototype._maxListeners=void 0;var ip=10;function pa(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(xe,"defaultMaxListeners",{enumerable:!0,get:function(){return ip},set:function(t){if(typeof t!="number"||t<0||sp(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");ip=t}});xe.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};xe.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||sp(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function op(t){return t._maxListeners===void 0?xe.defaultMaxListeners:t._maxListeners}xe.prototype.getMaxListeners=function(){return op(this)};xe.prototype.emit=function(e){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(c===void 0)return!1;if(typeof c=="function")np(c,this,r);else for(var u=c.length,l=fp(c,u),n=0;n<u;++n)np(l[n],this,r);return!0};function ap(t,e,r,n){var i,s,o;if(pa(r),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),s=t._events),o=s[e]),o===void 0)o=s[e]=r,++t._eventsCount;else if(typeof o=="function"?o=s[e]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=op(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,Qx(a)}return t}xe.prototype.addListener=function(e,r){return ap(this,e,r,!1)};xe.prototype.on=xe.prototype.addListener;xe.prototype.prependListener=function(e,r){return ap(this,e,r,!0)};function Xx(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function cp(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=Xx.bind(n);return i.listener=r,n.wrapFn=i,i}xe.prototype.once=function(e,r){return pa(r),this.on(e,cp(this,e,r)),this};xe.prototype.prependOnceListener=function(e,r){return pa(r),this.prependListener(e,cp(this,e,r)),this};xe.prototype.removeListener=function(e,r){var n,i,s,o,a;if(pa(r),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():jx(n,s),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||r)}return this};xe.prototype.off=xe.prototype.removeListener;xe.prototype.removeAllListeners=function(e){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[e],typeof r=="function")this.removeListener(e,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(e,r[i]);return this};function up(t,e,r){var n=t._events;if(n===void 0)return[];var i=n[e];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?Zx(i):fp(i,i.length)}xe.prototype.listeners=function(e){return up(this,e,!0)};xe.prototype.rawListeners=function(e){return up(this,e,!1)};xe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):lp.call(t,e)};xe.prototype.listenerCount=lp;function lp(t){var e=this._events;if(e!==void 0){var r=e[t];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}xe.prototype.eventNames=function(){return this._eventsCount>0?da(this._events):[]};function fp(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function jx(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function Zx(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function Jx(t,e){return new Promise(function(r,n){function i(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),r([].slice.call(arguments))}hp(t,e,s,{once:!0}),e!=="error"&&eb(t,i,{once:!0})})}function eb(t,e,r){typeof t.on=="function"&&hp(t,"error",e,r)}function hp(t,e,r,n){if(typeof t.on=="function")n.once?t.once(e,r):t.on(e,r);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){n.once&&t.removeEventListener(e,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}});var Rp=N((TN,Tp)=>{Tp.exports=hl;var Ip=128,cb=127,ub=~cb,lb=Math.pow(2,31);function hl(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw hl.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=lb;)e[r++]=t&255|Ip,t/=128;for(;t&ub;)e[r++]=t&255|Ip,t>>>=7;return e[r]=t|0,hl.bytes=r-n+1,e}});var Lp=N((RN,Dp)=>{Dp.exports=dl;var fb=128,Np=127;function dl(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a||i>49)throw dl.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Np)<<i:(o&Np)*Math.pow(2,i),i+=7}while(o>=fb);return dl.bytes=s-n,r}});var Bp=N((NN,Pp)=>{var hb=Math.pow(2,7),db=Math.pow(2,14),pb=Math.pow(2,21),mb=Math.pow(2,28),yb=Math.pow(2,35),gb=Math.pow(2,42),Eb=Math.pow(2,49),vb=Math.pow(2,56),wb=Math.pow(2,63);Pp.exports=function(t){return t<hb?1:t<db?2:t<pb?3:t<mb?4:t<yb?5:t<gb?6:t<Eb?7:t<vb?8:t<wb?9:10}});var va=N((DN,Op)=>{Op.exports={encode:Rp(),decode:Lp(),encodingLength:Bp()}});var Qp=N((uD,Wp)=>{"use strict";Wp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var t0=N((Jp,e0)=>{"use strict";var _a=Qp(),{hasOwnProperty:jp}=Object.prototype,{propertyIsEnumerable:Vb}=Object,Hi=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),qb=Jp,Xp={concatArrays:!1,ignoreUndefined:!1},Aa=t=>{let e=[];for(let r in t)jp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Vb.call(t,n)&&e.push(n)}return e};function zi(t){return Array.isArray(t)?Hb(t):_a(t)?zb(t):t}function Hb(t){let e=t.slice(0,0);return Aa(t).forEach(r=>{Hi(e,r,zi(t[r]))}),e}function zb(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Aa(t).forEach(r=>{Hi(e,r,zi(t[r]))}),e}var Zp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?Hi(t,i,Al(t[i],e[i],n)):Hi(t,i,zi(e[i])))}),t),$b=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)jp.call(s,a)&&(o.push(String(a)),s===t?Hi(n,i++,s[a]):Hi(n,i++,zi(s[a])));n=Zp(n,s,Aa(s).filter(a=>!o.includes(a)),r)}),n};function Al(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?$b(t,e,r):!_a(e)||!_a(t)?zi(e):Zp(t,e,Aa(e),r)}e0.exports=function(...t){let e=Al(zi(Xp),this!==qb&&this||{},Xp),r={_:{}};for(let n of t)if(n!==void 0){if(!_a(n))throw new TypeError("`"+n+"` is not an Option Object");r=Al(r,{_:n},e)}return r._}});var Hs=N((BD,s0)=>{s0.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:Boolean(e)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var a0=N((kD,o0)=>{o0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var u0=N((UD,c0)=>{var Wb=a0();c0.exports=Wb});var Dt=N((FD,l0)=>{l0.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=Boolean(e)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Gi=N((VD,h0)=>{var Il=Hs(),Qb=u0(),f0=Dt();h0.exports=class extends Il{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed||e.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration||e.inmemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new Qb}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Il?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(e){return this.getInMemoryBlockMsBeforeExpire(e)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(e){this.inMemoryBlockOnConsumed=e}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(e){this.inMemoryBlockDuration=e}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof Il))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new f0(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new f0(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var m0=N((qD,p0)=>{var Xb=Gi(),jb=Dt(),d0="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} ",Tl=class extends Xb{constructor(e){super(e),e.redis?this.client=e.redis:this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:d0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new jb;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}_upsert(e,r,n,i=!1){return new Promise((s,o)=>{if(!this._isRedisReady())return o(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(e,r,"EX",a):c.set(e,r),c.pttl(e).exec((u,l)=>u?o(u):s(l));else if(a>0){let u=function(l,f){return l?o(l):s(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,a,u):this.client.eval(d0,1,e,r,a,u)}else c.incrby(e,r).pttl(e).exec((u,l)=>u?o(u):s(l))})}_get(e){return new Promise((r,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(e).pttl(e).exec((i,s)=>{if(i)n(i);else{let[o]=s;if(o===null)return r(null);r(s)}})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):r(s>0)})})}};p0.exports=Tl});var E0=N((HD,g0)=>{var Zb=Gi(),Jb=Dt();function y0(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var zs=class extends Zb{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=y0(this.client)}):(this._initCollection(),this._driverVersion=y0(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?zs.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new Jb,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(h=>{l(h)}).catch(h=>{if(h&&h.code===11e3){let d=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),p={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(d,p,u).then(y=>{l(y)}).catch(y=>{y&&y.code===11e3?this._upsert(e,r,n,i).then(g=>l(g)).catch(g=>f(g)):f(y)})}else f(h)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};g0.exports=zs});var w0=N((zD,v0)=>{var e2=Gi(),t2=Dt(),Rl=class extends e2{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:Boolean(e)}_getRateLimiterRes(e,r,n){let i=new t2,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
3
+ ON DUPLICATE KEY UPDATE
4
+ points = ?,
5
+ expire = ?;`,h=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
6
+ ON DUPLICATE KEY UPDATE
7
+ points = IF(expire <= ?, ?, points + (?)),
8
+ expire = IF(expire <= ?, ?, expire);`,h=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,h,d=>{if(d)return e.rollback(),a(d);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(p,y)=>{if(p)return e.rollback(),a(p);e.query("COMMIT",g=>{if(g)return e.rollback(),a(g);o(y)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};v0.exports=Rl});var b0=N(($D,x0)=>{var r2=Gi(),n2=Dt(),Nl=class extends r2{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?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})}clearExpired(e){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[e]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((e,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{e()}).catch(n=>{n.code==="23505"?e():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
9
+ key varchar(255) PRIMARY KEY,
10
+ points integer NOT NULL DEFAULT 0,
11
+ expire bigint
12
+ );`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:Boolean(e)}_getRateLimiterRes(e,r,n){let i=new n2,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
13
+ WHEN ${this.tableName}.expire <= $4 THEN $3
14
+ ELSE ${this.tableName}.expire
15
+ END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
16
+ INSERT INTO ${this.tableName} VALUES ($1, $2, $3)
17
+ ON CONFLICT(key) DO UPDATE SET
18
+ points = CASE
19
+ WHEN (${this.tableName}.expire <= $4 OR 1=${i?1:0}) THEN $2
20
+ ELSE ${this.tableName}.points + ($2)
21
+ END,
22
+ expire = ${o}
23
+ RETURNING points, expire;`,values:[e,r,s,Date.now()]})}_get(e){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
24
+ SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};x0.exports=Nl});var S0=N(()=>{});var ei=N(()=>{});var A0=N((jD,_0)=>{_0.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var I0=N((JD,C0)=>{var i2=A0(),Dl=Dt();C0.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[e].value=this._storage[e].value+r,new Dl(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new i2(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new Dl(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new Dl(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var Pl=N((eL,R0)=>{var s2=Hs(),o2=I0(),T0=Dt(),Ll=class extends s2{constructor(e={}){super(e),this._memoryStorage=new o2}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new T0(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new T0(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};R0.exports=Ll});var k0=N((tL,O0)=>{var N0=S0(),a2=ei(),c2=Hs(),L0=Pl(),u2=Dt(),Kt="rate_limiter_flexible",Qi=null,D0=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:Kt,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},P0=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&P0.call(this,t)},30)},Yi=function(t,e,r,n,i){let s={channel:Kt,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):P0.call(this,s)},B0=function(t,e){if(!e||e.channel!==Kt||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{D0(t,e,"resolve",n)}).catch(n=>{D0(t,e,"reject",n)})},l2=function(t){if(!t||t.channel!==Kt||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new u2(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},f2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Wi=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=a2.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Bl=class{constructor(){if(Qi)return Qi;this._rateLimiters={},N0.setMaxListeners(0),N0.on("message",(e,r)=>{r&&r.channel===Kt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new L0(r.opts)),e.send({channel:Kt,type:"init",keyPrefix:r.opts.keyPrefix})):B0.call(this,e,r)}),Qi=this}},Ol=class{constructor(e){if(Qi)return Qi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Kt&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new L0(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Kt,channel:Kt,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Kt,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};B0.call(this,o,s)}})}),Qi=this}},kl=class extends c2{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Kt&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:l2.call(this,r)}),process.send({channel:Kt,type:"init",opts:f2.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=Wi.call(this,n,i);Yi.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=Wi.call(this,n,i);Yi.call(this,"delete",s,e,r)})}};O0.exports={RateLimiterClusterMaster:Bl,RateLimiterClusterMasterPM2:Ol,RateLimiterCluster:kl}});var M0=N((rL,U0)=>{var h2=Gi(),d2=Dt(),Ul=class extends h2{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new d2;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(h,d)=>{if(h||!d)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let p=Object.assign({},s);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(e,r,n,i,p).then(y=>o(y)).catch(y=>a(y))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let p={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(p)})}):this.client.get(`${e}_expire`,(h,d)=>{if(h)a(h);else{let p=d===!1?0:d,y={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};o(y)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};U0.exports=Ul});var V0=N((iL,K0)=>{var F0=Dt();K0.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new F0(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new F0(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var H0=N((oL,q0)=>{var p2=Hs();q0.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof p2))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var $0=N((cL,z0)=>{z0.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var Q0=N((lL,W0)=>{var G0=$0(),Y0=4294967295,Ml="limiter";W0.exports=class{constructor(e,r={maxQueueSize:Y0}){this._queueLimiters={KEY_DEFAULT:new Na(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=Ml){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=Ml){return this._queueLimiters[r]||(this._queueLimiters[r]=new Na(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Na=class{constructor(e,r={maxQueueSize:Y0,key:Ml}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new G0(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new G0(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var j0=N((hL,X0)=>{var Fl=Dt();X0.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return new Fl(e.remainingPoints,Math.min(e.msBeforeNext,r.msBeforeNext),e.consumedPoints,e.isFirstInDuration)}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof Fl?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Fl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var J0=N((dL,Z0)=>{var m2=m0(),y2=E0(),g2=w0(),E2=b0(),{RateLimiterClusterMaster:v2,RateLimiterClusterMasterPM2:w2,RateLimiterCluster:x2}=k0(),b2=Pl(),S2=M0(),_2=V0(),A2=H0(),C2=Q0(),I2=j0(),T2=Dt();Z0.exports={RateLimiterRedis:m2,RateLimiterMongo:y2,RateLimiterMySQL:g2,RateLimiterPostgres:E2,RateLimiterMemory:b2,RateLimiterMemcache:S2,RateLimiterClusterMaster:v2,RateLimiterClusterMasterPM2:w2,RateLimiterCluster:x2,RLWrapperBlackAndWhite:_2,RateLimiterUnion:A2,RateLimiterQueue:C2,BurstyRateLimiter:I2,RateLimiterRes:T2}});var cm=N((ML,am)=>{"use strict";am.exports=M2;function M2(t,e){for(var r=new Array(arguments.length-1),n=0,i=2,s=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(l){if(s)if(s=!1,l)c(l);else{for(var f=new Array(arguments.length-1),h=0;h<f.length;)f[h++]=arguments[h];a.apply(null,f)}};try{t.apply(e||null,r)}catch(u){s&&(s=!1,c(u))}})}});var hm=N(fm=>{"use strict";var ka=fm;ka.length=function(e){var r=e.length;if(!r)return 0;for(var n=0;--r%4>1&&e.charAt(r)==="=";)++n;return Math.ceil(e.length*3)/4-n};var ji=new Array(64),lm=new Array(123);for(tr=0;tr<64;)lm[ji[tr]=tr<26?tr+65:tr<52?tr+71:tr<62?tr-4:tr-59|43]=tr++;var tr;ka.encode=function(e,r,n){for(var i=null,s=[],o=0,a=0,c;r<n;){var u=e[r++];switch(a){case 0:s[o++]=ji[u>>2],c=(u&3)<<4,a=1;break;case 1:s[o++]=ji[c|u>>4],c=(u&15)<<2,a=2;break;case 2:s[o++]=ji[c|u>>6],s[o++]=ji[u&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=ji[c],s[o++]=61,a===1&&(s[o++]=61)),i?(o&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))};var um="invalid encoding";ka.decode=function(e,r,n){for(var i=n,s=0,o,a=0;a<e.length;){var c=e.charCodeAt(a++);if(c===61&&s>1)break;if((c=lm[c])===void 0)throw Error(um);switch(s){case 0:o=c,s=1;break;case 1:r[n++]=o<<2|(c&48)>>4,o=c,s=2;break;case 2:r[n++]=(o&15)<<4|(c&60)>>2,o=c,s=3;break;case 3:r[n++]=(o&3)<<6|c,s=0;break}}if(s===1)throw Error(um);return n-i};ka.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var pm=N((KL,dm)=>{"use strict";dm.exports=Ua;function Ua(){this._listeners={}}Ua.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Ua.prototype.off=function(e,r){if(e===void 0)this._listeners={};else if(r===void 0)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i<n.length;)n[i].fn===r?n.splice(i,1):++i;return this};Ua.prototype.emit=function(e){var r=this._listeners[e];if(r){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<r.length;)r[i].fn.apply(r[i++].ctx,n)}return this}});var xm=N((VL,wm)=>{"use strict";wm.exports=mm(mm);function mm(t){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),n=r[3]===128;function i(c,u,l){e[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3]}function s(c,u,l){e[0]=c,u[l]=r[3],u[l+1]=r[2],u[l+2]=r[1],u[l+3]=r[0]}t.writeFloatLE=n?i:s,t.writeFloatBE=n?s:i;function o(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],e[0]}function a(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],e[0]}t.readFloatLE=n?o:a,t.readFloatBE=n?a:o}():function(){function e(n,i,s,o){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,s,o);else if(isNaN(i))n(2143289344,s,o);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,s,o);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,s,o);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,s,o)}}t.writeFloatLE=e.bind(null,ym),t.writeFloatBE=e.bind(null,gm);function r(n,i,s){var o=n(i,s),a=(o>>31)*2+1,c=o>>>23&255,u=o&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}t.readFloatLE=r.bind(null,Em),t.readFloatBE=r.bind(null,vm)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),n=r[7]===128;function i(c,u,l){e[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3],u[l+4]=r[4],u[l+5]=r[5],u[l+6]=r[6],u[l+7]=r[7]}function s(c,u,l){e[0]=c,u[l]=r[7],u[l+1]=r[6],u[l+2]=r[5],u[l+3]=r[4],u[l+4]=r[3],u[l+5]=r[2],u[l+6]=r[1],u[l+7]=r[0]}t.writeDoubleLE=n?i:s,t.writeDoubleBE=n?s:i;function o(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],e[0]}function a(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],e[0]}t.readDoubleLE=n?o:a,t.readDoubleBE=n?a:o}():function(){function e(n,i,s,o,a,c){var u=o<0?1:0;if(u&&(o=-o),o===0)n(0,a,c+i),n(1/o>0?0:2147483648,a,c+s);else if(isNaN(o))n(0,a,c+i),n(2146959360,a,c+s);else if(o>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+s);else{var l;if(o<22250738585072014e-324)l=o/5e-324,n(l>>>0,a,c+i),n((u<<31|l/4294967296)>>>0,a,c+s);else{var f=Math.floor(Math.log(o)/Math.LN2);f===1024&&(f=1023),l=o*Math.pow(2,-f),n(l*4503599627370496>>>0,a,c+i),n((u<<31|f+1023<<20|l*1048576&1048575)>>>0,a,c+s)}}}t.writeDoubleLE=e.bind(null,ym,0,4),t.writeDoubleBE=e.bind(null,gm,4,0);function r(n,i,s,o,a){var c=n(o,a+i),u=n(o,a+s),l=(u>>31)*2+1,f=u>>>20&2047,h=4294967296*(u&1048575)+c;return f===2047?h?NaN:l*(1/0):f===0?l*5e-324*h:l*Math.pow(2,f-1075)*(h+4503599627370496)}t.readDoubleLE=r.bind(null,Em,0,4),t.readDoubleBE=r.bind(null,vm,4,0)}(),t}function ym(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function gm(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function Em(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function vm(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var bm=N((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}});var _m=N(Sm=>{"use strict";var zl=Sm;zl.length=function(e){for(var r=0,n=0,i=0;i<e.length;++i)n=e.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(e.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};zl.read=function(e,r,n){var i=n-r;if(i<1)return"";for(var s=null,o=[],a=0,c;r<n;)c=e[r++],c<128?o[a++]=c:c>191&&c<224?o[a++]=(c&31)<<6|e[r++]&63:c>239&&c<365?(c=((c&7)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,o[a++]=55296+(c>>10),o[a++]=56320+(c&1023)):o[a++]=(c&15)<<12|(e[r++]&63)<<6|e[r++]&63,a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0);return s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};zl.write=function(e,r,n){for(var i=n,s,o,a=0;a<e.length;++a)s=e.charCodeAt(a),s<128?r[n++]=s:s<2048?(r[n++]=s>>6|192,r[n++]=s&63|128):(s&64512)===55296&&((o=e.charCodeAt(a+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++a,r[n++]=s>>18|240,r[n++]=s>>12&63|128,r[n++]=s>>6&63|128,r[n++]=s&63|128):(r[n++]=s>>12|224,r[n++]=s>>6&63|128,r[n++]=s&63|128);return n-i}});var Cm=N((HL,Am)=>{"use strict";Am.exports=F2;function F2(t,e,r){var n=r||8192,i=n>>>1,s=null,o=n;return function(c){if(c<1||c>i)return t(c);o+c>n&&(s=t(n),o=0);var u=e.call(s,o,o+=c);return o&7&&(o=(o|7)+1),u}}});var Tm=N((zL,Im)=>{"use strict";Im.exports=ut;var Xs=ni();function ut(t,e){this.lo=t>>>0,this.hi=e>>>0}var ri=ut.zero=new ut(0,0);ri.toNumber=function(){return 0};ri.zzEncode=ri.zzDecode=function(){return this};ri.length=function(){return 1};var K2=ut.zeroHash="\0\0\0\0\0\0\0\0";ut.fromNumber=function(e){if(e===0)return ri;var r=e<0;r&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new ut(n,i)};ut.from=function(e){if(typeof e=="number")return ut.fromNumber(e);if(Xs.isString(e))if(Xs.Long)e=Xs.Long.fromString(e);else return ut.fromNumber(parseInt(e,10));return e.low||e.high?new ut(e.low>>>0,e.high>>>0):ri};ut.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};ut.prototype.toLong=function(e){return Xs.Long?new Xs.Long(this.lo|0,this.hi|0,Boolean(e)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(e)}};var En=String.prototype.charCodeAt;ut.fromHash=function(e){return e===K2?ri:new ut((En.call(e,0)|En.call(e,1)<<8|En.call(e,2)<<16|En.call(e,3)<<24)>>>0,(En.call(e,4)|En.call(e,5)<<8|En.call(e,6)<<16|En.call(e,7)<<24)>>>0)};ut.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ut.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};ut.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};ut.prototype.length=function(){var e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var ni=N($l=>{"use strict";var H=$l;H.asPromise=cm();H.base64=hm();H.EventEmitter=pm();H.float=xm();H.inquire=bm();H.utf8=_m();H.pool=Cm();H.LongBits=Tm();H.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);H.global=H.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||$l;H.emptyArray=Object.freeze?Object.freeze([]):[];H.emptyObject=Object.freeze?Object.freeze({}):{};H.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};H.isString=function(e){return typeof e=="string"||e instanceof String};H.isObject=function(e){return e&&typeof e=="object"};H.isset=H.isSet=function(e,r){var n=e[r];return n!=null&&e.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};H.Buffer=function(){try{var t=H.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();H._Buffer_from=null;H._Buffer_allocUnsafe=null;H.newBuffer=function(e){return typeof e=="number"?H.Buffer?H._Buffer_allocUnsafe(e):new H.Array(e):H.Buffer?H._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};H.Array=typeof Uint8Array<"u"?Uint8Array:Array;H.Long=H.global.dcodeIO&&H.global.dcodeIO.Long||H.global.Long||H.inquire("long");H.key2Re=/^true|false|0|1$/;H.key32Re=/^-?(?:0|[1-9][0-9]*)$/;H.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;H.longToHash=function(e){return e?H.LongBits.from(e).toHash():H.LongBits.zeroHash};H.longFromHash=function(e,r){var n=H.LongBits.fromHash(e);return H.Long?H.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))};function Rm(t,e,r){for(var n=Object.keys(e),i=0;i<n.length;++i)(t[n[i]]===void 0||!r)&&(t[n[i]]=e[n[i]]);return t}H.merge=Rm;H.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Nm(t){function e(r,n){if(!(this instanceof e))return new e(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Rm(this,n)}return e.prototype=Object.create(Error.prototype,{constructor:{value:e,writable:!0,enumerable:!1,configurable:!0},name:{get(){return t},set:void 0,enumerable:!1,configurable:!0},toString:{value(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),e}H.newError=Nm;H.ProtocolError=Nm("ProtocolError");H.oneOfGetter=function(e){for(var r={},n=0;n<e.length;++n)r[e[n]]=1;return function(){for(var i=Object.keys(this),s=i.length-1;s>-1;--s)if(r[i[s]]===1&&this[i[s]]!==void 0&&this[i[s]]!==null)return i[s]}};H.oneOfSetter=function(e){return function(r){for(var n=0;n<e.length;++n)e[n]!==r&&delete this[e[n]]}};H.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};H._configure=function(){var t=H.Buffer;if(!t){H._Buffer_from=H._Buffer_allocUnsafe=null;return}H._Buffer_from=t.from!==Uint8Array.from&&t.from||function(r,n){return new t(r,n)},H._Buffer_allocUnsafe=t.allocUnsafe||function(r){return new t(r)}}});var Wl=N((GL,Om)=>{"use strict";Om.exports=je;var vr=ni(),Yl,Pm=vr.LongBits,V2=vr.utf8;function rr(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function je(t){this.buf=t,this.pos=0,this.len=t.length}var Dm=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new je(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new je(e);throw Error("illegal buffer")},Bm=function(){return vr.Buffer?function(r){return(je.create=function(i){return vr.Buffer.isBuffer(i)?new Yl(i):Dm(i)})(r)}:Dm};je.create=Bm();je.prototype._slice=vr.Array.prototype.subarray||vr.Array.prototype.slice;je.prototype.uint32=function(){var e=4294967295;return function(){if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,rr(this,10);return e}}();je.prototype.int32=function(){return this.uint32()|0};je.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Gl(){var t=new Pm(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw rr(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw rr(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}je.prototype.bool=function(){return this.uint32()!==0};function Ma(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}je.prototype.fixed32=function(){if(this.pos+4>this.len)throw rr(this,4);return Ma(this.buf,this.pos+=4)};je.prototype.sfixed32=function(){if(this.pos+4>this.len)throw rr(this,4);return Ma(this.buf,this.pos+=4)|0};function Lm(){if(this.pos+8>this.len)throw rr(this,8);return new Pm(Ma(this.buf,this.pos+=4),Ma(this.buf,this.pos+=4))}je.prototype.float=function(){if(this.pos+4>this.len)throw rr(this,4);var e=vr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};je.prototype.double=function(){if(this.pos+8>this.len)throw rr(this,4);var e=vr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};je.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw rr(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};je.prototype.string=function(){var e=this.bytes();return V2.read(e,0,e.length)};je.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw rr(this,e);this.pos+=e}else do if(this.pos>=this.len)throw rr(this);while(this.buf[this.pos++]&128);return this};je.prototype.skipType=function(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};je._configure=function(t){Yl=t,je.create=Bm(),Yl._configure();var e=vr.Long?"toLong":"toNumber";vr.merge(je.prototype,{int64:function(){return Gl.call(this)[e](!1)},uint64:function(){return Gl.call(this)[e](!0)},sint64:function(){return Gl.call(this).zzDecode()[e](!1)},fixed64:function(){return Lm.call(this)[e](!0)},sfixed64:function(){return Lm.call(this)[e](!1)}})}});var Fm=N((YL,Mm)=>{"use strict";Mm.exports=ii;var Um=Wl();(ii.prototype=Object.create(Um.prototype)).constructor=ii;var km=ni();function ii(t){Um.call(this,t)}ii._configure=function(){km.Buffer&&(ii.prototype._slice=km.Buffer.prototype.slice)};ii.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};ii._configure()});var tf=N((WL,Hm)=>{"use strict";Hm.exports=de;var Vt=ni(),Ql,Fa=Vt.LongBits,Km=Vt.base64,Vm=Vt.utf8;function js(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function jl(){}function q2(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function de(){this.len=0,this.head=new js(jl,0,0),this.tail=this.head,this.states=null}var qm=function(){return Vt.Buffer?function(){return(de.create=function(){return new Ql})()}:function(){return new de}};de.create=qm();de.alloc=function(e){return new Vt.Array(e)};Vt.Array!==Array&&(de.alloc=Vt.pool(de.alloc,Vt.Array.prototype.subarray));de.prototype._push=function(e,r,n){return this.tail=this.tail.next=new js(e,r,n),this.len+=r,this};function Zl(t,e,r){e[r]=t&255}function H2(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Jl(t,e){this.len=t,this.next=void 0,this.val=e}Jl.prototype=Object.create(js.prototype);Jl.prototype.fn=H2;de.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Jl((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};de.prototype.int32=function(e){return e<0?this._push(ef,10,Fa.fromNumber(e)):this.uint32(e)};de.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function ef(t,e,r){for(;t.hi;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}de.prototype.uint64=function(e){var r=Fa.from(e);return this._push(ef,r.length(),r)};de.prototype.int64=de.prototype.uint64;de.prototype.sint64=function(e){var r=Fa.from(e).zzEncode();return this._push(ef,r.length(),r)};de.prototype.bool=function(e){return this._push(Zl,1,e?1:0)};function Xl(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}de.prototype.fixed32=function(e){return this._push(Xl,4,e>>>0)};de.prototype.sfixed32=de.prototype.fixed32;de.prototype.fixed64=function(e){var r=Fa.from(e);return this._push(Xl,4,r.lo)._push(Xl,4,r.hi)};de.prototype.sfixed64=de.prototype.fixed64;de.prototype.float=function(e){return this._push(Vt.float.writeFloatLE,4,e)};de.prototype.double=function(e){return this._push(Vt.float.writeDoubleLE,8,e)};var z2=Vt.Array.prototype.set?function(e,r,n){r.set(e,n)}:function(e,r,n){for(var i=0;i<e.length;++i)r[n+i]=e[i]};de.prototype.bytes=function(e){var r=e.length>>>0;if(!r)return this._push(Zl,1,0);if(Vt.isString(e)){var n=de.alloc(r=Km.length(e));Km.decode(e,n,0),e=n}return this.uint32(r)._push(z2,r,e)};de.prototype.string=function(e){var r=Vm.length(e);return r?this.uint32(r)._push(Vm.write,r,e):this._push(Zl,1,0)};de.prototype.fork=function(){return this.states=new q2(this),this.head=this.tail=new js(jl,0,0),this.len=0,this};de.prototype.reset=function(){return this.states?(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 js(jl,0,0),this.len=0),this};de.prototype.ldelim=function(){var e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=r,this.len+=n),this};de.prototype.finish=function(){for(var e=this.head.next,r=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r};de._configure=function(t){Ql=t,de.create=qm(),Ql._configure()}});var Gm=N((QL,$m)=>{"use strict";$m.exports=wr;var zm=tf();(wr.prototype=Object.create(zm.prototype)).constructor=wr;var vn=ni();function wr(){zm.call(this)}wr._configure=function(){wr.alloc=vn._Buffer_allocUnsafe,wr.writeBytesBuffer=vn.Buffer&&vn.Buffer.prototype instanceof Uint8Array&&vn.Buffer.prototype.set.name==="set"?function(e,r,n){r.set(e,n)}:function(e,r,n){if(e.copy)e.copy(r,n,0,e.length);else for(var i=0;i<e.length;)r[n++]=e[i++]}};wr.prototype.bytes=function(e){vn.isString(e)&&(e=vn._Buffer_from(e,"base64"));var r=e.length>>>0;return this.uint32(r),r&&this._push(wr.writeBytesBuffer,r,e),this};function $2(t,e,r){t.length<40?vn.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}wr.prototype.string=function(e){var r=vn.Buffer.byteLength(e);return this.uint32(r),r&&this._push($2,r,e),this};wr._configure()});var py=N(ro=>{(function(){var t,e,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&255<<8)>>>8,h=c&255,[u,l,f,h].join(".")},o=function(c){var u,l,f,h,d,p;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)}p=e(c),d=p[0],l=p[1],c=c.substring(l),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,h,d;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")),d=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===d)throw new Error("empty octet");return[h,f]},t=function(){function c(u,l){var f,h,d,p;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(p=u.split("/",2),u=p[0],l=p[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(y){throw f=y,new Error("Invalid mask: "+l)}for(h=d=32;d>=0;h=--d)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(y){throw f=y,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}(),ro.ip2long=o,ro.long2ip=a,ro.Netmask=t}).call(ro)});var Ey=N((gy,Xa)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(d,p){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,E=(d.match(a.zoneIndex)||[])[0],x,_;for(E&&(E=E.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>p)return null;for(_=p-y,x=":";_--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),p=function(){let B=d.split(":"),D=[];for(let L=0;L<B.length;L++)D.push(parseInt(B[L],16));return D}(),{parts:p,zoneId:E}}function u(d,p,y,g){if(d.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let E=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[E]>>x!==p[E]>>x)return!1;g-=y,E+=1}return!0}function l(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function f(d,p){for(;d.length<p;)d=`0${d}`;return d}let h={};h.IPv4=function(){function d(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<p.length;y++)if(g=p[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(p,y){let g;if(y===void 0&&(g=p,p=g[0],y=g[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,p.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},E,x,_;for(E=3;E>=0;E-=1)if(x=this.octets[E],x in g){if(_=g[x],y&&_!==0)return null;_!==8&&(y=!0),p+=_}else return null;return 32-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),h.IPv4.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),y=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],x=0;for(;x<4;)E.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(E)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(d){return this.parser(d)!==null},h.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},h.IPv4.isValidFourPartDecimal=function(d){return!!(h.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(d){let p,y,g,E,x;try{for(p=this.parseCIDR(d),g=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],y=0;y<4;)E.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(E)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(d){let p=this.parser(d);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},h.IPv4.parseCIDR=function(d){let p;if(p=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(p[2]);if(y>=0&&y<=32){let g=[this.parse(p[1]),y];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,y,g;if(p=d.match(r.fourOctet))return function(){let E=p.slice(1,6),x=[];for(let _=0;_<E.length;_++)y=E[_],x.push(l(y));return x}();if(p=d.match(r.longValue)){if(g=l(p[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let E=[],x;for(x=0;x<=24;x+=8)E.push(g>>x&255);return E}().reverse()}else return(p=d.match(r.twoOctet))?function(){let E=p.slice(1,4),x=[];if(g=l(E[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(E[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(p=d.match(r.threeOctet))?function(){let E=p.slice(1,5),x=[];if(g=l(E[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(E[0])),x.push(l(E[1])),x.push(g>>8&255),x.push(g&255),x}():null},h.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)p[y]=255,y++;return g<4&&(p[g]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.IPv6=function(){function d(p,y){let g,E;if(p.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(p[g]<<8|p[g+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(E=this.parts[g],!(0<=E&&E<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(p,y){let g;if(y===void 0&&(g=p,p=g[0],y=g[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,p.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,y=!1,g={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},E,x;for(let _=7;_>=0;_-=1)if(E=this.parts[_],E in g){if(x=g[E],y&&x!==0)return null;x!==16&&(y=!0),p+=x}else return null;return 128-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let p,y=[],g=this.parts;for(let E=0;E<g.length;E++)p=g[E],y.push(p>>8),y.push(p&255);return y},d.prototype.toFixedLengthString=function(){let p=function(){let g=[];for(let E=0;E<this.parts.length;E++)g.push(f(this.parts[E].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),p+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),y=p[0],g=p[1];return new h.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let p=function(){let g=[];for(let E=0;E<this.parts.length;E++)g.push(this.parts[E].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),p+y},d.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,E=-1,x;for(;x=p.exec(y);)x[0].length>E&&(g=x.index,E=x[0].length);return E<0?y:`${y.substring(0,g)}::${y.substring(g+E)}`},d.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},d}(),h.IPv6.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),y=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],x=0;for(;x<16;)E.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(E)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},h.IPv6.isIPv6=function(d){return this.parser(d)!==null},h.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let p=this.parser(d);return new this(p.parts,p.zoneId),!0}catch{return!1}},h.IPv6.networkAddressFromCIDR=function(d){let p,y,g,E,x;try{for(p=this.parseCIDR(d),g=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],y=0;y<16;)E.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(E)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},h.IPv6.parse=function(d){let p=this.parser(d);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},h.IPv6.parseCIDR=function(d){let p,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(y[2]),p>=0&&p<=128))return g=[this.parse(y[1]),p],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,y,g,E,x,_;if(g=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(d))return c(d,8);if((g=d.match(a.transitional))&&(_=g[6]||"",p=c(g[1].slice(0,-1)+_,6),p.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(E=x[y],!(0<=E&&E<=255))return null;return p.parts.push(x[0]<<8|x[1]),p.parts.push(x[2]<<8|x[3]),{parts:p.parts,zoneId:p.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)p[y]=255,y++;return g<16&&(p[g]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.fromByteArray=function(d){let p=d.length;if(p===4)return new h.IPv4(d);if(p===16)return new h.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},h.isValid=function(d){return h.IPv6.isValid(d)||h.IPv4.isValid(d)},h.parse=function(d){if(h.IPv6.isValid(d))return h.IPv6.parse(d);if(h.IPv4.isValid(d))return h.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},h.parseCIDR=function(d){try{return h.IPv6.parseCIDR(d)}catch{try{return h.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},h.process=function(d){let p=this.parse(d);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},h.subnetMatch=function(d,p,y){let g,E,x,_;y==null&&(y="unicast");for(E in p)if(Object.prototype.hasOwnProperty.call(p,E)){for(x=p[E],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(_=x[g],d.kind()===_[0].kind()&&d.match.apply(d,_))return E}return y},typeof Xa<"u"&&Xa.exports?Xa.exports=h:t.ipaddr=h})(gy)});var Ay=N((y4,_y)=>{"use strict";function vS(t){return t>=55296&&t<=56319}function wS(t){return t>=56320&&t<=57343}_y.exports=function(e,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],vS(o)&&wS(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=e(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Iy=N((g4,Cy)=>{"use strict";function xS(t){return t>=55296&&t<=56319}function bS(t){return t>=56320&&t<=57343}Cy.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var r=e.length,n=0,i=null,s=null,o=0;o<r;o++)i=e.charCodeAt(o),bS(i)?s!=null&&xS(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 Ry=N((E4,Ty)=>{"use strict";var SS=Ay(),_S=Iy();Ty.exports=SS.bind(null,_S)});var Ly=N((v4,Dy)=>{"use strict";var AS=Ry(),CS=/[\/\?<>\\:\*\|"]/g,IS=/[\x00-\x1f\x80-\x9f]/g,TS=/^\.+$/,RS=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,NS=/[\. ]+$/;function Ny(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(CS,e).replace(IS,e).replace(TS,e).replace(RS,e).replace(NS,e);return AS(r,255)}Dy.exports=function(t,e){var r=e&&e.replacement||"",n=Ny(t,r);return r===""?n:Ny(n,"")}});var ie=N((w4,Py)=>{Py.exports={options:{usePureJavaScript:!1}}});var ky=N((x4,Oy)=>{var yf={};Oy.exports=yf;var By={};yf.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=DS(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
25
+ `)}return n};yf.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=By[e];if(!r){r=By[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function DS(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var De=N((b4,Ky)=>{var Uy=ie(),My=ky(),w=Ky.exports=Uy.util=Uy.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function io(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=gf;function gf(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof gf||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=gf;var LS=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>LS&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){io(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){io(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function PS(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=PS;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){io(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return io(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){io(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var Sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_n=[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],Fy="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=Sn.charAt(i>>2),r+=Sn.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Sn.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Sn.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
26
+ `,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=_n[t.charCodeAt(o++)-43],n=_n[t.charCodeAt(o++)-43],i=_n[t.charCodeAt(o++)-43],s=_n[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};w.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};w.decodeUtf8=function(t){return decodeURIComponent(escape(t))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:My.encode,decode:My.decode}};w.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};w.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};w.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=Sn.charAt(i>>2),r+=Sn.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Sn.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Sn.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
27
+ `,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=_n[t.charCodeAt(c++)-43],s=_n[t.charCodeAt(c++)-43],o=_n[t.charCodeAt(c++)-43],a=_n[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,Fy,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,Fy,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var Ef=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},vf=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},BS=function(t,e,r,n){var i=vf(t,e);i===null&&(i={}),i[r]=n,Ef(t,e,i)},OS=function(t,e,r){var n=vf(t,e);return n!==null&&(n=r in n?n[r]:null),n},kS=function(t,e,r){var n=vf(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Ef(t,e,n)}},US=function(t,e){Ef(t,e,null)},tc=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){tc(BS,arguments,i)};w.getItem=function(t,e,r,n){return tc(OS,arguments,n)};w.removeItem=function(t,e,r,n){tc(kS,arguments,n)};w.clearItems=function(t,e,r){tc(US,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(h){if(u.push(h.data),u.length===o){for(var d=0;d<o;++d)c[d].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 d=a[h];(l.st>d.st&&l.st<d.et||d.st>l.st&&d.st<l.et)&&f.push(h)}return c.reduce(function(p,y){return Math.max(p,y.length)},0)}}});var xf=N((S4,Vy)=>{var lt=ie();De();Vy.exports=lt.cipher=lt.cipher||{};lt.cipher.algorithms=lt.cipher.algorithms||{};lt.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=lt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new lt.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};lt.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=lt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new lt.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};lt.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),lt.cipher.algorithms[t]=e};lt.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in lt.cipher.algorithms?lt.cipher.algorithms[t]:null};var wf=lt.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};wf.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=lt.util.createBuffer(),this.output=t.output||lt.util.createBuffer(),this.mode.start(e)};wf.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};wf.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var Sf=N((_4,qy)=>{var ft=ie();De();ft.cipher=ft.cipher||{};var se=qy.exports=ft.cipher.modes=ft.cipher.modes||{};se.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};se.ecb.prototype.start=function(t){};se.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};se.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};se.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};se.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};se.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};se.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=rc(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};se.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};se.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};se.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};se.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};se.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=rc(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=rc(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.ofb.prototype.decrypt=se.ofb.prototype.encrypt;se.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=rc(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}nc(this._inBlock)};se.ctr.prototype.decrypt=se.ctr.prototype.encrypt;se.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0,this._R=3774873600};se.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=ft.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=ft.util.createBuffer(t.additionalData):r=ft.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=ft.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(bf(n*8)))}this._inBlock=this._j0.slice(0),nc(this._inBlock),this._partialBytes=0,r=ft.util.createBuffer(r),this._aDataLength=bf(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()])};se.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),nc(this._inBlock)};se.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),nc(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};se.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=ft.util.createBuffer();var n=this._aDataLength.concat(bf(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};se.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};se.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};se.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};se.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};se.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};se.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function rc(t,e){if(typeof t=="string"&&(t=ft.util.createBuffer(t)),ft.util.isArray(t)&&t.length>4){var r=t;t=ft.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!ft.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function nc(t){t[t.length-1]=t[t.length-1]+1&4294967295}function bf(t){return[t/4294967296|0,t&4294967295]}});var ns=N((A4,Gy)=>{var Le=ie();xf();Sf();De();Gy.exports=Le.aes=Le.aes||{};Le.aes.startEncrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};Le.aes.createEncryptionCipher=function(t,e){return ic({key:t,output:null,decrypt:!1,mode:e})};Le.aes.startDecrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};Le.aes.createDecryptionCipher=function(t,e){return ic({key:t,output:null,decrypt:!0,mode:e})};Le.aes.Algorithm=function(t,e){Cf||zy();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Af(r._w,n,i,!1)},decrypt:function(n,i){return Af(r._w,n,i,!0)}}}),r._init=!1};Le.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=Le.util.createBuffer(e);else if(Le.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=Le.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!Le.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!Le.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=$y(e,t.decrypt&&!o),this._init=!0}};Le.aes._expandKey=function(t,e){return Cf||zy(),$y(t,e)};Le.aes._updateBlock=Af;rs("AES-ECB",Le.cipher.modes.ecb);rs("AES-CBC",Le.cipher.modes.cbc);rs("AES-CFB",Le.cipher.modes.cfb);rs("AES-OFB",Le.cipher.modes.ofb);rs("AES-CTR",Le.cipher.modes.ctr);rs("AES-GCM",Le.cipher.modes.gcm);function rs(t,e){var r=function(){return new Le.aes.Algorithm(t,e)};Le.cipher.registerAlgorithm(t,r)}var Cf=!1,ts=4,vt,_f,Hy,ai,sr;function zy(){Cf=!0,Hy=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;vt=new Array(256),_f=new Array(256),ai=new Array(4),sr=new Array(4);for(var e=0;e<4;++e)ai[e]=new Array(256),sr[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,vt[r]=a,_f[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)ai[f][r]=u,sr[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function $y(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=ts*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=vt[n>>>16&255]<<24^vt[n>>>8&255]<<16^vt[n&255]<<8^vt[n>>>24]^Hy[i]<<24,i++):s>6&&c%s===4&&(n=vt[n>>>24]<<24^vt[n>>>16&255]<<16^vt[n>>>8&255]<<8^vt[n&255]),r[c]=r[c-s]^n;if(e){var u,l=sr[0],f=sr[1],h=sr[2],d=sr[3],p=r.slice(0);a=r.length;for(var c=0,y=a-ts;c<a;c+=ts,y-=ts)if(c===0||c===a-ts)p[c]=r[y],p[c+1]=r[y+3],p[c+2]=r[y+2],p[c+3]=r[y+1];else for(var g=0;g<ts;++g)u=r[y+g],p[c+(3&-g)]=l[vt[u>>>24]]^f[vt[u>>>16&255]]^h[vt[u>>>8&255]]^d[vt[u&255]];r=p}return r}function Af(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=sr[0],o=sr[1],a=sr[2],c=sr[3],u=_f):(s=ai[0],o=ai[1],a=ai[2],c=ai[3],u=vt);var l,f,h,d,p,y,g;l=e[0]^t[0],f=e[n?3:1]^t[1],h=e[2]^t[2],d=e[n?1:3]^t[3];for(var E=3,x=1;x<i;++x)p=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[d&255]^t[++E],y=s[f>>>24]^o[h>>>16&255]^a[d>>>8&255]^c[l&255]^t[++E],g=s[h>>>24]^o[d>>>16&255]^a[l>>>8&255]^c[f&255]^t[++E],d=s[d>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^t[++E],l=p,f=y,h=g;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[d&255]^t[++E],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[d>>>8&255]<<8^u[l&255]^t[++E],r[2]=u[h>>>24]<<24^u[d>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++E],r[n?1:3]=u[d>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^t[++E]}function ic(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=Le.cipher.createDecipher(r,t.key):n=Le.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Le.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var is=N((C4,Yy)=>{var so=ie();so.pki=so.pki||{};var If=Yy.exports=so.pki.oids=so.oids=so.oids||{};function R(t,e){If[t]=e,If[e]=t}function ve(t,e){If[t]=e}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");ve("2.5.29.1","authorityKeyIdentifier");ve("2.5.29.2","keyAttributes");ve("2.5.29.3","certificatePolicies");ve("2.5.29.4","keyUsageRestriction");ve("2.5.29.5","policyMapping");ve("2.5.29.6","subtreesConstraint");ve("2.5.29.7","subjectAltName");ve("2.5.29.8","issuerAltName");ve("2.5.29.9","subjectDirectoryAttributes");ve("2.5.29.10","basicConstraints");ve("2.5.29.11","nameConstraints");ve("2.5.29.12","policyConstraints");ve("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");ve("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");ve("2.5.29.20","cRLNumber");ve("2.5.29.21","cRLReason");ve("2.5.29.22","expirationDate");ve("2.5.29.23","instructionCode");ve("2.5.29.24","invalidityDate");ve("2.5.29.25","cRLDistributionPoints");ve("2.5.29.26","issuingDistributionPoint");ve("2.5.29.27","deltaCRLIndicator");ve("2.5.29.28","issuingDistributionPoint");ve("2.5.29.29","certificateIssuer");ve("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");ve("2.5.29.33","policyMappings");ve("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");ve("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");ve("2.5.29.46","freshestCRL");ve("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var An=N((I4,Qy)=>{var Be=ie();De();is();var k=Qy.exports=Be.asn1=Be.asn1||{};k.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};k.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};k.create=function(t,e,r,n,i){if(Be.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||Be.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=k.copy(a)),a};k.copy=function(t,e){var r;if(Be.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(k.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:k.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};k.equals=function(t,e,r){if(Be.util.isArray(t)){if(!Be.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!k.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&k.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};k.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function oo(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var MS=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;oo(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};k.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=Be.util.createBuffer(t));var r=t.length(),n=sc(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function sc(t,e,r,n){var i;oo(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=MS(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(oo(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(sc(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(sc(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===k.Class.UNIVERSAL&&a===k.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===k.Class.UNIVERSAL&&a===k.Type.BITSTRING&&c>1){var d=t.read,p=e,y=0;if(a===k.Type.BITSTRING&&(oo(t,e,1),y=t.getByte(),e--),y===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},E=sc(t,e,r+1,g),x=i-t.length();e-=x,a==k.Type.BITSTRING&&x++;var _=E.tagClass;x===c&&(_===k.Class.UNIVERSAL||_===k.Class.CONTEXT_SPECIFIC)&&(l=[E])}catch{}l===void 0&&(t.read=d,e=p)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===k.Type.BMPSTRING)for(l="";c>0;c-=2)oo(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var B=f===void 0?null:{bitStringContents:f};return k.create(o,a,h,l,B)}k.toDer=function(t){var e=Be.util.createBuffer(),r=t.tagClass|t.type,n=Be.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=k.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(k.toDer(t.value[s]))}else if(t.type===k.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===k.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};k.oidToDer=function(t){var e=t.split("."),r=Be.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};k.derToOid=function(t){var e;typeof t=="string"&&(t=Be.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};k.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?e.setTime(+e-h):e.setTime(+e+h)}return e};k.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,h=t.charAt(f);if(h==="+"||h==="-"){var d=parseInt(t.substr(f+1,2),10),p=parseInt(t.substr(f+4,2),10);u=d*60+p,u*=6e4,h==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};k.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};k.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};k.integerToDer=function(t){var e=Be.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};k.derToInteger=function(t){typeof t=="string"&&(t=Be.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};k.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&Be.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=k.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Wy=/[^\\u0000-\\u00ff]/;k.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
28
+ `);for(var i="",s=0;s<e*r;++s)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case k.Class.UNIVERSAL:n+="Universal:";break;case k.Class.APPLICATION:n+="Application:";break;case k.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case k.Class.PRIVATE:n+="Private:";break}if(t.tagClass===k.Class.UNIVERSAL)switch(n+=t.type,t.type){case k.Type.NONE:n+=" (None)";break;case k.Type.BOOLEAN:n+=" (Boolean)";break;case k.Type.INTEGER:n+=" (Integer)";break;case k.Type.BITSTRING:n+=" (Bit string)";break;case k.Type.OCTETSTRING:n+=" (Octet string)";break;case k.Type.NULL:n+=" (Null)";break;case k.Type.OID:n+=" (Object Identifier)";break;case k.Type.ODESC:n+=" (Object Descriptor)";break;case k.Type.EXTERNAL:n+=" (External or Instance of)";break;case k.Type.REAL:n+=" (Real)";break;case k.Type.ENUMERATED:n+=" (Enumerated)";break;case k.Type.EMBEDDED:n+=" (Embedded PDV)";break;case k.Type.UTF8:n+=" (UTF8)";break;case k.Type.ROID:n+=" (Relative Object Identifier)";break;case k.Type.SEQUENCE:n+=" (Sequence)";break;case k.Type.SET:n+=" (Set)";break;case k.Type.PRINTABLESTRING:n+=" (Printable String)";break;case k.Type.IA5String:n+=" (IA5String (ASCII))";break;case k.Type.UTCTIME:n+=" (UTC time)";break;case k.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case k.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
29
+ `,n+=i+"Constructed: "+t.constructed+`
30
+ `,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=k.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===k.Type.OID){var c=k.derToOid(t.value);n+=c,Be.pki&&Be.pki.oids&&c in Be.pki.oids&&(n+=" ("+Be.pki.oids[c]+") ")}if(t.type===k.Type.INTEGER)try{n+=k.derToInteger(t.value)}catch{n+="0x"+Be.util.bytesToHex(t.value)}else if(t.type===k.Type.BITSTRING){if(t.value.length>1?n+="0x"+Be.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===k.Type.OCTETSTRING)Wy.test(t.value)||(n+="("+t.value+") "),n+="0x"+Be.util.bytesToHex(t.value);else if(t.type===k.Type.UTF8)try{n+=Be.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+Be.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===k.Type.PRINTABLESTRING||t.type===k.Type.IA5String?n+=t.value:Wy.test(t.value)?n+="0x"+Be.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var ac=N((T4,jy)=>{var Me=ie();xf();Sf();De();jy.exports=Me.des=Me.des||{};Me.des.startEncrypting=function(t,e,r,n){var i=oc({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createEncryptionCipher=function(t,e){return oc({key:t,output:null,decrypt:!1,mode:e})};Me.des.startDecrypting=function(t,e,r,n){var i=oc({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createDecryptionCipher=function(t,e){return oc({key:t,output:null,decrypt:!0,mode:e})};Me.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return Xy(r._keys,n,i,!1)},decrypt:function(n,i){return Xy(r._keys,n,i,!0)}}}),r._init=!1};Me.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=Me.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=YS(e),this._init=!0}};br("DES-ECB",Me.cipher.modes.ecb);br("DES-CBC",Me.cipher.modes.cbc);br("DES-CFB",Me.cipher.modes.cfb);br("DES-OFB",Me.cipher.modes.ofb);br("DES-CTR",Me.cipher.modes.ctr);br("3DES-ECB",Me.cipher.modes.ecb);br("3DES-CBC",Me.cipher.modes.cbc);br("3DES-CFB",Me.cipher.modes.cfb);br("3DES-OFB",Me.cipher.modes.ofb);br("3DES-CTR",Me.cipher.modes.ctr);function br(t,e){var r=function(){return new Me.des.Algorithm(t,e)};Me.cipher.registerAlgorithm(t,r)}var FS=[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],KS=[-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],VS=[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],qS=[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],HS=[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],zS=[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],$S=[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],GS=[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 YS(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],h=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=t.length()>8?3:1,g=[],E=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,_,B=0;B<y;B++){var D=t.getInt32(),L=t.getInt32();_=(D>>>4^L)&252645135,L^=_,D^=_<<4,_=(L>>>-16^D)&65535,D^=_,L^=_<<-16,_=(D>>>2^L)&858993459,L^=_,D^=_<<2,_=(L>>>-16^D)&65535,D^=_,L^=_<<-16,_=(D>>>1^L)&1431655765,L^=_,D^=_<<1,_=(L>>>8^D)&16711935,D^=_,L^=_<<8,_=(D>>>1^L)&1431655765,L^=_,D^=_<<1,_=D<<8|L>>>20&240,D=L<<24|L<<8&16711680|L>>>8&65280|L>>>24&240,L=_;for(var te=0;te<E.length;++te){E[te]?(D=D<<2|D>>>26,L=L<<2|L>>>26):(D=D<<1|D>>>27,L=L<<1|L>>>27),D&=-15,L&=-15;var ae=e[D>>>28]|r[D>>>24&15]|n[D>>>20&15]|i[D>>>16&15]|s[D>>>12&15]|o[D>>>8&15]|a[D>>>4&15],st=c[L>>>28]|u[L>>>24&15]|l[L>>>20&15]|f[L>>>16&15]|h[L>>>12&15]|d[L>>>8&15]|p[L>>>4&15];_=(st>>>16^ae)&65535,g[x++]=ae^_,g[x++]=st^_<<16}}return g}function Xy(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],h=s[u];h!=l;h+=f){var d=c^t[h],p=(c>>>4|c<<28)^t[h+1];o=a,a=c,c=o^(KS[d>>>24&63]|qS[d>>>16&63]|zS[d>>>8&63]|GS[d&63]|FS[p>>>24&63]|VS[p>>>16&63]|HS[p>>>8&63]|$S[p&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 oc(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=Me.cipher.createDecipher(r,t.key):n=Me.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Me.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var lc=N((R4,Jy)=>{var uc=ie();De();var Zy=Jy.exports=uc.pem=uc.pem||{};Zy.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
31
+ `,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=cc(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=cc(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=cc(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=cc(t.headers[i]);return t.procType&&(r+=`\r
32
+ `),r+=uc.util.encode64(t.body,e.maxline||64)+`\r
33
+ `,r+="-----END "+t.type+`-----\r
34
+ `,r};Zy.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:uc.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var h=c[f];if(!/\s/.test(h[0]))break;l+=h,u=f}if(s=l.match(n),s){for(var d={name:s[1],values:[]},p=s[2].split(","),y=0;y<p.length;++y)d.values.push(WS(p[y]));if(a.procType)if(!a.contentDomain&&d.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&d.name==="DEK-Info"){if(d.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:p[0],parameters:p[1]||null}}else a.headers.push(d);else{if(d.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(d.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:p[0],type:p[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(e.length===0)throw new Error("Invalid PEM formatted message.");return e};function cc(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
35
+ `;for(var s=0,o=-1,i=0;i<e.length;++i,++s)if(s>65&&o!==-1){var a=e[o];a===","?(++o,e=e.substr(0,o)+`\r
36
+ `+e.substr(o)):e=e.substr(0,o)+`\r
37
+ `+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function WS(t){return t.replace(/^\s+/,"")}});var ng=N((N4,rg)=>{var ss=ie();An();De();var U=ss.asn1,os=rg.exports=ss.pkcs7asn1=ss.pkcs7asn1||{};ss.pkcs7=ss.pkcs7||{};ss.pkcs7.asn1=os;var eg={name:"ContentInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};os.contentInfoValidator=eg;var tg={name:"EncryptedContentInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};os.envelopedDataValidator={name:"EnvelopedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(tg)};os.encryptedDataValidator={name:"EncryptedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"}].concat(tg)};var QS={name:"SignerInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:U.Class.UNIVERSAL,type:U.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:U.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};os.signedDataValidator={name:"SignedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},eg,{name:"SignedData.Certificates",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:U.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,capture:"signerInfos",optional:!0,value:[QS]}]};os.recipientInfoValidator={name:"RecipientInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:U.Class.UNIVERSAL,type:U.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}});var Cn=N((D4,ig)=>{var fc=ie();ig.exports=fc.md=fc.md||{};fc.md.algorithms=fc.md.algorithms||{}});var lg=N((L4,ug)=>{var Sr=ie();Cn();De();var og=ug.exports=Sr.sha256=Sr.sha256||{};Sr.md.sha256=Sr.md.algorithms.sha256=og;og.create=function(){ag||XS();var t=null,e=Sr.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Sr.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Sr.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),sg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Sr.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Tf.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};sg(f,r,i);var h=Sr.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 Tf=null,ag=!1,cg=null;function XS(){Tf=String.fromCharCode(128),Tf+=Sr.util.fillString(String.fromCharCode(0),64),cg=[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],ag=!0}function sg(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,d,p,y,g,E,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,h=t.h2,d=t.h3,p=t.h4,y=t.h5,g=t.h6,E=t.h7,u=0;u<64;++u)o=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=g^p&(y^g),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=E+o+a+cg[u]+e[u],i=s+c,E=g,g=y,y=p,p=d+n>>>0,d=h,h=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+h|0,t.h3=t.h3+d|0,t.h4=t.h4+p|0,t.h5=t.h5+y|0,t.h6=t.h6+g|0,t.h7=t.h7+E|0,x-=64}}});var hg=N((P4,fg)=>{var _r=ie();De();var hc=null;_r.util.isNodejs&&!_r.options.usePureJavaScript&&!process.versions["node-webkit"]&&(hc=ei());var jS=fg.exports=_r.prng=_r.prng||{};jS.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,h=e.plugin.increment,d=e.plugin.formatKey,p=e.plugin.formatSeed,y=_r.util.createBuffer();e.key=null,g();function g(E){if(E)return l(E);if(y.length()>=u)return l(null,y.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return _r.util.nextTick(function(){s(g)});var x=f(e.key,e.seed);e.generated+=x.length,y.putBytes(x),e.key=d(f(e.key,h(e.seed))),e.seed=p(f(e.key,e.seed)),_r.util.setImmediate(g)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,h=e.plugin.formatKey,d=e.plugin.formatSeed;e.key=null;for(var p=_r.util.createBuffer();p.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var y=l(e.key,e.seed);e.generated+=y.length,p.putBytes(y),e.key=h(l(e.key,f(e.seed))),e.seed=d(l(e.key,e.seed))}return p.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,h){if(f)return u(f);e.collect(h),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var h=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(h),e.generated=0}function c(u){var l=null,f=_r.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(D){return h.getRandomValues(D)});var d=_r.util.createBuffer();if(l)for(;d.length()<u;){var p=Math.max(1,Math.min(u-d.length(),65536)/4),y=new Uint32Array(Math.floor(p));try{l(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(D){if(!(typeof QuotaExceededError<"u"&&D instanceof QuotaExceededError))throw D}}if(d.length()<u)for(var E,x,_,B=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(B&65535),E=16807*(B>>16),x+=(E&32767)<<16,x+=E>>15,x=(x&2147483647)+(x>>31),B=x&4294967295;for(var g=0;g<3;++g)_=B>>>(g<<3),_^=Math.floor(Math.random()*256),d.putByte(_&255)}return d.getBytes(u)}return hc?(e.seedFile=function(u,l){hc.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},e.seedFileSync=function(u){return hc.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,h){function d(p){var y=p.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),h(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var h=f.data;h.forge&&h.forge.prng&&e.seedFile(h.forge.prng.needed,function(d,p){u.postMessage({forge:{prng:{err:d,bytes:p}}})})};u.addEventListener("message",l)}},e}});var ci=N((B4,Rf)=>{var ht=ie();ns();lg();hg();De();(function(){if(ht.random&&ht.random.getBytes){Rf.exports=ht.random;return}(function(t){var e={},r=new Array(4),n=ht.util.createBuffer();e.formatKey=function(f){var h=ht.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),ht.aes._expandKey(f,!1)},e.formatSeed=function(f){var h=ht.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},e.cipher=function(f,h){return ht.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=ht.md.sha256;function i(){var f=ht.prng.create(e);return f.getBytes=function(h,d){return f.generate(h,d)},f.getBytesSync=function(h){return f.generate(h)},f}var s=i(),o=null,a=ht.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),ht.options.usePureJavaScript||!ht.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!ht.random)ht.random=s;else for(var l in s)ht.random[l]=s[l];ht.random.createInstance=i,Rf.exports=ht.random})(typeof jQuery<"u"?jQuery:null)})()});var pg=N((O4,dg)=>{var ui=ie();De();ui.mgf=ui.mgf||{};var ZS=dg.exports=ui.mgf.mgf1=ui.mgf1=ui.mgf1||{};ZS.create=function(t){var e={generate:function(r,n){for(var i=new ui.util.ByteBuffer,s=Math.ceil(n/t.digestLength),o=0;o<s;o++){var a=new ui.util.ByteBuffer;a.putInt32(o),t.start(),t.update(r+a.getBytes()),i.putBuffer(t.digest())}return i.truncate(i.length()-n),i.getBytes()}};return e}});var yg=N((k4,mg)=>{var dc=ie();pg();mg.exports=dc.mgf=dc.mgf||{};dc.mgf.mgf1=dc.mgf1});var Eg=N((U4,gg)=>{var li=ie();ci();De();var JS=gg.exports=li.pss=li.pss||{};JS.create=function(t){arguments.length===3&&(t={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var e=t.md,r=t.mgf,n=e.digestLength,i=t.salt||null;typeof i=="string"&&(i=li.util.createBuffer(i));var s;if("saltLength"in t)s=t.saltLength;else if(i!==null)s=i.length();else throw new Error("Salt length not specified or specific salt not given.");if(i!==null&&i.length()!==s)throw new Error("Given salt length does not match length of given salt.");var o=t.prng||li.random,a={};return a.encode=function(c,u){var l,f=u-1,h=Math.ceil(f/8),d=c.digest().getBytes();if(h<n+s+2)throw new Error("Message is too long to encrypt.");var p;i===null?p=o.getBytesSync(s):p=i.bytes();var y=new li.util.ByteBuffer;y.fillWithByte(0,8),y.putBytes(d),y.putBytes(p),e.start(),e.update(y.getBytes());var g=e.digest().getBytes(),E=new li.util.ByteBuffer;E.fillWithByte(0,h-s-n-2),E.putByte(1),E.putBytes(p);var x=E.getBytes(),_=h-n-1,B=r.generate(g,_),D="";for(l=0;l<_;l++)D+=String.fromCharCode(x.charCodeAt(l)^B.charCodeAt(l));var L=65280>>8*h-f&255;return D=String.fromCharCode(D.charCodeAt(0)&~L)+D.substr(1),D+g+String.fromCharCode(188)},a.verify=function(c,u,l){var f,h=l-1,d=Math.ceil(h/8);if(u=u.substr(-d),d<n+s+2)throw new Error("Inconsistent parameters to PSS signature verification.");if(u.charCodeAt(d-1)!==188)throw new Error("Encoded message does not end in 0xBC.");var p=d-n-1,y=u.substr(0,p),g=u.substr(p,n),E=65280>>8*d-h&255;if(y.charCodeAt(0)&E)throw new Error("Bits beyond keysize not zero as expected.");var x=r.generate(g,p),_="";for(f=0;f<p;f++)_+=String.fromCharCode(y.charCodeAt(f)^x.charCodeAt(f));_=String.fromCharCode(_.charCodeAt(0)&~E)+_.substr(1);var B=d-n-s-2;for(f=0;f<B;f++)if(_.charCodeAt(f)!==0)throw new Error("Leftmost octets not zero as expected");if(_.charCodeAt(B)!==1)throw new Error("Inconsistent PSS signature, 0x01 marker not found");var D=_.substr(-s),L=new li.util.ByteBuffer;L.fillWithByte(0,8),L.putBytes(c),L.putBytes(D),e.start(),e.update(L.getBytes());var te=e.digest().getBytes();return g===te},a}});var yc=N((M4,Cg)=>{var Nf=ie();Cg.exports=Nf.jsbn=Nf.jsbn||{};var Wr,e_=0xdeadbeefcafe,vg=(e_&16777215)==15715070;function I(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}Nf.jsbn.BigInteger=I;function pe(){return new I(null)}function t_(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function r_(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function wg(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(I.prototype.am=wg,Wr=28):vg&&navigator.appName=="Microsoft Internet Explorer"?(I.prototype.am=r_,Wr=30):vg&&navigator.appName!="Netscape"?(I.prototype.am=t_,Wr=26):(I.prototype.am=wg,Wr=28);I.prototype.DB=Wr;I.prototype.DM=(1<<Wr)-1;I.prototype.DV=1<<Wr;var Df=52;I.prototype.FV=Math.pow(2,Df);I.prototype.F1=Df-Wr;I.prototype.F2=2*Wr-Df;var n_="0123456789abcdefghijklmnopqrstuvwxyz",pc=new Array,as,$t;as="0".charCodeAt(0);for($t=0;$t<=9;++$t)pc[as++]=$t;as="a".charCodeAt(0);for($t=10;$t<36;++$t)pc[as++]=$t;as="A".charCodeAt(0);for($t=10;$t<36;++$t)pc[as++]=$t;function xg(t){return n_.charAt(t)}function bg(t,e){var r=pc[t.charCodeAt(e)];return r??-1}function i_(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function s_(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function In(t){var e=pe();return e.fromInt(t),e}function o_(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:bg(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&I.ZERO.subTo(this,this)}function a_(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function c_(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=xg(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=xg(n));return i?s:"0"}function u_(){var t=pe();return I.ZERO.subTo(this,t),t}function l_(){return this.s<0?this.negate():this}function f_(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function mc(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function h_(){return this.t<=0?0:this.DB*(this.t-1)+mc(this.data[this.t-1]^this.s&this.DM)}function d_(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function p_(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function m_(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function y_(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function g_(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function E_(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&I.ZERO.subTo(e,e)}function v_(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function w_(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=pe());var s=pe(),o=this.s,a=t.s,c=this.DB-mc(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,d=(1<<this.F1)/f,p=1<<this.F2,y=r.t,g=y-u,E=e??pe();for(s.dlShiftTo(g,E),r.compareTo(E)>=0&&(r.data[r.t++]=1,r.subTo(E,r)),I.ONE.dlShiftTo(u,E),E.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--g>=0;){var x=r.data[--y]==l?this.DM:Math.floor(r.data[y]*h+(r.data[y-1]+p)*d);if((r.data[y]+=s.am(0,x,r,g,0,u))<x)for(s.dlShiftTo(g,E),r.subTo(E,r);r.data[y]<--x;)r.subTo(E,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&I.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&I.ZERO.subTo(r,r)}}}function x_(t){var e=pe();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(I.ZERO)>0&&t.subTo(e,e),e}function fi(t){this.m=t}function b_(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function S_(t){return t}function __(t){t.divRemTo(this.m,null,t)}function A_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function C_(t,e){t.squareTo(e),this.reduce(e)}fi.prototype.convert=b_;fi.prototype.revert=S_;fi.prototype.reduce=__;fi.prototype.mulTo=A_;fi.prototype.sqrTo=C_;function I_(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function hi(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function T_(t){var e=pe();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(I.ZERO)>0&&this.m.subTo(e,e),e}function R_(t){var e=pe();return t.copyTo(e),this.reduce(e),e}function N_(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function D_(t,e){t.squareTo(e),this.reduce(e)}function L_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}hi.prototype.convert=T_;hi.prototype.revert=R_;hi.prototype.reduce=N_;hi.prototype.mulTo=L_;hi.prototype.sqrTo=D_;function P_(){return(this.t>0?this.data[0]&1:this.s)==0}function B_(t,e){if(t>4294967295||t<1)return I.ONE;var r=pe(),n=pe(),i=e.convert(this),s=mc(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function O_(t,e){var r;return t<256||e.isEven()?r=new fi(e):r=new hi(e),this.exp(t,r)}I.prototype.copyTo=i_;I.prototype.fromInt=s_;I.prototype.fromString=o_;I.prototype.clamp=a_;I.prototype.dlShiftTo=d_;I.prototype.drShiftTo=p_;I.prototype.lShiftTo=m_;I.prototype.rShiftTo=y_;I.prototype.subTo=g_;I.prototype.multiplyTo=E_;I.prototype.squareTo=v_;I.prototype.divRemTo=w_;I.prototype.invDigit=I_;I.prototype.isEven=P_;I.prototype.exp=B_;I.prototype.toString=c_;I.prototype.negate=u_;I.prototype.abs=l_;I.prototype.compareTo=f_;I.prototype.bitLength=h_;I.prototype.mod=x_;I.prototype.modPowInt=O_;I.ZERO=In(0);I.ONE=In(1);function k_(){var t=pe();return this.copyTo(t),t}function U_(){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 M_(){return this.t==0?this.s:this.data[0]<<24>>24}function F_(){return this.t==0?this.s:this.data[0]<<16>>16}function K_(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function V_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function q_(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=In(r),i=pe(),s=pe(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function H_(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=bg(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&I.ZERO.subTo(this,this)}function z_(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(I.ONE.shiftLeft(t-1),Lf,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(I.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function $_(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function G_(t){return this.compareTo(t)==0}function Y_(t){return this.compareTo(t)<0?this:t}function W_(t){return this.compareTo(t)>0?this:t}function Q_(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function X_(t,e){return t&e}function j_(t){var e=pe();return this.bitwiseTo(t,X_,e),e}function Lf(t,e){return t|e}function Z_(t){var e=pe();return this.bitwiseTo(t,Lf,e),e}function Sg(t,e){return t^e}function J_(t){var e=pe();return this.bitwiseTo(t,Sg,e),e}function _g(t,e){return t&~e}function eA(t){var e=pe();return this.bitwiseTo(t,_g,e),e}function tA(){for(var t=pe(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function rA(t){var e=pe();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function nA(t){var e=pe();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function iA(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function sA(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+iA(this.data[t]);return this.s<0?this.t*this.DB:-1}function oA(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function aA(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=oA(this.data[r]^e);return t}function cA(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function uA(t,e){var r=I.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function lA(t){return this.changeBit(t,Lf)}function fA(t){return this.changeBit(t,_g)}function hA(t){return this.changeBit(t,Sg)}function dA(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function pA(t){var e=pe();return this.addTo(t,e),e}function mA(t){var e=pe();return this.subTo(t,e),e}function yA(t){var e=pe();return this.multiplyTo(t,e),e}function gA(t){var e=pe();return this.divRemTo(t,e,null),e}function EA(t){var e=pe();return this.divRemTo(t,null,e),e}function vA(t){var e=pe(),r=pe();return this.divRemTo(t,e,r),new Array(e,r)}function wA(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function xA(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function ao(){}function Ag(t){return t}function bA(t,e,r){t.multiplyTo(e,r)}function SA(t,e){t.squareTo(e)}ao.prototype.convert=Ag;ao.prototype.revert=Ag;ao.prototype.mulTo=bA;ao.prototype.sqrTo=SA;function _A(t){return this.exp(t,new ao)}function AA(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function CA(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function cs(t){this.r2=pe(),this.q3=pe(),I.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function IA(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=pe();return t.copyTo(e),this.reduce(e),e}function TA(t){return t}function RA(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function NA(t,e){t.squareTo(e),this.reduce(e)}function DA(t,e,r){t.multiplyTo(e,r),this.reduce(r)}cs.prototype.convert=IA;cs.prototype.revert=TA;cs.prototype.reduce=RA;cs.prototype.mulTo=DA;cs.prototype.sqrTo=NA;function LA(t,e){var r=t.bitLength(),n,i=In(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 fi(e):e.isEven()?s=new cs(e):s=new hi(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=pe();for(s.sqrTo(o[1],l);a<=u;)o[a]=pe(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,h,d=!0,p=pe(),y;for(r=mc(t.data[f])-1;f>=0;){for(r>=c?h=t.data[f]>>r-c&u:(h=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=t.data[f-1]>>this.DB+r-c)),a=n;!(h&1);)h>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),d)o[h].copyTo(i),d=!1;else{for(;a>1;)s.sqrTo(i,p),s.sqrTo(p,i),a-=2;a>0?s.sqrTo(i,p):(y=i,i=p,p=y),s.mulTo(p,o[h],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,p),y=i,i=p,p=y,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function PA(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function BA(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function OA(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return I.ZERO;for(var r=t.clone(),n=this.clone(),i=In(1),s=In(0),o=In(0),a=In(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(I.ONE)!=0)return I.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var or=[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],kA=(1<<26)/or[or.length-1];function UA(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=or[or.length-1]){for(e=0;e<or.length;++e)if(r.data[0]==or[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<or.length;){for(var n=or[e],i=e+1;i<or.length&&n<kA;)n*=or[i++];for(n=r.modInt(n);e<i;)if(n%or[e++]==0)return!1}return r.millerRabin(t)}function MA(t){var e=this.subtract(I.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=FA(),s,o=0;o<t;++o){do s=new I(this.bitLength(),i);while(s.compareTo(I.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(I.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(I.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function FA(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}I.prototype.chunkSize=K_;I.prototype.toRadix=q_;I.prototype.fromRadix=H_;I.prototype.fromNumber=z_;I.prototype.bitwiseTo=Q_;I.prototype.changeBit=uA;I.prototype.addTo=dA;I.prototype.dMultiply=wA;I.prototype.dAddOffset=xA;I.prototype.multiplyLowerTo=AA;I.prototype.multiplyUpperTo=CA;I.prototype.modInt=BA;I.prototype.millerRabin=MA;I.prototype.clone=k_;I.prototype.intValue=U_;I.prototype.byteValue=M_;I.prototype.shortValue=F_;I.prototype.signum=V_;I.prototype.toByteArray=$_;I.prototype.equals=G_;I.prototype.min=Y_;I.prototype.max=W_;I.prototype.and=j_;I.prototype.or=Z_;I.prototype.xor=J_;I.prototype.andNot=eA;I.prototype.not=tA;I.prototype.shiftLeft=rA;I.prototype.shiftRight=nA;I.prototype.getLowestSetBit=sA;I.prototype.bitCount=aA;I.prototype.testBit=cA;I.prototype.setBit=lA;I.prototype.clearBit=fA;I.prototype.flipBit=hA;I.prototype.add=pA;I.prototype.subtract=mA;I.prototype.multiply=yA;I.prototype.divide=gA;I.prototype.remainder=EA;I.prototype.divideAndRemainder=vA;I.prototype.modPow=LA;I.prototype.modInverse=OA;I.prototype.pow=_A;I.prototype.gcd=PA;I.prototype.isProbablePrime=UA});var Dg=N((F4,Ng)=>{var Ar=ie();Cn();De();var Tg=Ng.exports=Ar.sha1=Ar.sha1||{};Ar.md.sha1=Ar.md.algorithms.sha1=Tg;Tg.create=function(){Rg||KA();var t=null,e=Ar.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Ar.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ar.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Ig(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Ar.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Pf.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};Ig(f,r,i);var h=Ar.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 Pf=null,Rg=!1;function KA(){Pf=String.fromCharCode(128),Pf+=Ar.util.fillString(String.fromCharCode(0),64),Rg=!0}function Ig(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var Bg=N((K4,Pg)=>{var Cr=ie();De();ci();Dg();var Lg=Pg.exports=Cr.pkcs1=Cr.pkcs1||{};Lg.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=Cr.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-e.length,d=0;d<h;d++)f+="\0";var p=l.getBytes()+f+""+e;if(!i)i=Cr.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 y=gc(i,a-s.digestLength-1,o),g=Cr.util.xorBytes(p,y,p.length),E=gc(g,s.digestLength,o),x=Cr.util.xorBytes(i,E,i.length);return"\0"+x+g};Lg.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=e.length,g.expectedLength=o,g}if(i===void 0?i=Cr.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=gc(l,i.digestLength,s),h=Cr.util.xorBytes(u,f,u.length),d=gc(h,o-i.digestLength-1,s),p=Cr.util.xorBytes(l,d,l.length),y=p.substring(0,i.digestLength),g=c!=="\0",E=0;E<i.digestLength;++E)g|=a.charAt(E)!==y.charAt(E);for(var x=1,_=i.digestLength,B=i.digestLength;B<p.length;B++){var D=p.charCodeAt(B),L=D&1^1,te=x?65534:0;g|=D&te,x=x&L,_+=x}if(g||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function gc(t,e,r){r||(r=Cr.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var Og=N((V4,Bf)=>{var Tn=ie();De();yc();ci();(function(){if(Tn.prime){Bf.exports=Tn.prime;return}var t=Bf.exports=Tn.prime=Tn.prime||{},e=Tn.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,h){return f|h};t.generateProbablePrime=function(f,h,d){typeof h=="function"&&(d=h,h={}),h=h||{};var p=h.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var y=h.prng||Tn.random,g={nextBytes:function(E){for(var x=y.getBytesSync(E.length),_=0;_<E.length;++_)E[_]=x.charCodeAt(_)}};if(p.name==="PRIMEINC")return s(f,g,p.options,d);throw new Error("Invalid prime generation algorithm: "+p.name)};function s(f,h,d,p){return"workers"in d?c(f,h,d,p):o(f,h,d,p)}function o(f,h,d,p){var y=u(f,h),g=0,E=l(y.bitLength());"millerRabinTests"in d&&(E=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(y,f,h,g,E,x,p)}function a(f,h,d,p,y,g,E){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,d)),f.isProbablePrime(y))return E(null,f);f.dAddOffset(r[p++%8],0)}while(g<0||+new Date-x<g);Tn.util.setImmediate(function(){a(f,h,d,p,y,g,E)})}function c(f,h,d,p){if(typeof Worker>"u")return o(f,h,d,p);var y=u(f,h),g=d.workers,E=d.workLoad||100,x=E*30/8,_=d.workerScript||"forge/prime.worker.js";if(g===-1)return Tn.util.estimateCores(function(D,L){D&&(L=2),g=L-1,B()});B();function B(){g=Math.max(1,g);for(var D=[],L=0;L<g;++L)D[L]=new Worker(_);for(var te=g,L=0;L<g;++L)D[L].addEventListener("message",st);var ae=!1;function st(Zt){if(!ae){--te;var It=Zt.data;if(It.found){for(var Et=0;Et<D.length;++Et)D[Et].terminate();return ae=!0,p(null,new e(It.prime,16))}y.bitLength()>f&&(y=u(f,h));var Ii=y.toString(16);Zt.target.postMessage({hex:Ii,workLoad:E}),y.dAddOffset(x,0)}}}}function u(f,h){var d=new e(f,h),p=f-1;return d.testBit(p)||d.bitwiseTo(e.ONE.shiftLeft(p),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}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 co=N((q4,qg)=>{var z=ie();An();yc();is();Bg();Og();ci();De();typeof ce>"u"&&(ce=z.jsbn.BigInteger);var ce,Of=z.util.isNodejs?ei():null,S=z.asn1,Gt=z.util;z.pki=z.pki||{};qg.exports=z.pki.rsa=z.rsa=z.rsa||{};var Z=z.pki,VA=[6,4,2,4,2,4,6,2],qA={name:"PrivateKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},HA={name:"RSAPrivateKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},zA={name:"RSAPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},$A=z.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},GA={name:"DigestInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:S.Class.UNIVERSAL,type:S.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:S.Class.UNIVERSAL,type:S.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},YA=function(t){var e;if(t.algorithm in Z.oids)e=Z.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=S.oidToDer(e).getBytes(),i=S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[]),s=S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[]);s.value.push(S.create(S.Class.UNIVERSAL,S.Type.OID,!1,n)),s.value.push(S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,""));var o=S.create(S.Class.UNIVERSAL,S.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),S.toDer(i).getBytes()},Kg=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(ce.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(ce.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new ce(z.util.bytesToHex(z.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(ce.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};Z.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=Vg(t,e,r)):(i=z.util.createBuffer(),i.putBytes(t));for(var o=new ce(i.toHex(),16),a=Kg(o,e,n),c=a.toString(16),u=z.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(z.util.hexToBytes(c)),u.getBytes()};Z.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new ce(z.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Kg(o,e,r),c=a.toString(16),u=z.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(z.util.hexToBytes(c)),n!==!1?Ec(u.getBytes(),e,r):u.getBytes()};Z.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||z.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new ce(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Z.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new ce(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new ce(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(ce.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(QA(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(VA[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(ce.ONE).gcd(t.e).compareTo(ce.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(ce.ONE),t.q1=t.q.subtract(ce.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(ce.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:Z.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Z.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};Z.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!z.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(kg("generateKeyPair"))return Of.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Z.privateKeyFromPem(u),publicKey:Z.publicKeyFromPem(c)})});if(Ug("generateKey")&&Ug("exportKey"))return Gt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Fg(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Gt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Z.privateKeyFromAsn1(S.fromDer(z.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Z.setRsaPublicKey(c.n,c.e)})}});if(Mg("generateKey")&&Mg("exportKey")){var i=Gt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Fg(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Gt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Z.privateKeyFromAsn1(S.fromDer(z.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Z.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(kg("generateKeyPairSync")){var s=Of.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Z.privateKeyFromPem(s.privateKey),publicKey:Z.publicKeyFromPem(s.publicKey)}}}var o=Z.rsa.createKeyPairGenerationState(t,e,r);if(!n)return Z.rsa.stepKeyPairGenerationState(o,0),o.keys;WA(o,r,n)};Z.setRsaPublicKey=Z.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return Vg(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return z.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 Z.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=Ec(u,r,!0);var l=S.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!S.validate(l,GA,f,h)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=h,d}var p=S.derToOid(f.algorithmIdentifier);if(!(p===z.oids.md2||p===z.oids.md5||p===z.oids.sha1||p===z.oids.sha224||p===z.oids.sha256||p===z.oids.sha384||p===z.oids.sha512||p===z.oids["sha512-224"]||p===z.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=p,d}if((p===z.oids.md2||p===z.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=Ec(u,r,!0),c===u}});var a=Z.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Z.setRsaPrivateKey=Z.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var h=Z.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Ec};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(d,p){return z.pkcs1.decode_rsa_oaep(p,d,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(d){return d}};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:YA},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Z.rsa.encrypt(h,c,f)},c};Z.wrapRsaPrivateKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,S.integerToDer(0).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.OID,!1,S.oidToDer(Z.oids.rsaEncryption).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,"")]),S.create(S.Class.UNIVERSAL,S.Type.OCTETSTRING,!1,S.toDer(t).getBytes())])};Z.privateKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,qA,e,r)&&(t=S.fromDer(z.util.createBuffer(e.privateKey))),e={},r=[],!S.validate(t,HA,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=z.util.createBuffer(e.privateKeyModulus).toHex(),s=z.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=z.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=z.util.createBuffer(e.privateKeyPrime1).toHex(),c=z.util.createBuffer(e.privateKeyPrime2).toHex(),u=z.util.createBuffer(e.privateKeyExponent1).toHex(),l=z.util.createBuffer(e.privateKeyExponent2).toHex(),f=z.util.createBuffer(e.privateKeyCoefficient).toHex(),Z.setRsaPrivateKey(new ce(i,16),new ce(s,16),new ce(o,16),new ce(a,16),new ce(c,16),new ce(u,16),new ce(l,16),new ce(f,16))};Z.privateKeyToAsn1=Z.privateKeyToRSAPrivateKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,S.integerToDer(0).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.e)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.d)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.p)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.q)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.dP)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.dQ)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.qInv))])};Z.publicKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,$A,e,r)){var n=S.derToOid(e.publicKeyOid);if(n!==Z.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!S.validate(t,zA,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=z.util.createBuffer(e.publicKeyModulus).toHex(),o=z.util.createBuffer(e.publicKeyExponent).toHex();return Z.setRsaPublicKey(new ce(s,16),new ce(o,16))};Z.publicKeyToAsn1=Z.publicKeyToSubjectPublicKeyInfo=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.OID,!1,S.oidToDer(Z.oids.rsaEncryption).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,"")]),S.create(S.Class.UNIVERSAL,S.Type.BITSTRING,!1,[Z.publicKeyToRSAPublicKey(t)])])};Z.publicKeyToRSAPublicKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.e))])};function Vg(t,e,r){var n=z.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=z.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function Ec(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=z.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function WA(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){z.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(ce.ONE).gcd(t.e).compareTo(ce.ONE)!==0){t.p=null,i();return}if(t.q.subtract(ce.ONE).gcd(t.e).compareTo(ce.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(ce.ONE),t.q1=t.q.subtract(ce.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(ce.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:Z.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Z.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Ir(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=z.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function QA(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function kg(t){return z.util.isNodejs&&typeof Of[t]=="function"}function Ug(t){return typeof Gt.globalScope<"u"&&typeof Gt.globalScope.crypto=="object"&&typeof Gt.globalScope.crypto.subtle=="object"&&typeof Gt.globalScope.crypto.subtle[t]=="function"}function Mg(t){return typeof Gt.globalScope<"u"&&typeof Gt.globalScope.msCrypto=="object"&&typeof Gt.globalScope.msCrypto.subtle=="object"&&typeof Gt.globalScope.msCrypto.subtle[t]=="function"}function Fg(t){for(var e=z.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var Uf=N((H4,Yg)=>{var $=ie();ns();An();ac();Cn();yg();is();lc();Eg();co();De();var m=$.asn1,P=Yg.exports=$.pki=$.pki||{},ue=P.oids,Ge={};Ge.CN=ue.commonName;Ge.commonName="CN";Ge.C=ue.countryName;Ge.countryName="C";Ge.L=ue.localityName;Ge.localityName="L";Ge.ST=ue.stateOrProvinceName;Ge.stateOrProvinceName="ST";Ge.O=ue.organizationName;Ge.organizationName="O";Ge.OU=ue.organizationalUnitName;Ge.organizationalUnitName="OU";Ge.E=ue.emailAddress;Ge.emailAddress="E";var zg=$.pki.rsa.publicKeyValidator,XA={name:"Certificate",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.signature.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certinfoSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certIssuer"},{name:"Certificate.TBSCertificate.validity",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.validity.notBefore (utc)",tagClass:m.Class.UNIVERSAL,type:m.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity1UTCTime"},{name:"Certificate.TBSCertificate.validity.notBefore (generalized)",tagClass:m.Class.UNIVERSAL,type:m.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity2GeneralizedTime"},{name:"Certificate.TBSCertificate.validity.notAfter (utc)",tagClass:m.Class.UNIVERSAL,type:m.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity3UTCTime"},{name:"Certificate.TBSCertificate.validity.notAfter (generalized)",tagClass:m.Class.UNIVERSAL,type:m.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity4GeneralizedTime"}]},{name:"Certificate.TBSCertificate.subject",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certSubject"},zg,{name:"Certificate.TBSCertificate.issuerUniqueID",tagClass:m.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",tagClass:m.Class.CONTEXT_SPECIFIC,type:2,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",tagClass:m.Class.CONTEXT_SPECIFIC,type:3,constructed:!0,captureAsn1:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.signatureAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"certSignatureParams"}]},{name:"Certificate.signatureValue",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSignature"}]},jA={name:"rsapss",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.hashAlgorithm",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier",tagClass:m.Class.UNIVERSAL,type:m.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"hashOid"}]}]},{name:"rsapss.maskGenAlgorithm",tagClass:m.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier",tagClass:m.Class.UNIVERSAL,type:m.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"maskGenOid"},{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"maskGenHashOid"}]}]}]},{name:"rsapss.saltLength",tagClass:m.Class.CONTEXT_SPECIFIC,type:2,optional:!0,value:[{name:"rsapss.saltLength.saltLength",tagClass:m.Class.UNIVERSAL,type:m.Class.INTEGER,constructed:!1,capture:"saltLength"}]},{name:"rsapss.trailerField",tagClass:m.Class.CONTEXT_SPECIFIC,type:3,optional:!0,value:[{name:"rsapss.trailer.trailer",tagClass:m.Class.UNIVERSAL,type:m.Class.INTEGER,constructed:!1,capture:"trailer"}]}]},ZA={name:"CertificationRequestInfo",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfo",value:[{name:"CertificationRequestInfo.integer",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certificationRequestInfoVersion"},{name:"CertificationRequestInfo.subject",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfoSubject"},zg,{name:"CertificationRequestInfo.attributes",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"certificationRequestInfoAttributes",value:[{name:"CertificationRequestInfo.attributes",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequestInfo.attributes.type",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1},{name:"CertificationRequestInfo.attributes.value",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0}]}]}]},JA={name:"CertificationRequest",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[ZA,{name:"CertificationRequest.signatureAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequest.signatureAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"csrSignatureOid"},{name:"CertificationRequest.signatureAlgorithm.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"csrSignatureParams"}]},{name:"CertificationRequest.signature",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"csrSignature"}]};P.RDNAttributesAsArray=function(t,e){for(var r=[],n,i,s,o=0;o<t.value.length;++o){n=t.value[o];for(var a=0;a<n.value.length;++a)s={},i=n.value[a],s.type=m.derToOid(i.value[0].value),s.value=i.value[1].value,s.valueTagClass=i.value[1].type,s.type in ue&&(s.name=ue[s.type],s.name in Ge&&(s.shortName=Ge[s.name])),e&&(e.update(s.type),e.update(s.value)),r.push(s)}return r};P.CRIAttributesAsArray=function(t){for(var e=[],r=0;r<t.length;++r)for(var n=t[r],i=m.derToOid(n.value[0].value),s=n.value[1].value,o=0;o<s.length;++o){var a={};if(a.type=i,a.value=s[o].value,a.valueTagClass=s[o].type,a.type in ue&&(a.name=ue[a.type],a.name in Ge&&(a.shortName=Ge[a.name])),a.type===ue.extensionRequest){a.extensions=[];for(var c=0;c<a.value.length;++c)a.extensions.push(P.certificateExtensionFromAsn1(a.value[c]))}e.push(a)}return e};function Rn(t,e){typeof e=="string"&&(e={shortName:e});for(var r=null,n,i=0;r===null&&i<t.attributes.length;++i)n=t.attributes[i],(e.type&&e.type===n.type||e.name&&e.name===n.name||e.shortName&&e.shortName===n.shortName)&&(r=n);return r}var vc=function(t,e,r){var n={};if(t!==ue["RSASSA-PSS"])return n;r&&(n={hash:{algorithmOid:ue.sha1},mgf:{algorithmOid:ue.mgf1,hash:{algorithmOid:ue.sha1}},saltLength:20});var i={},s=[];if(!m.validate(e,jA,i,s)){var o=new Error("Cannot read RSASSA-PSS parameter block.");throw o.errors=s,o}return i.hashOid!==void 0&&(n.hash=n.hash||{},n.hash.algorithmOid=m.derToOid(i.hashOid)),i.maskGenOid!==void 0&&(n.mgf=n.mgf||{},n.mgf.algorithmOid=m.derToOid(i.maskGenOid),n.mgf.hash=n.mgf.hash||{},n.mgf.hash.algorithmOid=m.derToOid(i.maskGenHashOid)),i.saltLength!==void 0&&(n.saltLength=i.saltLength.charCodeAt(0)),n},wc=function(t){switch(ue[t.signatureOid]){case"sha1WithRSAEncryption":case"sha1WithRSASignature":return $.md.sha1.create();case"md5WithRSAEncryption":return $.md.md5.create();case"sha256WithRSAEncryption":return $.md.sha256.create();case"sha384WithRSAEncryption":return $.md.sha384.create();case"sha512WithRSAEncryption":return $.md.sha512.create();case"RSASSA-PSS":return $.md.sha256.create();default:var e=new Error("Could not compute "+t.type+" digest. Unknown signature OID.");throw e.signatureOid=t.signatureOid,e}},$g=function(t){var e=t.certificate,r;switch(e.signatureOid){case ue.sha1WithRSAEncryption:case ue.sha1WithRSASignature:break;case ue["RSASSA-PSS"]:var n,i;if(n=ue[e.signatureParameters.mgf.hash.algorithmOid],n===void 0||$.md[n]===void 0){var s=new Error("Unsupported MGF hash function.");throw s.oid=e.signatureParameters.mgf.hash.algorithmOid,s.name=n,s}if(i=ue[e.signatureParameters.mgf.algorithmOid],i===void 0||$.mgf[i]===void 0){var s=new Error("Unsupported MGF function.");throw s.oid=e.signatureParameters.mgf.algorithmOid,s.name=i,s}if(i=$.mgf[i].create($.md[n].create()),n=ue[e.signatureParameters.hash.algorithmOid],n===void 0||$.md[n]===void 0){var s=new Error("Unsupported RSASSA-PSS hash function.");throw s.oid=e.signatureParameters.hash.algorithmOid,s.name=n,s}r=$.pss.create($.md[n].create(),i,e.signatureParameters.saltLength);break}return e.publicKey.verify(t.md.digest().getBytes(),t.signature,r)};P.certificateFromPem=function(t,e,r){var n=$.pem.decode(t)[0];if(n.type!=="CERTIFICATE"&&n.type!=="X509 CERTIFICATE"&&n.type!=="TRUSTED CERTIFICATE"){var i=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw i.headerType=n.type,i}if(n.procType&&n.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var s=m.fromDer(n.body,r);return P.certificateFromAsn1(s,e)};P.certificateToPem=function(t,e){var r={type:"CERTIFICATE",body:m.toDer(P.certificateToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.publicKeyFromPem=function(t){var e=$.pem.decode(t)[0];if(e.type!=="PUBLIC KEY"&&e.type!=="RSA PUBLIC KEY"){var r=new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert public key from PEM; PEM is encrypted.");var n=m.fromDer(e.body);return P.publicKeyFromAsn1(n)};P.publicKeyToPem=function(t,e){var r={type:"PUBLIC KEY",body:m.toDer(P.publicKeyToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.publicKeyToRSAPublicKeyPem=function(t,e){var r={type:"RSA PUBLIC KEY",body:m.toDer(P.publicKeyToRSAPublicKey(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.getPublicKeyFingerprint=function(t,e){e=e||{};var r=e.md||$.md.sha1.create(),n=e.type||"RSAPublicKey",i;switch(n){case"RSAPublicKey":i=m.toDer(P.publicKeyToRSAPublicKey(t)).getBytes();break;case"SubjectPublicKeyInfo":i=m.toDer(P.publicKeyToAsn1(t)).getBytes();break;default:throw new Error('Unknown fingerprint type "'+e.type+'".')}r.start(),r.update(i);var s=r.digest();if(e.encoding==="hex"){var o=s.toHex();return e.delimiter?o.match(/.{2}/g).join(e.delimiter):o}else{if(e.encoding==="binary")return s.getBytes();if(e.encoding)throw new Error('Unknown encoding "'+e.encoding+'".')}return s};P.certificationRequestFromPem=function(t,e,r){var n=$.pem.decode(t)[0];if(n.type!=="CERTIFICATE REQUEST"){var i=new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".');throw i.headerType=n.type,i}if(n.procType&&n.procType.type==="ENCRYPTED")throw new Error("Could not convert certification request from PEM; PEM is encrypted.");var s=m.fromDer(n.body,r);return P.certificationRequestFromAsn1(s,e)};P.certificationRequestToPem=function(t,e){var r={type:"CERTIFICATE REQUEST",body:m.toDer(P.certificationRequestToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.createCertificate=function(){var t={};return t.version=2,t.serialNumber="00",t.signatureOid=null,t.signature=null,t.siginfo={},t.siginfo.algorithmOid=null,t.validity={},t.validity.notBefore=new Date,t.validity.notAfter=new Date,t.issuer={},t.issuer.getField=function(e){return Rn(t.issuer,e)},t.issuer.addField=function(e){Yt([e]),t.issuer.attributes.push(e)},t.issuer.attributes=[],t.issuer.hash=null,t.subject={},t.subject.getField=function(e){return Rn(t.subject,e)},t.subject.addField=function(e){Yt([e]),t.subject.attributes.push(e)},t.subject.attributes=[],t.subject.hash=null,t.extensions=[],t.publicKey=null,t.md=null,t.setSubject=function(e,r){Yt(e),t.subject.attributes=e,delete t.subject.uniqueId,r&&(t.subject.uniqueId=r),t.subject.hash=null},t.setIssuer=function(e,r){Yt(e),t.issuer.attributes=e,delete t.issuer.uniqueId,r&&(t.issuer.uniqueId=r),t.issuer.hash=null},t.setExtensions=function(e){for(var r=0;r<e.length;++r)Gg(e[r],{cert:t});t.extensions=e},t.getExtension=function(e){typeof e=="string"&&(e={name:e});for(var r=null,n,i=0;r===null&&i<t.extensions.length;++i)n=t.extensions[i],(e.id&&n.id===e.id||e.name&&n.name===e.name)&&(r=n);return r},t.sign=function(e,r){t.md=r||$.md.sha1.create();var n=ue[t.md.algorithm+"WithRSAEncryption"];if(!n){var i=new Error("Could not compute certificate digest. Unknown message digest algorithm OID.");throw i.algorithm=t.md.algorithm,i}t.signatureOid=t.siginfo.algorithmOid=n,t.tbsCertificate=P.getTBSCertificate(t);var s=m.toDer(t.tbsCertificate);t.md.update(s.getBytes()),t.signature=e.sign(t.md)},t.verify=function(e){var r=!1;if(!t.issued(e)){var n=e.issuer,i=t.subject,s=new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.");throw s.expectedIssuer=i.attributes,s.actualIssuer=n.attributes,s}var o=e.md;if(o===null){o=wc({signatureOid:e.signatureOid,type:"certificate"});var a=e.tbsCertificate||P.getTBSCertificate(e),c=m.toDer(a);o.update(c.getBytes())}return o!==null&&(r=$g({certificate:t,md:o,signature:e.signature})),r},t.isIssuer=function(e){var r=!1,n=t.issuer,i=e.subject;if(n.hash&&i.hash)r=n.hash===i.hash;else if(n.attributes.length===i.attributes.length){r=!0;for(var s,o,a=0;r&&a<n.attributes.length;++a)s=n.attributes[a],o=i.attributes[a],(s.type!==o.type||s.value!==o.value)&&(r=!1)}return r},t.issued=function(e){return e.isIssuer(t)},t.generateSubjectKeyIdentifier=function(){return P.getPublicKeyFingerprint(t.publicKey,{type:"RSAPublicKey"})},t.verifySubjectKeyIdentifier=function(){for(var e=ue.subjectKeyIdentifier,r=0;r<t.extensions.length;++r){var n=t.extensions[r];if(n.id===e){var i=t.generateSubjectKeyIdentifier().getBytes();return $.util.hexToBytes(n.subjectKeyIdentifier)===i}}return!1},t};P.certificateFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,XA,r,n)){var i=new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate.");throw i.errors=n,i}var s=m.derToOid(r.publicKeyOid);if(s!==P.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=P.createCertificate();o.version=r.certVersion?r.certVersion.charCodeAt(0):0;var a=$.util.createBuffer(r.certSerialNumber);o.serialNumber=a.toHex(),o.signatureOid=$.asn1.derToOid(r.certSignatureOid),o.signatureParameters=vc(o.signatureOid,r.certSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.certinfoSignatureOid),o.siginfo.parameters=vc(o.siginfo.algorithmOid,r.certinfoSignatureParams,!1),o.signature=r.certSignature;var c=[];if(r.certValidity1UTCTime!==void 0&&c.push(m.utcTimeToDate(r.certValidity1UTCTime)),r.certValidity2GeneralizedTime!==void 0&&c.push(m.generalizedTimeToDate(r.certValidity2GeneralizedTime)),r.certValidity3UTCTime!==void 0&&c.push(m.utcTimeToDate(r.certValidity3UTCTime)),r.certValidity4GeneralizedTime!==void 0&&c.push(m.generalizedTimeToDate(r.certValidity4GeneralizedTime)),c.length>2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(c.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(o.validity.notBefore=c[0],o.validity.notAfter=c[1],o.tbsCertificate=r.tbsCertificate,e){o.md=wc({signatureOid:o.signatureOid,type:"certificate"});var u=m.toDer(o.tbsCertificate);o.md.update(u.getBytes())}var l=$.md.sha1.create(),f=m.toDer(r.certIssuer);l.update(f.getBytes()),o.issuer.getField=function(p){return Rn(o.issuer,p)},o.issuer.addField=function(p){Yt([p]),o.issuer.attributes.push(p)},o.issuer.attributes=P.RDNAttributesAsArray(r.certIssuer),r.certIssuerUniqueId&&(o.issuer.uniqueId=r.certIssuerUniqueId),o.issuer.hash=l.digest().toHex();var h=$.md.sha1.create(),d=m.toDer(r.certSubject);return h.update(d.getBytes()),o.subject.getField=function(p){return Rn(o.subject,p)},o.subject.addField=function(p){Yt([p]),o.subject.attributes.push(p)},o.subject.attributes=P.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(o.subject.uniqueId=r.certSubjectUniqueId),o.subject.hash=h.digest().toHex(),r.certExtensions?o.extensions=P.certificateExtensionsFromAsn1(r.certExtensions):o.extensions=[],o.publicKey=P.publicKeyFromAsn1(r.subjectPublicKeyInfo),o};P.certificateExtensionsFromAsn1=function(t){for(var e=[],r=0;r<t.value.length;++r)for(var n=t.value[r],i=0;i<n.value.length;++i)e.push(P.certificateExtensionFromAsn1(n.value[i]));return e};P.certificateExtensionFromAsn1=function(t){var e={};if(e.id=m.derToOid(t.value[0].value),e.critical=!1,t.value[1].type===m.Type.BOOLEAN?(e.critical=t.value[1].value.charCodeAt(0)!==0,e.value=t.value[2].value):e.value=t.value[1].value,e.id in ue){if(e.name=ue[e.id],e.name==="keyUsage"){var r=m.fromDer(e.value),n=0,i=0;r.value.length>1&&(n=r.value.charCodeAt(1),i=r.value.length>2?r.value.charCodeAt(2):0),e.digitalSignature=(n&128)===128,e.nonRepudiation=(n&64)===64,e.keyEncipherment=(n&32)===32,e.dataEncipherment=(n&16)===16,e.keyAgreement=(n&8)===8,e.keyCertSign=(n&4)===4,e.cRLSign=(n&2)===2,e.encipherOnly=(n&1)===1,e.decipherOnly=(i&128)===128}else if(e.name==="basicConstraints"){var r=m.fromDer(e.value);r.value.length>0&&r.value[0].type===m.Type.BOOLEAN?e.cA=r.value[0].value.charCodeAt(0)!==0:e.cA=!1;var s=null;r.value.length>0&&r.value[0].type===m.Type.INTEGER?s=r.value[0].value:r.value.length>1&&(s=r.value[1].value),s!==null&&(e.pathLenConstraint=m.derToInteger(s))}else if(e.name==="extKeyUsage")for(var r=m.fromDer(e.value),o=0;o<r.value.length;++o){var a=m.derToOid(r.value[o].value);a in ue?e[ue[a]]=!0:e[a]=!0}else if(e.name==="nsCertType"){var r=m.fromDer(e.value),n=0;r.value.length>1&&(n=r.value.charCodeAt(1)),e.client=(n&128)===128,e.server=(n&64)===64,e.email=(n&32)===32,e.objsign=(n&16)===16,e.reserved=(n&8)===8,e.sslCA=(n&4)===4,e.emailCA=(n&2)===2,e.objCA=(n&1)===1}else if(e.name==="subjectAltName"||e.name==="issuerAltName"){e.altNames=[];for(var c,r=m.fromDer(e.value),u=0;u<r.value.length;++u){c=r.value[u];var l={type:c.type,value:c.value};switch(e.altNames.push(l),c.type){case 1:case 2:case 6:break;case 7:l.ip=$.util.bytesToIP(c.value);break;case 8:l.oid=m.derToOid(c.value);break;default:}}}else if(e.name==="subjectKeyIdentifier"){var r=m.fromDer(e.value);e.subjectKeyIdentifier=$.util.bytesToHex(r.value)}}return e};P.certificationRequestFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,JA,r,n)){var i=new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest.");throw i.errors=n,i}var s=m.derToOid(r.publicKeyOid);if(s!==P.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=P.createCertificationRequest();if(o.version=r.csrVersion?r.csrVersion.charCodeAt(0):0,o.signatureOid=$.asn1.derToOid(r.csrSignatureOid),o.signatureParameters=vc(o.signatureOid,r.csrSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.csrSignatureOid),o.siginfo.parameters=vc(o.siginfo.algorithmOid,r.csrSignatureParams,!1),o.signature=r.csrSignature,o.certificationRequestInfo=r.certificationRequestInfo,e){o.md=wc({signatureOid:o.signatureOid,type:"certification request"});var a=m.toDer(o.certificationRequestInfo);o.md.update(a.getBytes())}var c=$.md.sha1.create();return o.subject.getField=function(u){return Rn(o.subject,u)},o.subject.addField=function(u){Yt([u]),o.subject.attributes.push(u)},o.subject.attributes=P.RDNAttributesAsArray(r.certificationRequestInfoSubject,c),o.subject.hash=c.digest().toHex(),o.publicKey=P.publicKeyFromAsn1(r.subjectPublicKeyInfo),o.getAttribute=function(u){return Rn(o,u)},o.addAttribute=function(u){Yt([u]),o.attributes.push(u)},o.attributes=P.CRIAttributesAsArray(r.certificationRequestInfoAttributes||[]),o};P.createCertificationRequest=function(){var t={};return t.version=0,t.signatureOid=null,t.signature=null,t.siginfo={},t.siginfo.algorithmOid=null,t.subject={},t.subject.getField=function(e){return Rn(t.subject,e)},t.subject.addField=function(e){Yt([e]),t.subject.attributes.push(e)},t.subject.attributes=[],t.subject.hash=null,t.publicKey=null,t.attributes=[],t.getAttribute=function(e){return Rn(t,e)},t.addAttribute=function(e){Yt([e]),t.attributes.push(e)},t.md=null,t.setSubject=function(e){Yt(e),t.subject.attributes=e,t.subject.hash=null},t.setAttributes=function(e){Yt(e),t.attributes=e},t.sign=function(e,r){t.md=r||$.md.sha1.create();var n=ue[t.md.algorithm+"WithRSAEncryption"];if(!n){var i=new Error("Could not compute certification request digest. Unknown message digest algorithm OID.");throw i.algorithm=t.md.algorithm,i}t.signatureOid=t.siginfo.algorithmOid=n,t.certificationRequestInfo=P.getCertificationRequestInfo(t);var s=m.toDer(t.certificationRequestInfo);t.md.update(s.getBytes()),t.signature=e.sign(t.md)},t.verify=function(){var e=!1,r=t.md;if(r===null){r=wc({signatureOid:t.signatureOid,type:"certification request"});var n=t.certificationRequestInfo||P.getCertificationRequestInfo(t),i=m.toDer(n);r.update(i.getBytes())}return r!==null&&(e=$g({certificate:t,md:r,signature:t.signature})),e},t};function us(t){for(var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),r,n,i=t.attributes,s=0;s<i.length;++s){r=i[s];var o=r.value,a=m.Type.PRINTABLESTRING;"valueTagClass"in r&&(a=r.valueTagClass,a===m.Type.UTF8&&(o=$.util.encodeUtf8(o))),n=m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(r.type).getBytes()),m.create(m.Class.UNIVERSAL,a,!1,o)])]),e.value.push(n)}return e}function Yt(t){for(var e,r=0;r<t.length;++r){if(e=t[r],typeof e.name>"u"&&(e.type&&e.type in P.oids?e.name=P.oids[e.type]:e.shortName&&e.shortName in Ge&&(e.name=P.oids[Ge[e.shortName]])),typeof e.type>"u")if(e.name&&e.name in P.oids)e.type=P.oids[e.name];else{var n=new Error("Attribute type not specified.");throw n.attribute=e,n}if(typeof e.shortName>"u"&&e.name&&e.name in Ge&&(e.shortName=Ge[e.name]),e.type===ue.extensionRequest&&(e.valueConstructed=!0,e.valueTagClass=m.Type.SEQUENCE,!e.value&&e.extensions)){e.value=[];for(var i=0;i<e.extensions.length;++i)e.value.push(P.certificateExtensionToAsn1(Gg(e.extensions[i])))}if(typeof e.value>"u"){var n=new Error("Attribute value not specified.");throw n.attribute=e,n}}}function Gg(t,e){if(e=e||{},typeof t.name>"u"&&t.id&&t.id in P.oids&&(t.name=P.oids[t.id]),typeof t.id>"u")if(t.name&&t.name in P.oids)t.id=P.oids[t.name];else{var r=new Error("Extension ID not specified.");throw r.extension=t,r}if(typeof t.value<"u")return t;if(t.name==="keyUsage"){var n=0,i=0,s=0;t.digitalSignature&&(i|=128,n=7),t.nonRepudiation&&(i|=64,n=6),t.keyEncipherment&&(i|=32,n=5),t.dataEncipherment&&(i|=16,n=4),t.keyAgreement&&(i|=8,n=3),t.keyCertSign&&(i|=4,n=2),t.cRLSign&&(i|=2,n=1),t.encipherOnly&&(i|=1,n=0),t.decipherOnly&&(s|=128,n=7);var o=String.fromCharCode(n);s!==0?o+=String.fromCharCode(i)+String.fromCharCode(s):i!==0&&(o+=String.fromCharCode(i)),t.value=m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,o)}else if(t.name==="basicConstraints")t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),t.cA&&t.value.value.push(m.create(m.Class.UNIVERSAL,m.Type.BOOLEAN,!1,String.fromCharCode(255))),"pathLenConstraint"in t&&t.value.value.push(m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.pathLenConstraint).getBytes()));else if(t.name==="extKeyUsage"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);var a=t.value.value;for(var c in t)t[c]===!0&&(c in ue?a.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(ue[c]).getBytes())):c.indexOf(".")!==-1&&a.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(c).getBytes())))}else if(t.name==="nsCertType"){var n=0,i=0;t.client&&(i|=128,n=7),t.server&&(i|=64,n=6),t.email&&(i|=32,n=5),t.objsign&&(i|=16,n=4),t.reserved&&(i|=8,n=3),t.sslCA&&(i|=4,n=2),t.emailCA&&(i|=2,n=1),t.objCA&&(i|=1,n=0);var o=String.fromCharCode(n);i!==0&&(o+=String.fromCharCode(i)),t.value=m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,o)}else if(t.name==="subjectAltName"||t.name==="issuerAltName"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);for(var u,l=0;l<t.altNames.length;++l){u=t.altNames[l];var o=u.value;if(u.type===7&&u.ip){if(o=$.util.bytesFromIP(u.ip),o===null){var r=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw r.extension=t,r}}else u.type===8&&(u.oid?o=m.oidToDer(m.oidToDer(u.oid)):o=m.oidToDer(o));t.value.value.push(m.create(m.Class.CONTEXT_SPECIFIC,u.type,!1,o))}}else if(t.name==="nsComment"&&e.cert){if(!/^[\x00-\x7F]*$/.test(t.comment)||t.comment.length<1||t.comment.length>128)throw new Error('Invalid "nsComment" content.');t.value=m.create(m.Class.UNIVERSAL,m.Type.IA5STRING,!1,t.comment)}else if(t.name==="subjectKeyIdentifier"&&e.cert){var f=e.cert.generateSubjectKeyIdentifier();t.subjectKeyIdentifier=f.toHex(),t.value=m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,f.getBytes())}else if(t.name==="authorityKeyIdentifier"&&e.cert){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);var a=t.value.value;if(t.keyIdentifier){var h=t.keyIdentifier===!0?e.cert.generateSubjectKeyIdentifier().getBytes():t.keyIdentifier;a.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!1,h))}if(t.authorityCertIssuer){var d=[m.create(m.Class.CONTEXT_SPECIFIC,4,!0,[us(t.authorityCertIssuer===!0?e.cert.issuer:t.authorityCertIssuer)])];a.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,d))}if(t.serialNumber){var p=$.util.hexToBytes(t.serialNumber===!0?e.cert.serialNumber:t.serialNumber);a.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!1,p))}}else if(t.name==="cRLDistributionPoints"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);for(var a=t.value.value,y=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),g=m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[]),u,l=0;l<t.altNames.length;++l){u=t.altNames[l];var o=u.value;if(u.type===7&&u.ip){if(o=$.util.bytesFromIP(u.ip),o===null){var r=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw r.extension=t,r}}else u.type===8&&(u.oid?o=m.oidToDer(m.oidToDer(u.oid)):o=m.oidToDer(o));g.value.push(m.create(m.Class.CONTEXT_SPECIFIC,u.type,!1,o))}y.value.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[g])),a.push(y)}if(typeof t.value>"u"){var r=new Error("Extension value not specified.");throw r.extension=t,r}return t}function kf(t,e){switch(t){case ue["RSASSA-PSS"]:var r=[];return e.hash.algorithmOid!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.hash.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")])])),e.mgf.algorithmOid!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.mgf.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.mgf.hash.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")])])])),e.saltLength!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(e.saltLength).getBytes())])),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,r);default:return m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")}}function eC(t){var e=m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[]);if(t.attributes.length===0)return e;for(var r=t.attributes,n=0;n<r.length;++n){var i=r[n],s=i.value,o=m.Type.UTF8;"valueTagClass"in i&&(o=i.valueTagClass),o===m.Type.UTF8&&(s=$.util.encodeUtf8(s));var a=!1;"valueConstructed"in i&&(a=i.valueConstructed);var c=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(i.type).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,o,a,s)])]);e.value.push(c)}return e}var tC=new Date("1950-01-01T00:00:00Z"),rC=new Date("2050-01-01T00:00:00Z");function Hg(t){return t>=tC&&t<rC?m.create(m.Class.UNIVERSAL,m.Type.UTCTIME,!1,m.dateToUtcTime(t)):m.create(m.Class.UNIVERSAL,m.Type.GENERALIZEDTIME,!1,m.dateToGeneralizedTime(t))}P.getTBSCertificate=function(t){var e=Hg(t.validity.notBefore),r=Hg(t.validity.notAfter),n=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.version).getBytes())]),m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,$.util.hexToBytes(t.serialNumber)),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.siginfo.algorithmOid).getBytes()),kf(t.siginfo.algorithmOid,t.siginfo.parameters)]),us(t.issuer),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,r]),us(t.subject),P.publicKeyToAsn1(t.publicKey)]);return t.issuer.uniqueId&&n.value.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,[m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.issuer.uniqueId)])),t.subject.uniqueId&&n.value.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!0,[m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.subject.uniqueId)])),t.extensions.length>0&&n.value.push(P.certificateExtensionsToAsn1(t.extensions)),n};P.getCertificationRequestInfo=function(t){var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.version).getBytes()),us(t.subject),P.publicKeyToAsn1(t.publicKey),eC(t)]);return e};P.distinguishedNameToAsn1=function(t){return us(t)};P.certificateToAsn1=function(t){var e=t.tbsCertificate||P.getTBSCertificate(t);return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.signatureOid).getBytes()),kf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};P.certificateExtensionsToAsn1=function(t){var e=m.create(m.Class.CONTEXT_SPECIFIC,3,!0,[]),r=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);e.value.push(r);for(var n=0;n<t.length;++n)r.value.push(P.certificateExtensionToAsn1(t[n]));return e};P.certificateExtensionToAsn1=function(t){var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);e.value.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.id).getBytes())),t.critical&&e.value.push(m.create(m.Class.UNIVERSAL,m.Type.BOOLEAN,!1,String.fromCharCode(255)));var r=t.value;return typeof t.value!="string"&&(r=m.toDer(r).getBytes()),e.value.push(m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,r)),e};P.certificationRequestToAsn1=function(t){var e=t.certificationRequestInfo||P.getCertificationRequestInfo(t);return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.signatureOid).getBytes()),kf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};P.createCaStore=function(t){var e={certs:{}};e.getIssuer=function(o){var a=r(o.issuer);return a},e.addCertificate=function(o){if(typeof o=="string"&&(o=$.pki.certificateFromPem(o)),n(o.subject),!e.hasCertificate(o))if(o.subject.hash in e.certs){var a=e.certs[o.subject.hash];$.util.isArray(a)||(a=[a]),a.push(o),e.certs[o.subject.hash]=a}else e.certs[o.subject.hash]=o},e.hasCertificate=function(o){typeof o=="string"&&(o=$.pki.certificateFromPem(o));var a=r(o.subject);if(!a)return!1;$.util.isArray(a)||(a=[a]);for(var c=m.toDer(P.certificateToAsn1(o)).getBytes(),u=0;u<a.length;++u){var l=m.toDer(P.certificateToAsn1(a[u])).getBytes();if(c===l)return!0}return!1},e.listAllCertificates=function(){var o=[];for(var a in e.certs)if(e.certs.hasOwnProperty(a)){var c=e.certs[a];if(!$.util.isArray(c))o.push(c);else for(var u=0;u<c.length;++u)o.push(c[u])}return o},e.removeCertificate=function(o){var a;if(typeof o=="string"&&(o=$.pki.certificateFromPem(o)),n(o.subject),!e.hasCertificate(o))return null;var c=r(o.subject);if(!$.util.isArray(c))return a=e.certs[o.subject.hash],delete e.certs[o.subject.hash],a;for(var u=m.toDer(P.certificateToAsn1(o)).getBytes(),l=0;l<c.length;++l){var f=m.toDer(P.certificateToAsn1(c[l])).getBytes();u===f&&(a=c[l],c.splice(l,1))}return c.length===0&&delete e.certs[o.subject.hash],a};function r(o){return n(o),e.certs[o.hash]||null}function n(o){if(!o.hash){var a=$.md.sha1.create();o.attributes=P.RDNAttributesAsArray(us(o),a),o.hash=a.digest().toHex()}}if(t)for(var i=0;i<t.length;++i){var s=t[i];e.addCertificate(s)}return e};P.certificateError={bad_certificate:"forge.pki.BadCertificate",unsupported_certificate:"forge.pki.UnsupportedCertificate",certificate_revoked:"forge.pki.CertificateRevoked",certificate_expired:"forge.pki.CertificateExpired",certificate_unknown:"forge.pki.CertificateUnknown",unknown_ca:"forge.pki.UnknownCertificateAuthority"};P.verifyCertificateChain=function(t,e,r){typeof r=="function"&&(r={verify:r}),r=r||{},e=e.slice(0);var n=e.slice(0),i=r.validityCheckDate;typeof i>"u"&&(i=new Date);var s=!0,o=null,a=0;do{var c=e.shift(),u=null,l=!1;if(i&&(i<c.validity.notBefore||i>c.validity.notAfter)&&(o={message:"Certificate is not valid yet or has expired.",error:P.certificateError.certificate_expired,notBefore:c.validity.notBefore,notAfter:c.validity.notAfter,now:i}),o===null){if(u=e[0]||t.getIssuer(c),u===null&&c.isIssuer(c)&&(l=!0,u=c),u){var f=u;$.util.isArray(f)||(f=[f]);for(var h=!1;!h&&f.length>0;){u=f.shift();try{h=u.verify(c)}catch{}}h||(o={message:"Certificate signature is invalid.",error:P.certificateError.bad_certificate})}o===null&&(!u||l)&&!t.hasCertificate(c)&&(o={message:"Certificate is not trusted.",error:P.certificateError.unknown_ca})}if(o===null&&u&&!c.isIssuer(u)&&(o={message:"Certificate issuer is invalid.",error:P.certificateError.bad_certificate}),o===null)for(var d={keyUsage:!0,basicConstraints:!0},p=0;o===null&&p<c.extensions.length;++p){var y=c.extensions[p];y.critical&&!(y.name in d)&&(o={message:"Certificate has an unsupported critical extension.",error:P.certificateError.unsupported_certificate})}if(o===null&&(!s||e.length===0&&(!u||l))){var g=c.getExtension("basicConstraints"),E=c.getExtension("keyUsage");if(E!==null&&(!E.keyCertSign||g===null)&&(o={message:"Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.",error:P.certificateError.bad_certificate}),o===null&&g!==null&&!g.cA&&(o={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:P.certificateError.bad_certificate}),o===null&&E!==null&&"pathLenConstraint"in g){var x=a-1;x>g.pathLenConstraint&&(o={message:"Certificate basicConstraints pathLenConstraint violated.",error:P.certificateError.bad_certificate})}}var _=o===null?!0:o.error,B=r.verify?r.verify(_,a,n):_;if(B===!0)o=null;else throw _===!0&&(o={message:"The application rejected the certificate.",error:P.certificateError.bad_certificate}),(B||B===0)&&(typeof B=="object"&&!$.util.isArray(B)?(B.message&&(o.message=B.message),B.error&&(o.error=B.error)):typeof B=="string"&&(o.error=B)),o;s=!1,++a}while(e.length>0);return!0}});var Xg=N((z4,Qg)=>{var O=ie();ns();An();ac();is();lc();ng();ci();De();Uf();var v=O.asn1,wt=Qg.exports=O.pkcs7=O.pkcs7||{};wt.messageFromPem=function(t){var e=O.pem.decode(t)[0];if(e.type!=="PKCS7"){var r=new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");var n=v.fromDer(e.body);return wt.messageFromAsn1(n)};wt.messageToPem=function(t,e){var r={type:"PKCS7",body:v.toDer(t.toAsn1()).getBytes()};return O.pem.encode(r,{maxline:e})};wt.messageFromAsn1=function(t){var e={},r=[];if(!v.validate(t,wt.asn1.contentInfoValidator,e,r)){var n=new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");throw n.errors=r,n}var i=v.derToOid(e.contentType),s;switch(i){case O.pki.oids.envelopedData:s=wt.createEnvelopedData();break;case O.pki.oids.encryptedData:s=wt.createEncryptedData();break;case O.pki.oids.signedData:s=wt.createSignedData();break;default:throw new Error("Cannot read PKCS#7 message. ContentType with OID "+i+" is not (yet) supported.")}return s.fromAsn1(e.content.value[0]),s};wt.createSignedData=function(){var t=null;return t={type:O.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(n){if(Ff(t,n,wt.asn1.signedDataValidator),t.certificates=[],t.crls=[],t.digestAlgorithmIdentifiers=[],t.contentInfo=null,t.signerInfos=[],t.rawCapture.certificates)for(var i=t.rawCapture.certificates.value,s=0;s<i.length;++s)t.certificates.push(O.pki.certificateFromAsn1(i[s]))},toAsn1:function(){t.contentInfo||t.sign();for(var n=[],i=0;i<t.certificates.length;++i)n.push(O.pki.certificateToAsn1(t.certificates[i]));var s=[],o=v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,t.digestAlgorithmIdentifiers),t.contentInfo])]);return n.length>0&&o.value[0].value.push(v.create(v.Class.CONTEXT_SPECIFIC,0,!0,n)),s.length>0&&o.value[0].value.push(v.create(v.Class.CONTEXT_SPECIFIC,1,!0,s)),o.value[0].value.push(v.create(v.Class.UNIVERSAL,v.Type.SET,!0,t.signerInfos)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),o])},addSigner:function(n){var i=n.issuer,s=n.serialNumber;if(n.certificate){var o=n.certificate;typeof o=="string"&&(o=O.pki.certificateFromPem(o)),i=o.issuer.attributes,s=o.serialNumber}var a=n.key;if(!a)throw new Error("Could not add PKCS#7 signer; no private key specified.");typeof a=="string"&&(a=O.pki.privateKeyFromPem(a));var c=n.digestAlgorithm||O.pki.oids.sha1;switch(c){case O.pki.oids.sha1:case O.pki.oids.sha256:case O.pki.oids.sha384:case O.pki.oids.sha512:case O.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+c)}var u=n.authenticatedAttributes||[];if(u.length>0){for(var l=!1,f=!1,h=0;h<u.length;++h){var d=u[h];if(!l&&d.type===O.pki.oids.contentType){if(l=!0,f)break;continue}if(!f&&d.type===O.pki.oids.messageDigest){if(f=!0,l)break;continue}}if(!l||!f)throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest.")}t.signers.push({key:a,version:1,issuer:i,serialNumber:s,digestAlgorithm:c,signatureAlgorithm:O.pki.oids.rsaEncryption,signature:null,authenticatedAttributes:u,unauthenticatedAttributes:[]})},sign:function(n){if(n=n||{},(typeof t.content!="object"||t.contentInfo===null)&&(t.contentInfo=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(O.pki.oids.data).getBytes())]),"content"in t)){var i;t.content instanceof O.util.ByteBuffer?i=t.content.bytes():typeof t.content=="string"&&(i=O.util.encodeUtf8(t.content)),n.detached?t.detachedContent=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,i):t.contentInfo.value.push(v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,i)]))}if(t.signers.length!==0){var s=e();r(s)}},verify:function(){throw new Error("PKCS#7 signature verification not yet implemented.")},addCertificate:function(n){typeof n=="string"&&(n=O.pki.certificateFromPem(n)),t.certificates.push(n)},addCertificateRevokationList:function(n){throw new Error("PKCS#7 CRL support not yet implemented.")}},t;function e(){for(var n={},i=0;i<t.signers.length;++i){var s=t.signers[i],o=s.digestAlgorithm;o in n||(n[o]=O.md[O.pki.oids[o]].create()),s.authenticatedAttributes.length===0?s.md=n[o]:s.md=O.md[O.pki.oids[o]].create()}t.digestAlgorithmIdentifiers=[];for(var o in n)t.digestAlgorithmIdentifiers.push(v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(o).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]));return n}function r(n){var i;if(t.detachedContent?i=t.detachedContent:(i=t.contentInfo.value[1],i=i.value[0]),!i)throw new Error("Could not sign PKCS#7 message; there is no content to sign.");var s=v.derToOid(t.contentInfo.value[0].value),o=v.toDer(i);o.getByte(),v.getBerValueLength(o),o=o.getBytes();for(var a in n)n[a].start().update(o);for(var c=new Date,u=0;u<t.signers.length;++u){var l=t.signers[u];if(l.authenticatedAttributes.length===0){if(s!==O.pki.oids.data)throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data.")}else{l.authenticatedAttributesAsn1=v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[]);for(var f=v.create(v.Class.UNIVERSAL,v.Type.SET,!0,[]),h=0;h<l.authenticatedAttributes.length;++h){var d=l.authenticatedAttributes[h];d.type===O.pki.oids.messageDigest?d.value=n[l.digestAlgorithm].digest():d.type===O.pki.oids.signingTime&&(d.value||(d.value=c)),f.value.push(Mf(d)),l.authenticatedAttributesAsn1.value.push(Mf(d))}o=v.toDer(f).getBytes(),l.md.start().update(o)}l.signature=l.key.sign(l.md,"RSASSA-PKCS1-V1_5")}t.signerInfos=cC(t.signers)}};wt.createEncryptedData=function(){var t=null;return t={type:O.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:O.pki.oids["aes256-CBC"]},fromAsn1:function(e){Ff(t,e,wt.asn1.encryptedDataValidator)},decrypt:function(e){e!==void 0&&(t.encryptedContent.key=e),Wg(t)}},t};wt.createEnvelopedData=function(){var t=null;return t={type:O.pki.oids.envelopedData,version:0,recipients:[],encryptedContent:{algorithm:O.pki.oids["aes256-CBC"]},fromAsn1:function(e){var r=Ff(t,e,wt.asn1.envelopedDataValidator);t.recipients=sC(r.recipientInfos.value)},toAsn1:function(){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,oC(t.recipients)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,uC(t.encryptedContent))])])])},findRecipient:function(e){for(var r=e.issuer.attributes,n=0;n<t.recipients.length;++n){var i=t.recipients[n],s=i.issuer;if(i.serialNumber===e.serialNumber&&s.length===r.length){for(var o=!0,a=0;a<r.length;++a)if(s[a].type!==r[a].type||s[a].value!==r[a].value){o=!1;break}if(o)return i}}return null},decrypt:function(e,r){if(t.encryptedContent.key===void 0&&e!==void 0&&r!==void 0)switch(e.encryptedContent.algorithm){case O.pki.oids.rsaEncryption:case O.pki.oids.desCBC:var n=r.decrypt(e.encryptedContent.content);t.encryptedContent.key=O.util.createBuffer(n);break;default:throw new Error("Unsupported asymmetric cipher, OID "+e.encryptedContent.algorithm)}Wg(t)},addRecipient:function(e){t.recipients.push({version:0,issuer:e.issuer.attributes,serialNumber:e.serialNumber,encryptedContent:{algorithm:O.pki.oids.rsaEncryption,key:e.publicKey}})},encrypt:function(e,r){if(t.encryptedContent.content===void 0){r=r||t.encryptedContent.algorithm,e=e||t.encryptedContent.key;var n,i,s;switch(r){case O.pki.oids["aes128-CBC"]:n=16,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["aes192-CBC"]:n=24,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["aes256-CBC"]:n=32,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["des-EDE3-CBC"]:n=24,i=8,s=O.des.createEncryptionCipher;break;default:throw new Error("Unsupported symmetric cipher, OID "+r)}if(e===void 0)e=O.util.createBuffer(O.random.getBytes(n));else if(e.length()!=n)throw new Error("Symmetric key has wrong length; got "+e.length()+" bytes, expected "+n+".");t.encryptedContent.algorithm=r,t.encryptedContent.key=e,t.encryptedContent.parameter=O.util.createBuffer(O.random.getBytes(i));var o=s(e);if(o.start(t.encryptedContent.parameter.copy()),o.update(t.content),!o.finish())throw new Error("Symmetric encryption failed.");t.encryptedContent.content=o.output}for(var a=0;a<t.recipients.length;++a){var c=t.recipients[a];if(c.encryptedContent.content===void 0)switch(c.encryptedContent.algorithm){case O.pki.oids.rsaEncryption:c.encryptedContent.content=c.encryptedContent.key.encrypt(t.encryptedContent.key.data);break;default:throw new Error("Unsupported asymmetric cipher, OID "+c.encryptedContent.algorithm)}}}},t};function nC(t){var e={},r=[];if(!v.validate(t,wt.asn1.recipientInfoValidator,e,r)){var n=new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo.");throw n.errors=r,n}return{version:e.version.charCodeAt(0),issuer:O.pki.RDNAttributesAsArray(e.issuer),serialNumber:O.util.createBuffer(e.serial).toHex(),encryptedContent:{algorithm:v.derToOid(e.encAlgorithm),parameter:e.encParameter?e.encParameter.value:void 0,content:e.encKey}}}function iC(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[O.pki.distinguishedNameToAsn1({attributes:t.issuer}),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,O.util.hexToBytes(t.serialNumber))]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.encryptedContent.algorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.encryptedContent.content)])}function sC(t){for(var e=[],r=0;r<t.length;++r)e.push(nC(t[r]));return e}function oC(t){for(var e=[],r=0;r<t.length;++r)e.push(iC(t[r]));return e}function aC(t){var e=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[O.pki.distinguishedNameToAsn1({attributes:t.issuer}),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,O.util.hexToBytes(t.serialNumber))]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.digestAlgorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])]);if(t.authenticatedAttributesAsn1&&e.value.push(t.authenticatedAttributesAsn1),e.value.push(v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.signatureAlgorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])),e.value.push(v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.signature)),t.unauthenticatedAttributes.length>0){for(var r=v.create(v.Class.CONTEXT_SPECIFIC,1,!0,[]),n=0;n<t.unauthenticatedAttributes.length;++n){var i=t.unauthenticatedAttributes[n];r.values.push(Mf(i))}e.value.push(r)}return e}function cC(t){for(var e=[],r=0;r<t.length;++r)e.push(aC(t[r]));return e}function Mf(t){var e;if(t.type===O.pki.oids.contentType)e=v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.value).getBytes());else if(t.type===O.pki.oids.messageDigest)e=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.value.bytes());else if(t.type===O.pki.oids.signingTime){var r=new Date("1950-01-01T00:00:00Z"),n=new Date("2050-01-01T00:00:00Z"),i=t.value;if(typeof i=="string"){var s=Date.parse(i);isNaN(s)?i.length===13?i=v.utcTimeToDate(i):i=v.generalizedTimeToDate(i):i=new Date(s)}i>=r&&i<n?e=v.create(v.Class.UNIVERSAL,v.Type.UTCTIME,!1,v.dateToUtcTime(i)):e=v.create(v.Class.UNIVERSAL,v.Type.GENERALIZEDTIME,!1,v.dateToGeneralizedTime(i))}return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,[e])])}function uC(t){return[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(O.pki.oids.data).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.algorithm).getBytes()),t.parameter?v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.parameter.getBytes()):void 0]),v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.content.getBytes())])]}function Ff(t,e,r){var n={},i=[];if(!v.validate(e,r,n,i)){var s=new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message.");throw s.errors=s,s}var o=v.derToOid(n.contentType);if(o!==O.pki.oids.data)throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported.");if(n.encryptedContent){var a="";if(O.util.isArray(n.encryptedContent))for(var c=0;c<n.encryptedContent.length;++c){if(n.encryptedContent[c].type!==v.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects.");a+=n.encryptedContent[c].value}else a=n.encryptedContent;t.encryptedContent={algorithm:v.derToOid(n.encAlgorithm),parameter:O.util.createBuffer(n.encParameter.value),content:O.util.createBuffer(a)}}if(n.content){var a="";if(O.util.isArray(n.content))for(var c=0;c<n.content.length;++c){if(n.content[c].type!==v.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects.");a+=n.content[c].value}else a=n.content;t.content=O.util.createBuffer(a)}return t.version=n.version.charCodeAt(0),t.rawCapture=n,n}function Wg(t){if(t.encryptedContent.key===void 0)throw new Error("Symmetric key not available.");if(t.content===void 0){var e;switch(t.encryptedContent.algorithm){case O.pki.oids["aes128-CBC"]:case O.pki.oids["aes192-CBC"]:case O.pki.oids["aes256-CBC"]:e=O.aes.createDecryptionCipher(t.encryptedContent.key);break;case O.pki.oids.desCBC:case O.pki.oids["des-EDE3-CBC"]:e=O.des.createDecryptionCipher(t.encryptedContent.key);break;default:throw new Error("Unsupported symmetric cipher, OID "+t.encryptedContent.algorithm)}if(e.start(t.encryptedContent.parameter),e.update(t.encryptedContent.content),!e.finish())throw new Error("Symmetric decryption failed.");t.content=e.output}}});var Zg=N(($4,jg)=>{var Qr=ie();Cn();De();var lC=jg.exports=Qr.hmac=Qr.hmac||{};lC.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Qr.md.algorithms)e=Qr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=Qr.util.createBuffer(o);else if(Qr.util.isArray(o)){var a=o;o=Qr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=Qr.util.createBuffer(),n=Qr.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var Kf=N((G4,Jg)=>{var xt=ie();Zg();Cn();De();var fC=xt.pkcs5=xt.pkcs5||{},Xr;xt.util.isNodejs&&!xt.options.usePureJavaScript&&(Xr=ei());Jg.exports=xt.pbkdf2=fC.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),xt.util.isNodejs&&!xt.options.usePureJavaScript&&Xr.pbkdf2&&(i===null||typeof i!="object")&&(Xr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Xr.pbkdf2Sync.length===4?Xr.pbkdf2(t,e,r,n,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Xr.pbkdf2(t,e,r,n,i,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Xr.pbkdf2Sync.length===4?Xr.pbkdf2Sync(t,e,r,n).toString("binary"):Xr.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in xt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=xt.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=xt.hmac.create();l.start(i,t);var f="",h,d,p;if(!s){for(var y=1;y<=c;++y){l.start(null,null),l.update(e),l.update(xt.util.int32ToBytes(y)),h=p=l.digest().getBytes();for(var g=2;g<=r;++g)l.start(null,null),l.update(p),d=l.digest().getBytes(),h=xt.util.xorBytes(h,d,o),p=d;f+=y<c?h:h.substr(0,u)}return f}var y=1,g;function E(){if(y>c)return s(null,f);l.start(null,null),l.update(e),l.update(xt.util.int32ToBytes(y)),h=p=l.digest().getBytes(),g=2,x()}function x(){if(g<=r)return l.start(null,null),l.update(p),d=l.digest().getBytes(),h=xt.util.xorBytes(h,d,o),p=d,++g,xt.util.setImmediate(x);f+=y<c?h:h.substr(0,u),++y,E()}E()}});var nE=N((Y4,rE)=>{var _t=ie();De();var Vf=[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],eE=[1,2,3,5],hC=function(t,e){return t<<e&65535|(t&65535)>>16-e},dC=function(t,e){return(t&65535)>>e|t<<16-e&65535};rE.exports=_t.rc2=_t.rc2||{};_t.rc2.expandKey=function(t,e){typeof t=="string"&&(t=_t.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Vf[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Vf[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Vf[r.at(a+1)^r.at(a+s)]);return r};var tE=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=_t.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(p){for(u=0;u<4;u++)p[u]+=f[l]+(p[(u+3)%4]&p[(u+2)%4])+(~p[(u+3)%4]&p[(u+1)%4]),p[u]=hC(p[u],eE[u]),l++},c=function(p){for(u=0;u<4;u++)p[u]+=f[p[(u+3)%4]&63]}):(a=function(p){for(u=3;u>=0;u--)p[u]=dC(p[u],eE[u]),p[u]-=f[l]+(p[(u+3)%4]&p[(u+2)%4])+(~p[(u+3)%4]&p[(u+1)%4]),l--},c=function(p){for(u=3;u>=0;u--)p[u]-=f[p[(u+3)%4]&63]});var h=function(p){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();o!==null&&(r?g^=o.getInt16Le():o.putInt16Le(g)),y.push(g&65535)}l=r?0:63;for(var E=0;E<p.length;E++)for(var x=0;x<p[E][0];x++)p[E][1](y);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(y[u]):y[u]^=o.getInt16Le()),s.putInt16Le(y[u])},d=null;return d={start:function(p,y){p&&typeof p=="string"&&(p=_t.util.createBuffer(p)),n=!1,i=_t.util.createBuffer(),s=y||new _t.util.createBuffer,o=p,d.output=s},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)h([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var y=!0;if(r)if(p)y=p(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(p)y=p(8,s,!r);else{var E=s.length(),x=s.at(E-1);x>E?y=!1:s.truncate(x)}return y}},d};_t.rc2.startEncrypting=function(t,e,r){var n=_t.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};_t.rc2.createEncryptionCipher=function(t,e){return tE(t,e,!0)};_t.rc2.startDecrypting=function(t,e,r){var n=_t.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};_t.rc2.createDecryptionCipher=function(t,e){return tE(t,e,!1)}});var qf=N((W4,cE)=>{var F=ie();ns();An();ac();Cn();is();Kf();lc();ci();nE();co();De();typeof iE>"u"&&(iE=F.jsbn.BigInteger);var iE,A=F.asn1,J=F.pki=F.pki||{};cE.exports=J.pbe=F.pbe=F.pbe||{};var di=J.oids,pC={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"}]},mC={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"}]}]},yC={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"}]};J.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=F.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=di["aes128-CBC"],f=F.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=di["aes192-CBC"],f=F.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=di["aes256-CBC"],f=F.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=di.desCBC,f=F.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),p=aE(d),y=F.pkcs5.pbkdf2(e,n,i,o,p),g=F.random.getBytesSync(u),E=f(y);E.start(g),E.update(A.toDer(t)),E.finish(),c=E.output.getBytes();var x=gC(n,s,o,d);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(di.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(di.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,g)])])])}else if(r.algorithm==="3des"){o=24;var _=new F.util.ByteBuffer(n),y=J.pbe.generatePkcs12Key(e,_,1,i,o),g=J.pbe.generatePkcs12Key(e,_,2,i,o),E=F.des.createEncryptionCipher(y);E.start(g),E.update(A.toDer(t)),E.finish(),c=E.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(di["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 B=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return B};J.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!A.validate(t,pC,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=J.pbe.getCipher(o,n.encryptionParams,e),c=F.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};J.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(t).getBytes()};return F.pem.encode(r,{maxline:e})};J.encryptedPrivateKeyFromPem=function(t){var e=F.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(e.body)};J.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=J.wrapRsaPrivateKey(J.privateKeyToAsn1(t));return n=J.encryptPrivateKeyInfo(n,e,r),J.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=F.random.getBytesSync(8),a=F.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=F.random.getBytesSync(8),a=F.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=F.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(J.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:F.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return F.pem.encode(f)};J.decryptRsaPrivateKey=function(t,e){var r=null,n=F.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=F.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=F.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=F.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=F.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=F.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return F.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return F.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return F.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=F.util.hexToBytes(n.dekInfo.parameters),c=F.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(F.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=J.decryptPrivateKeyInfo(A.fromDer(r),e):r=A.fromDer(r),r!==null&&(r=J.privateKeyFromAsn1(r)),r};J.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in F.md))throw new Error('"sha1" hash algorithm unavailable.');s=F.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new F.util.ByteBuffer,f=new F.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var h=f.length(),d=e.length(),p=new F.util.ByteBuffer;p.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new F.util.ByteBuffer;for(a=0;a<y;a++)g.putByte(e.at(a%d));var E=u*Math.ceil(h/u),x=new F.util.ByteBuffer;for(a=0;a<E;a++)x.putByte(f.at(a%h));var _=g;_.putBuffer(x);for(var B=Math.ceil(i/c),D=1;D<=B;D++){var L=new F.util.ByteBuffer;L.putBytes(p.bytes()),L.putBytes(_.bytes());for(var te=0;te<n;te++)s.start(),s.update(L.getBytes()),L=s.digest();var ae=new F.util.ByteBuffer;for(a=0;a<u;a++)ae.putByte(L.at(a%c));var st=Math.ceil(d/u)+Math.ceil(h/u),Zt=new F.util.ByteBuffer;for(o=0;o<st;o++){var It=new F.util.ByteBuffer(_.getBytes(u)),Et=511;for(a=ae.length()-1;a>=0;a--)Et=Et>>8,Et+=ae.at(a)+It.at(a),It.setAt(a,Et&255);Zt.putBuffer(It)}_=Zt,l.putBuffer(L)}return l.truncate(l.length()-i),l};J.pbe.getCipher=function(t,e,r){switch(t){case J.oids.pkcs5PBES2:return J.pbe.getCipherForPBES2(t,e,r);case J.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case J.oids["pbewithSHAAnd40BitRC2-CBC"]:return J.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};J.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!A.validate(e,mC,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=A.derToOid(n.kdfOid),t!==J.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=A.derToOid(n.encOid),t!==J.oids["aes128-CBC"]&&t!==J.oids["aes192-CBC"]&&t!==J.oids["aes256-CBC"]&&t!==J.oids["des-EDE3-CBC"]&&t!==J.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=F.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(J.oids[t]){case"aes128-CBC":c=16,u=F.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=F.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=F.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=F.des.createDecryptionCipher;break;case"desCBC":c=8,u=F.des.createDecryptionCipher;break}var l=oE(n.prfOid),f=F.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,d=u(f);return d.start(h),d};J.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!A.validate(e,yC,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=F.util.createBuffer(n.salt),a=F.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case J.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=F.des.startDecrypting;break;case J.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(y,g){var E=F.rc2.createDecryptionCipher(y,40);return E.start(g,null),E};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=oE(n.prfOid),h=J.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var d=J.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,d)};J.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in F.md))throw new Error('"md5" hash algorithm unavailable.');n=F.md.md5.create()}e===null&&(e="");for(var i=[sE(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(sE(n,i[o-1]+t+e));return i.join("").substr(0,r)};function sE(t,e){return t.start().update(e).digest().getBytes()}function oE(t){var e;if(!t)e="hmacWithSHA1";else if(e=J.oids[A.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return aE(e)}function aE(t){var e=F.md;switch(t){case"hmacWithSHA224":e=F.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function gC(t,e,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,t),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,F.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(J.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var bE=N((k8,xE)=>{var Oe=ie();Cn();De();var uo=xE.exports=Oe.sha512=Oe.sha512||{};Oe.md.sha512=Oe.md.algorithms.sha512=uo;var vE=Oe.sha384=Oe.sha512.sha384=Oe.sha512.sha384||{};vE.create=function(){return uo.create("SHA-384")};Oe.md.sha384=Oe.md.algorithms.sha384=vE;Oe.sha512.sha256=Oe.sha512.sha256||{create:function(){return uo.create("SHA-512/256")}};Oe.md["sha512/256"]=Oe.md.algorithms["sha512/256"]=Oe.sha512.sha256;Oe.sha512.sha224=Oe.sha512.sha224||{create:function(){return uo.create("SHA-512/224")}};Oe.md["sha512/224"]=Oe.md.algorithms["sha512/224"]=Oe.sha512.sha224;uo.create=function(t){if(wE||SC(),typeof t>"u"&&(t="SHA-512"),!(t in pi))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=pi[t],r=null,n=Oe.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=Oe.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=Oe.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),EE(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Oe.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes($f.substr(0,a.blockLength-l));for(var f,h,d=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,h=f/4294967296>>>0,d+=h,c.putInt32(d>>>0),d=f>>>0;c.putInt32(d);for(var y=new Array(r.length),p=0;p<r.length;++p)y[p]=r[p].slice(0);EE(y,i,c);var g=Oe.util.createBuffer(),E;t==="SHA-512"?E=y.length:t==="SHA-384"?E=y.length-2:E=y.length-4;for(var p=0;p<E;++p)g.putInt32(y[p][0]),(p!==E-1||t!=="SHA-512/224")&&g.putInt32(y[p][1]);return g},a};var $f=null,wE=!1,Gf=null,pi=null;function SC(){$f=String.fromCharCode(128),$f+=Oe.util.fillString(String.fromCharCode(0),128),Gf=[[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]],pi={},pi["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],pi["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],pi["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],pi["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],wE=!0}function EE(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,d,p,y,g,E,x,_,B,D,L,te,ae,st,Zt,It,Et,Ii,Zo,Je,St,Y,Iu,Tu,Ru,Nu,vd=r.length();vd>=128;){for(Je=0;Je<16;++Je)e[Je][0]=r.getInt32()>>>0,e[Je][1]=r.getInt32()>>>0;for(;Je<80;++Je)Iu=e[Je-2],St=Iu[0],Y=Iu[1],n=((St>>>19|Y<<13)^(Y>>>29|St<<3)^St>>>6)>>>0,i=((St<<13|Y>>>19)^(Y<<3|St>>>29)^(St<<26|Y>>>6))>>>0,Ru=e[Je-15],St=Ru[0],Y=Ru[1],s=((St>>>1|Y<<31)^(St>>>8|Y<<24)^St>>>7)>>>0,o=((St<<31|Y>>>1)^(St<<24|Y>>>8)^(St<<25|Y>>>7))>>>0,Tu=e[Je-7],Nu=e[Je-16],Y=i+Tu[1]+o+Nu[1],e[Je][0]=n+Tu[0]+s+Nu[0]+(Y/4294967296>>>0)>>>0,e[Je][1]=Y>>>0;for(y=t[0][0],g=t[0][1],E=t[1][0],x=t[1][1],_=t[2][0],B=t[2][1],D=t[3][0],L=t[3][1],te=t[4][0],ae=t[4][1],st=t[5][0],Zt=t[5][1],It=t[6][0],Et=t[6][1],Ii=t[7][0],Zo=t[7][1],Je=0;Je<80;++Je)u=((te>>>14|ae<<18)^(te>>>18|ae<<14)^(ae>>>9|te<<23))>>>0,l=((te<<18|ae>>>14)^(te<<14|ae>>>18)^(ae<<23|te>>>9))>>>0,f=(It^te&(st^It))>>>0,h=(Et^ae&(Zt^Et))>>>0,a=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&E|_&(y^E))>>>0,p=(g&x|B&(g^x))>>>0,Y=Zo+l+h+Gf[Je][1]+e[Je][1],n=Ii+u+f+Gf[Je][0]+e[Je][0]+(Y/4294967296>>>0)>>>0,i=Y>>>0,Y=c+p,s=a+d+(Y/4294967296>>>0)>>>0,o=Y>>>0,Ii=It,Zo=Et,It=st,Et=Zt,st=te,Zt=ae,Y=L+i,te=D+n+(Y/4294967296>>>0)>>>0,ae=Y>>>0,D=_,L=B,_=E,B=x,E=y,x=g,Y=i+o,y=n+s+(Y/4294967296>>>0)>>>0,g=Y>>>0;Y=t[0][1]+g,t[0][0]=t[0][0]+y+(Y/4294967296>>>0)>>>0,t[0][1]=Y>>>0,Y=t[1][1]+x,t[1][0]=t[1][0]+E+(Y/4294967296>>>0)>>>0,t[1][1]=Y>>>0,Y=t[2][1]+B,t[2][0]=t[2][0]+_+(Y/4294967296>>>0)>>>0,t[2][1]=Y>>>0,Y=t[3][1]+L,t[3][0]=t[3][0]+D+(Y/4294967296>>>0)>>>0,t[3][1]=Y>>>0,Y=t[4][1]+ae,t[4][0]=t[4][0]+te+(Y/4294967296>>>0)>>>0,t[4][1]=Y>>>0,Y=t[5][1]+Zt,t[5][0]=t[5][0]+st+(Y/4294967296>>>0)>>>0,t[5][1]=Y>>>0,Y=t[6][1]+Et,t[6][0]=t[6][0]+It+(Y/4294967296>>>0)>>>0,t[6][1]=Y>>>0,Y=t[7][1]+Zo,t[7][0]=t[7][0]+Ii+(Y/4294967296>>>0)>>>0,t[7][1]=Y>>>0,vd-=128}}});var nw=N((d6,rw)=>{function kI(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}rw.exports=kI});var gw=N((h5,Fh)=>{"use strict";var KI=Object.prototype.hasOwnProperty,bt="~";function qo(){}Object.create&&(qo.prototype=Object.create(null),new qo().__proto__||(bt=!1));function VI(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function yw(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new VI(r,n||t,i),o=bt?bt+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function cu(t,e){--t._eventsCount===0?t._events=new qo:delete t._events[e]}function gt(){this._events=new qo,this._eventsCount=0}gt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)KI.call(r,n)&&e.push(bt?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};gt.prototype.listeners=function(e){var r=bt?bt+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};gt.prototype.listenerCount=function(e){var r=bt?bt+e:e,n=this._events[r];return n?n.fn?1:n.length:0};gt.prototype.emit=function(e,r,n,i,s,o){var a=bt?bt+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var h=c.length,d;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[f].fn.apply(c[f].context,l)}}return!0};gt.prototype.on=function(e,r,n){return yw(this,e,r,n,!1)};gt.prototype.once=function(e,r,n){return yw(this,e,r,n,!0)};gt.prototype.removeListener=function(e,r,n,i){var s=bt?bt+e:e;if(!this._events[s])return this;if(!r)return cu(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&cu(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:cu(this,s)}return this};gt.prototype.removeAllListeners=function(e){var r;return e?(r=bt?bt+e:e,this._events[r]&&cu(this,r)):(this._events=new qo,this._eventsCount=0),this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.addListener=gt.prototype.on;gt.prefixed=bt;gt.EventEmitter=gt;typeof Fh<"u"&&(Fh.exports=gt)});var Uw=N((rU,kw)=>{"use strict";kw.exports=Ow;var GI=Du(),qn=Ow.prototype,YI=new Date%1e9;function WI(){return(Math.random()*1e9>>>0)+YI++}function Ow(t){t=t||{},this.id=t.id||WI(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}qn.has=function(t){return t in this._lookup};qn.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};qn.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};qn.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};qn.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};qn.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=GI(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};qn.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};qn.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var md=N((kU,pd)=>{function Yw(t){let e=new globalThis.AbortController;function r(){e.abort();for(let n of t)!n||!n.removeEventListener||n.removeEventListener("abort",r)}for(let n of t)if(!(!n||!n.addEventListener)){if(n.aborted){r();break}n.addEventListener("abort",r)}return e.signal}pd.exports=Yw;pd.exports.anySignal=Yw});var Qw=N((MU,Ww)=>{Ww.exports=class{constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Zw=N((KU,jw)=>{var Xw=Qw();jw.exports=class{constructor(e){this.hwm=e||16,this.head=new Xw(this.hwm),this.tail=this.head}push(e){if(!this.head.push(e)){let r=this.head;this.head=r.next=new Xw(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return e}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var e1=N((VU,Jw)=>{"use strict";var nT=()=>{let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t};Jw.exports=nT});var i1=N((HU,n1)=>{var t1=Zw(),r1=e1();n1.exports=class{constructor(){this._buffer=new t1,this._waitingConsumers=new t1}push(e){let{promise:r,resolve:n}=r1();return this._buffer.push({chunk:e,resolve:n}),this._consume(),r}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let e=this._waitingConsumers.shift(),r=this._buffer.shift();e.resolve(r.chunk),r.resolve()}}shift(){let{promise:e,resolve:r}=r1();return this._waitingConsumers.push({resolve:r}),this._consume(),e}isEmpty(){return this._buffer.isEmpty()}}});var aT={};pt(aT,{createLibp2p:()=>oT});var dr=C(Lu(),1);var Uu={};pt(Uu,{base58btc:()=>We,base58flickr:()=>O1});function N1(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var y=0,g=0,E=0,x=p.length;E!==x&&p[E]===0;)E++,y++;for(var _=(x-E)*l+1>>>0,B=new Uint8Array(_);E!==x;){for(var D=p[E],L=0,te=_-1;(D!==0||L<g)&&te!==-1;te--,L++)D+=256*B[te]>>>0,B[te]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");g=L,E++}for(var ae=_-g;ae!==_&&B[ae]===0;)ae++;for(var st=c.repeat(y);ae<_;++ae)st+=t.charAt(B[ae]);return st}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var y=0;if(p[y]!==" "){for(var g=0,E=0;p[y]===c;)g++,y++;for(var x=(p.length-y)*u+1>>>0,_=new Uint8Array(x);p[y];){var B=r[p.charCodeAt(y)];if(B===255)return;for(var D=0,L=x-1;(B!==0||D<E)&&L!==-1;L--,D++)B+=a*_[L]>>>0,_[L]=B%256>>>0,B=B/256>>>0;if(B!==0)throw new Error("Non-zero carry");E=D,y++}if(p[y]!==" "){for(var te=x-E;te!==x&&_[te]===0;)te++;for(var ae=new Uint8Array(g+(x-te)),st=g;te!==x;)ae[st++]=_[te++];return ae}}}function d(p){var y=h(p);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:h,decode:d}}var D1=N1,L1=D1,_d=L1;var hT=new Uint8Array(0);var Ad=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},Br=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Cd=t=>new TextEncoder().encode(t),Id=t=>new TextDecoder().decode(t);var Pu=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Bu=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Rd(this,e)}},Ou=class{constructor(e){this.decoders=e}or(e){return Rd(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Rd=(t,e)=>new Ou({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ku=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Pu(e,r,n),this.decoder=new Bu(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Di=({name:t,prefix:e,encode:r,decode:n})=>new ku(t,e,r,n),fn=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=_d(r,e);return Di({prefix:t,name:e,encode:n,decode:s=>Br(i(s))})},P1=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},B1=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},He=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Di({prefix:e,name:t,encode(i){return B1(i,n,r)},decode(i){return P1(i,n,r,t)}});var We=fn({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),O1=fn({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Mu={};pt(Mu,{base32:()=>Rt,base32hex:()=>F1,base32hexpad:()=>V1,base32hexpadupper:()=>q1,base32hexupper:()=>K1,base32pad:()=>U1,base32padupper:()=>M1,base32upper:()=>k1,base32z:()=>H1});var Rt=He({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),k1=He({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),U1=He({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),M1=He({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),F1=He({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),K1=He({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),V1=He({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),q1=He({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),H1=He({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Fu={};pt(Fu,{base64:()=>zn,base64pad:()=>z1,base64url:()=>$1,base64urlpad:()=>G1});var zn=He({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),z1=He({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),$1=He({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),G1=He({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});dr.default.formatters.b=t=>t==null?"undefined":We.baseEncode(t);dr.default.formatters.t=t=>t==null?"undefined":Rt.baseEncode(t);dr.default.formatters.m=t=>t==null?"undefined":zn.baseEncode(t);dr.default.formatters.p=t=>t==null?"undefined":t.toString();dr.default.formatters.c=t=>t==null?"undefined":t.toString();dr.default.formatters.k=t=>t==null?"undefined":t.toString();function M(t){return Object.assign((0,dr.default)(t),{error:(0,dr.default)(`${t}:error`),trace:(0,dr.default)(`${t}:trace`)})}var $n=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Or,Ue=class extends EventTarget{constructor(){super(...arguments),Or.set(this,new Map)}listenerCount(e){let r=$n(this,Or,"f").get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=$n(this,Or,"f").get(e);i==null&&(i=[],$n(this,Or,"f").set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=$n(this,Or,"f").get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),$n(this,Or,"f").set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=$n(this,Or,"f").get(e.type);return n==null||(n=n.filter(({once:i})=>!i),$n(this,Or,"f").set(e.type,n)),r}};Or=new WeakMap;var Ku=class extends Event{constructor(e,r){super(e,r),this.detail=r?.detail}},X=globalThis.CustomEvent??Ku;function kr(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}async function Jt(t){let e=[];for await(let r of t)e.push(r);return e}var Vu=(t,e)=>async function*(){yield*(await Jt(t)).sort(e)}();async function er(t){for await(let e of t);}async function*mt(t,e){for await(let r of t)await e(r)&&(yield r)}async function*ra(t,e){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}var na=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield{key:n,value:i}}async*getMany(e,r={}){for await(let n of e)yield this.get(n,r)}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await er(this.putMany(e,n)),e=[],await er(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null&&(n=mt(n,i=>i.key.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>mt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Vu(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ra(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null&&(n=mt(n,i=>i.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>mt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Vu(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ra(n,e.limit)),n}};var ia=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((e,r)=>(r&=63,r<36?e+=r.toString(36):r<62?e+=(r-26).toString(36).toUpperCase():r>62?e+="-":e+="_",e),"");var qu={};pt(qu,{identity:()=>Y1});var Y1=Di({prefix:"\0",name:"identity",encode:t=>Id(t),decode:t=>Cd(t)});var Hu={};pt(Hu,{base2:()=>W1});var W1=He({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var zu={};pt(zu,{base8:()=>Q1});var Q1=He({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var $u={};pt($u,{base10:()=>X1});var X1=fn({prefix:"9",name:"base10",alphabet:"0123456789"});var Gu={};pt(Gu,{base16:()=>j1,base16upper:()=>Z1});var j1=He({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Z1=He({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Yu={};pt(Yu,{base36:()=>J1,base36upper:()=>ex});var J1=fn({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ex=fn({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Wu={};pt(Wu,{base256emoji:()=>sx});var Nd=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}"),tx=Nd.reduce((t,e,r)=>(t[r]=e,t),[]),rx=Nd.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function nx(t){return t.reduce((e,r)=>(e+=tx[r],e),"")}function ix(t){let e=[];for(let r of t){let n=rx[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var sx=Di({prefix:"\u{1F680}",name:"base256emoji",encode:nx,decode:ix});var Zu={};pt(Zu,{sha256:()=>ot,sha512:()=>_x});var ox=Pd,Dd=128,ax=127,cx=~ax,ux=Math.pow(2,31);function Pd(t,e,r){e=e||[],r=r||0;for(var n=r;t>=ux;)e[r++]=t&255|Dd,t/=128;for(;t&cx;)e[r++]=t&255|Dd,t>>>=7;return e[r]=t|0,Pd.bytes=r-n+1,e}var lx=Qu,fx=128,Ld=127;function Qu(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Qu.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Ld)<<i:(o&Ld)*Math.pow(2,i),i+=7}while(o>=fx);return Qu.bytes=s-n,r}var hx=Math.pow(2,7),dx=Math.pow(2,14),px=Math.pow(2,21),mx=Math.pow(2,28),yx=Math.pow(2,35),gx=Math.pow(2,42),Ex=Math.pow(2,49),vx=Math.pow(2,56),wx=Math.pow(2,63),xx=function(t){return t<hx?1:t<dx?2:t<px?3:t<mx?4:t<yx?5:t<gx?6:t<Ex?7:t<vx?8:t<wx?9:10},bx={encode:ox,decode:lx,encodingLength:xx},Sx=bx,Ns=Sx;var Ds=(t,e=0)=>[Ns.decode(t,e),Ns.decode.bytes],Li=(t,e,r=0)=>(Ns.encode(t,e,r),e),Pi=t=>Ns.encodingLength(t);var pr=(t,e)=>{let r=e.byteLength,n=Pi(t),i=n+Pi(r),s=new Uint8Array(i+r);return Li(t,s,0),Li(r,s,n),s.set(e,i),new Bi(t,r,e,s)},Gn=t=>{let e=Br(t),[r,n]=Ds(e),[i,s]=Ds(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Bi(r,i,o,e)},Bd=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Ad(t.bytes,r.bytes)}},Bi=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var ju=({name:t,code:e,encode:r})=>new Xu(t,e,r),Xu=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?pr(this.code,r):r.then(n=>pr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var kd=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ot=ju({name:"sha2-256",code:18,encode:kd("SHA-256")}),_x=ju({name:"sha2-512",code:19,encode:kd("SHA-512")});var Ju={};pt(Ju,{identity:()=>hn});var Ud=0,Ax="identity",Md=Br,Cx=t=>pr(Ud,Md(t)),hn={code:Ud,name:Ax,encode:Md,digest:Cx};var jT=new TextEncoder,ZT=new TextDecoder;var Fd=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Nx(r,el(t),e||We.encoder);default:return Dx(r,el(t),e||Rt.encoder)}};var Kd=new WeakMap,el=t=>{let e=Kd.get(t);if(e==null){let r=new Map;return Kd.set(t,r),r}return e},we=class{constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==Ls)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Lx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return we.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:r}=this.multihash,n=pr(e,r);return we.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return we.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Bd(e.multihash,n.multihash)}toString(e){return Fd(this,e)}toJSON(){return{"/":Fd(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof we)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new we(n,i,s,o||Vd(n,i,s.bytes))}else if(r[Px]===!0){let{version:n,multihash:i,code:s}=r,o=Gn(i);return we.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==Ls)throw new Error(`Version 0 CID must use dag-pb (code: ${Ls}) block encoding`);return new we(e,r,n,n.bytes)}case 1:{let i=Vd(e,r,n.bytes);return new we(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return we.create(0,Ls,e)}static createV1(e,r){return we.create(1,e,r)}static decode(e){let[r,n]=we.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=we.inspectBytes(e),n=r.size-r.multihashSize,i=Br(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new Bi(r.multihashCode,r.digestSize,s,i);return[r.version===0?we.createV0(o):we.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,h]=Ds(e.subarray(r));return r+=h,f},i=n(),s=Ls;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=Rx(e,r),s=we.decode(i);return el(s).set(n,e),s}},Rx=(t,e)=>{switch(t[0]){case"Q":{let r=e||We;return[We.prefix,r.decode(`${We.prefix}${t}`)]}case We.prefix:{let r=e||We;return[We.prefix,r.decode(t)]}case Rt.prefix:{let r=e||Rt;return[Rt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},Nx=(t,e,r)=>{let{prefix:n}=r;if(n!==We.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i},Dx=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i},Ls=112,Lx=18,Vd=(t,e,r)=>{let n=Pi(t),i=n+Pi(e),s=new Uint8Array(i+r.byteLength);return Li(t,s,0),Li(e,s,n),s.set(r,i),s},Px=Symbol.for("@ipld/js-cid/CID");var dn={...qu,...Hu,...zu,...$u,...Gu,...Mu,...Yu,...Uu,...Fu,...Wu},cR={...Zu,...Ju};function Wn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Ur(t=0){return globalThis.Buffer?.alloc!=null?Wn(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Mr(t=0){return globalThis.Buffer?.allocUnsafe!=null?Wn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Hd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var qd=Hd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),tl=Hd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Mr(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Bx={utf8:qd,"utf-8":qd,hex:dn.base16,latin1:tl,ascii:tl,binary:tl,...dn},oa=Bx;function Q(t,e="utf8"){let r=oa[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function q(t,e="utf8"){let r=oa[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Wn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Fr="/",zd=new TextEncoder().encode(Fr),aa=zd[0],ze=class{constructor(e,r){if(typeof e=="string")this._buf=q(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==aa)throw new Error("Invalid key")}toString(e="utf8"){return Q(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new ze(e.join(Fr))}static random(){return new ze(ia().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new ze(e):typeof e.uint8Array=="function"?new ze(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=zd),this._buf[0]!==aa){let e=new Uint8Array(this._buf.byteLength+1);e.fill(aa,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===aa;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return ze.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Fr).slice(1)}type(){return Ox(this.baseNamespace())}name(){return kx(this.baseNamespace())}instance(e){return new ze(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Fr)||(e+=Fr),e+=this.type(),new ze(e)}parent(){let e=this.list();return e.length===1?new ze(Fr):new ze(e.slice(0,-1).join(Fr))}child(e){return this.toString()===Fr?e:e.toString()===Fr?this:new ze(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return ze.withNamespaces([...this.namespaces(),...Ux(e.map(r=>r.namespaces()))])}};function Ox(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function kx(t){let e=t.split(":");return e[e.length-1]}function Ux(t){return[].concat(...t)}var Yd=C(G(),1);function Wd(t){return t=t||new Error("Not Found"),(0,Yd.default)(t,"ERR_NOT_FOUND")}var ca=class extends na{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(e,r){this.data[e.toString()]=r}async get(e){if(!await this.has(e))throw Wd();return this.data[e.toString()]}async has(e){return this.data[e.toString()]!==void 0}async delete(e){delete this.data[e.toString()]}async*_all(){yield*Object.entries(this.data).map(([e,r])=>({key:new ze(e),value:r}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>new ze(e))}};var ks=C(G(),1);var ne;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.DHT_DISABLED="DHT is not available",t.PUBSUB_DISABLED="PubSub is not available",t.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",t.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(ne||(ne={}));var b;(function(t){t.DHT_DISABLED="ERR_DHT_DISABLED",t.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",t.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",t.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",t.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",t.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TIMEOUT="ERR_TIMEOUT",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED"})(b||(b={}));var Qd=C(G(),1);async function*Ps(t,e){for await(let r of t)yield e(r)}async function*Bs(t,e){yield*Ps(t,async r=>(await e.addressBook.add(r.id,r.multiaddrs),r))}function ua(t){let e=new Set;return mt(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*la(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw(0,Qd.default)(new Error("not found"),"NOT_FOUND")}var pp=C(Kr(),1);var ha=class{constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Oi=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ha(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new ha(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};function Qn(t={}){return qx(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function qx(t,e){e=e??{};let r=e.onEnd,n=new Oi,i,s,o,a=async()=>n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=E=>{s=null,n.push(E);try{y(t(n))}catch(x){g(x)}return i}}):t(n),c=y=>s!=null?s(y):(n.push(y),i),u=y=>(n=new Oi,s!=null?s({error:y}):(n.push({error:y}),i)),l=y=>{if(o)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:y})},f=y=>o?i:(o=!0,y!=null?u(y):c({done:!0})),h=()=>(n=new Oi,f(),{done:!0}),d=y=>(f(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:h,throw:d,push:l,end:f,get readableLength(){return n.size}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(y){return p.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(y){return p.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return p.readableLength}},i}async function*Vr(...t){let e=Qn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async r=>{for await(let n of r)e.push(n)})),e.end()}catch(r){e.end(r)}}),yield*e}var Hx=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},tp=t=>t!=null&&(typeof t[Symbol.asyncIterator]=="function"||typeof t[Symbol.iterator]=="function"||typeof t.next=="function"),il=t=>t!=null&&typeof t.sink=="function"&&tp(t.source),zx=t=>e=>{let r=t.sink(e);if(r.then!=null){let n=Qn({objectMode:!0});return r.then(()=>{n.end()},s=>{n.end(s)}),Vr(n,async function*(){yield*t.source,n.end()}())}return t.source};function Ce(t,...e){if(il(t)){let n=t;t=()=>n.source}else if(tp(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&il(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++)il(r[n])&&(r[n]=zx(r[n]));return Hx(...r)}async function Nt(t){for await(let e of t)return e}var ya=C(sl(),1),mp=C(mr(),1),dp=M("libp2p:peer-routing"),ma=class{constructor(e,r){this.components=e,this.routers=r.routers??[],this.refreshManagerInit=r.refreshManager??{},this.started=!1,this._findClosestPeersTask=this._findClosestPeersTask.bind(this)}isStarted(){return this.started}async start(){this.started||this.routers.length===0||this.timeoutId!=null||this.refreshManagerInit.enabled===!1||(this.timeoutId=(0,ya.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new pp.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,mp.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await er(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(e){dp.error(e)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,ya.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(e,r){if(this.routers.length===0)throw(0,ks.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw(0,ks.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Ce(Vr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(s){dp.error(s)}}())),i=>mt(i,Boolean),i=>Bs(i,this.components.peerStore),async i=>await Nt(i));if(n!=null)return n;throw(0,ks.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw(0,ks.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ce(Vr(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>Bs(n,this.components.peerStore),n=>ua(n),n=>la(n))}};var pn=C(G(),1);var ga=class{constructor(e,r){this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw(0,pn.default)(new Error("No content this.routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ce(Vr(...this.routers.map(n=>n.findProviders(e,r))),n=>Bs(n,this.components.peerStore),n=>ua(n),n=>la(n))}async provide(e,r={}){if(this.routers.length===0)throw(0,pn.default)(new Error("No content routers available"),b.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>await n.provide(e,r)))}async put(e,r,n){if(!this.isStarted())throw(0,pn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await er(i.put(e,r,n))}async get(e,r){if(!this.isStarted())throw(0,pn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(e,r))if(i.name==="VALUE")return i.value}throw(0,pn.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getMany(e,r,n){if(!this.isStarted())throw(0,pn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);if(r==null||r===0)return;let i=0,s=this.components.dht;if(s!=null){for await(let o of s.get(e,n))if(o.name==="VALUE"&&(yield{from:o.from,val:o.value},i++,i===r))break}if(i===0)throw(0,pn.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}};function _e(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var gp=C(G(),1);var al=Symbol.for("@libp2p/peer-id");function Xn(t){return t!=null&&Boolean(t[al])}var tb=Symbol.for("nodejs.util.inspect.custom"),yp=Object.values(dn).map(t=>t.decoder).reduce((t,e)=>t.or(e),dn.identity.decoder),Ep=114,cl=36,ul=37,Us=class{constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[al](){return!0}toString(){return this.string==null&&(this.string=We.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return we.createV1(Ep,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return _e(this.multihash.bytes,e);if(typeof e=="string")return ye(e).equals(this);if(e?.multihash?.bytes!=null)return _e(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[tb](){return`PeerId(${this.toString()})`}},jn=class extends Us{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Zn=class extends Us{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},Jn=class extends Us{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Qe(t){if(t.type==="RSA")return new jn(t);if(t.type==="Ed25519")return new Zn(t);if(t.type==="secp256k1")return new Jn(t);throw(0,gp.default)(new Error("Not a PeerId"),"ERR_INVALID_PARAMETERS")}function ye(t,e){if(e=e??yp,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Gn(We.decode(`z${t}`));return t.startsWith("12D")?new Zn({multihash:r}):t.startsWith("16U")?new Jn({multihash:r}):new jn({multihash:r})}return mn(yp.decode(t))}function mn(t){try{let e=Gn(t);if(e.code===hn.code){if(e.digest.length===cl)return new Zn({multihash:e});if(e.digest.length===ul)return new Jn({multihash:e})}if(e.code===ot.code)return new jn({multihash:e})}catch{return rb(we.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function rb(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==Ep)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===ot.code)return new jn({multihash:t.multihash});if(e.code===hn.code){if(e.digest.length===cl)return new Zn({multihash:t.multihash});if(e.digest.length===ul)return new Jn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Mi(t,e){return t.length===cl?new Zn({multihash:pr(hn.code,t),privateKey:e}):t.length===ul?new Jn({multihash:pr(hn.code,t),privateKey:e}):new jn({multihash:await ot.digest(t),publicKey:t,privateKey:e})}var Ea=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let h=Number.parseInt(f,e);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var vp=45,nb=15,Fi=new Ea;function wp(t){if(!(t.length>nb))return Fi.new(t).parseWith(()=>Fi.readIPv4Addr())}function xp(t){if(!(t.length>vp))return Fi.new(t).parseWith(()=>Fi.readIPv6Addr())}function bp(t){if(!(t.length>vp))return Fi.new(t).parseWith(()=>Fi.readIPAddr())}function Sp(t){return Boolean(wp(t))}function _p(t){return Boolean(xp(t))}function Ki(t){return Boolean(bp(t))}var Ap=Sp,ib=_p,ll=function(t){let e=0;if(t=t.toString().trim(),Ap(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(ib(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Ap(r[n]),o;s&&(o=ll(r[n]),r[n]=Q(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,Q(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},Cp=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Ms={},fl={},ob=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[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"],[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"],[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"]];ob.forEach(t=>{let e=ab(...t);fl[e.code]=e,Ms[e.name]=e});function ab(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:Boolean(n),path:Boolean(i)}}function Ie(t){if(typeof t=="number"){if(fl[t]!=null)return fl[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Ms[t]!=null)return Ms[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var yr=C(va(),1);function Xe(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Mr(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Wn(r)}function Mp(t,e){switch(Ie(t).code){case 4:case 41:return bb(e);case 6:case 273:case 33:case 132:return Kp(e).toString();case 53:case 54:case 55:case 56:case 400:case 777:return _b(e);case 421:return Tb(e);case 444:return Up(e);case 445:return Up(e);case 466:return Ib(e);default:return Q(e,"base16")}}function Fp(t,e){switch(Ie(t).code){case 4:return kp(e);case 41:return kp(e);case 6:case 273:case 33:case 132:return ml(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 777:return Sb(e);case 421:return Ab(e);case 444:return Rb(e);case 445:return Nb(e);case 466:return Cb(e);default:return q(e,"base16")}}var pl=Object.values(dn).map(t=>t.decoder),xb=function(){let t=pl[0].or(pl[1]);return pl.slice(2).forEach(e=>t=t.or(e)),t}();function kp(t){if(!Ki(t))throw new Error("invalid ip address");return ll(t)}function bb(t){let e=Cp(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ki(e))throw new Error("invalid ip address");return e}function ml(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Kp(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Sb(t){let e=q(t),r=Uint8Array.from(yr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function _b(t){let e=yr.default.decode(t);if(t=t.slice(yr.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return Q(t)}function Ab(t){let e;t[0]==="Q"||t[0]==="1"?e=Gn(We.decode(`z${t}`)).bytes:e=we.parse(t).multihash.bytes;let r=Uint8Array.from(yr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function Cb(t){let e=xb.decode(t),r=Uint8Array.from(yr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function Ib(t){let e=yr.default.decode(t),r=t.slice(yr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+Q(r,"base64url")}function Tb(t){let e=yr.default.decode(t),r=t.slice(yr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return Q(r,"base58btc")}function Rb(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=Rt.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=ml(n);return Xe([r,i],r.length+i.length)}function Nb(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=Rt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=ml(n);return Xe([r,i],r.length+i.length)}function Up(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=Q(e,"base32"),i=Kp(r);return`${n}:${i}`}var Vi=C(va(),1);function Db(t){let e=[],r=t.split("/").slice(1);if(r.length===1&&r[0]==="")return[];for(let n=0;n<r.length;n++){let i=r[n],s=Ie(i);if(s.size===0){e.push([i]);continue}if(n++,n>=r.length)throw qp("invalid address: "+t);if(s.path===!0){e.push([i,wl(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function Lb(t){let e=[];return t.map(r=>{let n=ba(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),wl(e.join("/"))}function Pb(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=ba(e);return e.length>1?[r.code,Fp(r.code,e[1])]:[r.code]})}function yl(t){return t.map(e=>{let r=ba(e);return e[1]!=null?[r.code,Mp(r.code,e[1])]:[r.code]})}function gl(t){return xa(Xe(t.map(e=>{let r=ba(e),n=Uint8Array.from(Vi.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=Xe([n,e[1]])),n})))}function El(t,e){return t.size>0?t.size/8:t.size===0?0:Vi.default.decode(e)+(Vi.default.decode.bytes??0)}function wa(t){let e=[],r=0;for(;r<t.length;){let n=Vi.default.decode(t,r),i=Vi.default.decode.bytes??0,s=Ie(n),o=El(s,t.slice(r+i));if(o===0){e.push([n]),r+=i;continue}let a=t.slice(r+i,r+i+o);if(r+=o+i,r>t.length)throw qp("Invalid address Uint8Array: "+Q(t,"base16"));e.push([n,a])}return e}function vl(t){let e=wa(t),r=yl(e);return Lb(r)}function Bb(t){t=wl(t);let e=Db(t),r=Pb(e);return gl(r)}function Vp(t){return Bb(t)}function xa(t){let e=Ob(t);if(e!=null)throw e;return Uint8Array.from(t)}function Ob(t){try{wa(t)}catch(e){return e}}function wl(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function qp(t){return new Error("Error parsing address: "+t)}function ba(t){return Ie(t[0])}var bl=C(va(),1);var $p=C(G(),1);var qi=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},xl=function(t,e,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 e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},Fs,Ks,Vs,Hp,Ub=Symbol.for("nodejs.util.inspect.custom"),zp=[Ie("dns").code,Ie("dns4").code,Ie("dns6").code,Ie("dnsaddr").code],Mb=[Ie("p2p").code,Ie("ipfs").code],Sl=new Map,Gp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Yp(t,e){if(t==null)throw new Error("requires node address object");if(e==null)throw new Error("requires transport protocol");let r;switch(t.family){case 4:r="ip4";break;case 6:r="ip6";break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new gr("/"+[r,t.address,e,t.port].join("/"))}function qr(t){return Boolean(t?.[Gp])}var gr=class{constructor(e){if(Fs.set(this,void 0),Ks.set(this,void 0),Vs.set(this,void 0),this[Hp]=!0,e==null&&(e=""),e instanceof Uint8Array)this.bytes=xa(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=Vp(e)}else if(qr(e))this.bytes=xa(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return qi(this,Fs,"f")==null&&xl(this,Fs,vl(this.bytes),"f"),qi(this,Fs,"f")}toJSON(){return this.toString()}toOptions(){let e=this.protoCodes(),r=this.toString().split("/").slice(1),n,i;if(r.length>2)zp.includes(e[0])&&Mb.includes(e[1])?(n=Ie("tcp").name,i=443):(n=Ie(r[2]).name,i=parseInt(r[3]));else if(zp.includes(e[0]))n=Ie("tcp").name,i=443;else throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e[0]===41||e[0]===55?6:4,host:r[1],transport:n,port:i}}protos(){return this.protoCodes().map(e=>Object.assign({},Ie(e)))}protoCodes(){let e=[],r=this.bytes,n=0;for(;n<r.length;){let i=bl.default.decode(r,n),s=bl.default.decode.bytes??0,o=Ie(i),a=El(o,r.slice(n+s));n+=a+s,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return qi(this,Ks,"f")==null&&xl(this,Ks,wa(this.bytes),"f"),qi(this,Ks,"f")}stringTuples(){return qi(this,Vs,"f")==null&&xl(this,Vs,yl(this.tuples()),"f"),qi(this,Vs,"f")}encapsulate(e){return e=new gr(e),new gr(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new gr(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new gr(gl(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Ms.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?Q(We.decode(`z${n}`),"base58btc"):Q(we.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let e=null;try{e=this.stringTuples().filter(r=>Ie(r[0]).path===!0)[0][1],e==null&&(e=null)}catch{e=null}return e}equals(e){return _e(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Sl.get(r.name);if(n==null)throw(0,$p.default)(new Error(`no available resolver for ${r.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new gr(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[(Fs=new WeakMap,Ks=new WeakMap,Vs=new WeakMap,Hp=Gp,Ub)](){return`Multiaddr(${vl(this.bytes)})`}};function oe(t){return new gr(t)}var _l=C(G(),1);function Fb(t){let e=t.getPeerId();if(e==null)throw(0,_l.default)(new Error(`${t.toString()} does not have a valid peer type`),b.ERR_INVALID_MULTIADDR);try{return ye(e)}catch{throw(0,_l.default)(new Error(`${t.toString()} is not a valid peer type`),b.ERR_INVALID_MULTIADDR)}}function Hr(t){if(Xn(t))return{id:t,multiaddrs:[],protocols:[]};let e;return qr(t)&&(e=t,t=Fb(t)),{id:t,multiaddrs:e!=null?[e]:[],protocols:[]}}var Kb=t=>t,Sa=class extends Ue{constructor(e,r){super();let{listen:n=[],announce:i=[]}=r;this.components=e,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Set,this.announceFilter=r.announceFilter??Kb}getListenAddrs(){return Array.from(this.listen).map(e=>oe(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>oe(e))}getObservedAddrs(){return Array.from(this.observed).map(e=>oe(e))}confirmObservedAddr(e){}removeObservedAddr(e){}addObservedAddr(e){let r=oe(e),n=r.getPeerId();n!=null&&ye(n).equals(this.components.peerId)&&(r=r.decapsulate(oe(`/p2p/${this.components.peerId.toString()}`)));let i=r.toString();this.observed.has(i)||(this.observed.add(i),this.dispatchEvent(new X("change:addresses")))}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(this.getObservedAddrs().map(n=>n.toString()));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>oe(n))).map(n=>n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Da=C(G(),1);var r0=C(t0(),1),Er=r0.default;var n0=M("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),Ca=class extends Ue{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let e="hidden",r="visibilitychange";typeof globalThis.document.hidden<"u"?(e="hidden",r="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(e="mozHidden",r="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(e="msHidden",r="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(e="webkitHidden",r="webkitvisibilitychange"),this.hidden=e,this.visibilityChange=r}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?n0("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let e=globalThis.document[this.hidden]===!1;n0(e?"Page Visible":"Page Hidden"),this.dispatchEvent(new X("visibilityChange",{detail:e}))}};var zr=M("libp2p:connection-manager:latency-monitor"),Ia=class extends Ue{constructor(e={}){super();let{latencyCheckIntervalMs:r,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:s}=e;this.latencyCheckIntervalMs=r??500,this.latencyRandomPercentage=s??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,zr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?zr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):zr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(zr("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=o=>{let a=this.now(o);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(zr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(zr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){Gb()&&(this.visibilityChangeEmitter=new Ca,this.visibilityChangeEmitter.addEventListener("visibilityChange",e=>{let{detail:r}=e;r?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>this._emitSummary(),this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let e=this.getSummary();e.events>0&&this.dispatchEvent(new X("data",{detail:e}))}getSummary(){let e={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),zr.trace("Summary: %O",e),e}checkLatency(){let e=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,r={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+e),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(r.startTime)-r.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,zr.trace("MS: %s Data: %O",i,this.latencyData)};zr.trace("localData: %O",r),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(r.deltaOffset=0,r.startTime=this.now(),this.asyncTestFn(n)):(r.deltaOffset-=1,n())},r.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function Gb(){return typeof globalThis.window<"u"}var La=C(mr(),1);var Ta="OPEN",Cl="CLOSING",Ra="CLOSED";function $r(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var qs=class{constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){this.map.delete(e.toString())}entries(){return $r(this.map.entries(),e=>[ye(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,ye(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return $r(this.map.keys(),e=>ye(e))}values(){return this.map.values()}get size(){return this.map.size}};var Gr=class{constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return $r(this.set.entries(),e=>{let r=ye(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=ye(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return $r(this.set.values(),e=>ye(e))}intersection(e){let r=new Gr;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new Gr;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new Gr;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var $i=class{constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return $r(this.list.entries(),e=>ye(e[1]))}concat(e){let r=new $i(this);for(let n of e)r.push(n);return r}entries(){return $r(this.list.entries(),e=>[e[0],ye(e[1])])}every(e){return this.list.every((r,n)=>e(ye(r),n,this))}filter(e){let r=new $i;return this.list.forEach((n,i)=>{let s=ye(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(ye(n),i,this));if(r!=null)return ye(r)}findIndex(e){return this.list.findIndex((r,n)=>e(ye(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(ye(r),n,this)})}includes(e){return this.list.includes(e.toString())}indexOf(e){return this.list.indexOf(e.toString())}pop(){let e=this.list.pop();if(e!=null)return ye(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return ye(e)}unshift(...e){let r=this.list.length;for(let n=e.length-1;n>-1;n--)r=this.list.unshift(e[n].toString());return r}get length(){return this.list.length}};var Kl=C(Kr(),1);var i0="keep-alive";var em=C(J0(),1);var et=M("libp2p:connection-manager"),R2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},N2=6e4,Pa=class extends Ue{constructor(e,r){if(super(),this.opts=Er.call({ignoreUndefined:!0},R2,r),this.opts.maxConnections<this.opts.minConnections)throw(0,Da.default)(new Error("Connection Manager maxConnections must be greater than minConnections"),b.ERR_INVALID_PARAMETERS);et("options: %o",this.opts),this.components=e,this.connections=new Map,this.started=!1,r.maxEventLoopDelay!=null&&r.maxEventLoopDelay>0&&r.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new Ia({latencyCheckIntervalMs:r.pollInterval,dataEmitIntervalMs:r.pollInterval}));try{(0,La.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=r.startupReconnectTimeout??N2,this.dialTimeout=r.dialTimeout??3e4,this.allow=(r.allow??[]).map(n=>oe(n)),this.deny=(r.deny??[]).map(n=>oe(n)),this.inboundConnectionRateLimiter=new em.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.stat.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.stat.direction} ${o.stat.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,et("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let e=[];for(let r of await this.components.peerStore.all())(await this.components.peerStore.getTags(r.id)).filter(s=>s.name===i0).length>0&&e.push(r.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Kl.TimeoutController(this.startupReconnectTimeout);try{(0,La.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(e.map(async r=>{await this.openConnection(r,{signal:this.connectOnStartupController?.signal}).catch(n=>{et.error(n)})}))}).catch(e=>{et.error(e)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),et("stopped")}async _close(){let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){et.error(i)}})());et("closing %d connections",e.length),await Promise.all(e),this.connections.clear()}onConnect(e){this._onConnect(e).catch(r=>{et.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=n.toString(),s=this.connections.get(i);s!=null?s.push(r):this.connections.set(i,[r]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let o=this.getConnections().length,a=o-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",o,a),this.dispatchEvent(new X("peer:connect",{detail:r}))}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer.toString(),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.dispatchEvent(new X("peer:disconnect",{detail:r})))}getConnections(e){if(e!=null)return this.connections.get(e.toString())??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}async openConnection(e,r={}){let n;if(Xn(e))n=e;else if(qr(e))n=Hr(e).id;else throw(0,Da.default)(new TypeError("Can only open connections to PeerIds or Multiaddrs"),b.ERR_INVALID_PARAMETERS);et("dial to %p",n);let i=this.getConnections(n);if(i.length>0)return et("had an existing connection to %p",n),i[0];let s;if(r?.signal==null){s=new Kl.TimeoutController(this.dialTimeout),r.signal=s.signal;try{(0,La.setMaxListeners)?.(1/0,s.signal)}catch{}}try{let o=await this.components.dialer.dial(e,r),a=this.connections.get(n.toString());a==null&&(a=[],this.connections.set(n.toString(),a));let c=!1;for(let u of a)u.id===o.id&&(c=!0);return c||a.push(o),o}finally{s?.clear()}}async closeConnections(e){let r=this.connections.get(e.toString())??[];await Promise.all(r.map(async n=>await n.close()))}getAll(e){if(!Xn(e))throw(0,Da.default)(new Error("peerId must be an instance of peer-id"),b.ERR_INVALID_PARAMETERS);let r=e.toString(),n=this.connections.get(r);return n!=null?n.filter(i=>i.stat.status===Ta):[]}_onLatencyMeasure(e){let{detail:r}=e;this._checkMaxLimit("maxEventLoopDelay",r.avgMs,1).catch(n=>{et.error(n)})}async _checkMaxLimit(e,r,n=1){let i=this.opts[e];if(i==null){et.trace("limit %s was not set so it cannot be applied",e);return}et.trace("checking limit of %s. current value: %d of %d",e,r,i),r>i&&(et("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,e,r,i,n),await this._pruneConnections(n))}async _pruneConnections(e){let r=this.getConnections(),n=new qs;for(let o of r){let a=o.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((u,l)=>u+l.value,0))}let i=r.sort((o,a)=>{let c=n.get(o.remotePeer)??0,u=n.get(a.remotePeer)??0;if(c>u)return 1;if(c<u)return-1;let l=o.stat.timeline.open,f=a.stat.timeline.open;return l<f?1:l>f?-1:0}),s=[];for(let o of i)if(et("too many connections open - closing a connection to %p",o.remotePeer),s.push(o),s.length===e)break;await Promise.all(s.map(async o=>{try{await o.close()}catch(a){et.error(a)}this.onDisconnect(new X("connectionEnd",{detail:o}))}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return et("connection from %s refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return et("connection from %s refused - incomingPendingConnections exceeded by peer %s",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return et("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,e.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(et("connection from %s refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var Vl=C(nl(),1);async function*$s(t,e){yield*(await Jt(t)).sort(e)}var yn=M("libp2p:connection-manager:auto-dialler"),D2={enabled:!0,minConnections:0,autoDialInterval:1e4},Ba=class{constructor(e,r){this.components=e,this.options=Er.call({ignoreUndefined:!0},D2,r),this.running=!1,this._autoDial=this._autoDial.bind(this),yn("options: %j",this.options)}isStarted(){return this.running}async start(){if(!this.options.enabled){yn("not enabled");return}this.running=!0,this._autoDial().catch(e=>{yn.error("could start autodial",e)}),yn("started")}async stop(){if(!this.options.enabled){yn("not enabled");return}this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),yn("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let e=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=e){this.autoDialTimeout=(0,Vl.default)(this._autoDial,this.options.autoDialInterval);return}let r=await this.components.peerStore.all(),n=await Ce(r.sort(()=>Math.random()>.5?1:-1),i=>mt(i,s=>!s.id.equals(this.components.peerId)),i=>$s(i,(s,o)=>o.protocols.length>s.protocols.length||o.id.publicKey!=null&&s.id.publicKey==null?1:-1),async i=>await Jt(i));for(let i=0;this.running&&i<n.length&&this.components.connectionManager.getConnections().length<e;i++){if(!this.running)return;let s=n[i];if(this.components.connectionManager.getConnections(s.id).length===0){yn("connecting to a peerStore stored peer %p",s.id);try{await this.components.connectionManager.openConnection(s.id)}catch(o){yn.error("could not connect to peerStore stored peer",o)}}}this.running&&(this.autoDialTimeout=(0,Vl.default)(this._autoDial,this.options.autoDialInterval))}};var fy=C(G(),1);var L2=W("dns4"),P2=W("dns6"),B2=W("dnsaddr"),Xi=yt(W("dns"),B2,L2,P2),Oa=yt(W("ip4"),W("ip6")),Qs=yt(ee(Oa,W("tcp")),ee(Xi,W("tcp"))),rm=ee(Oa,W("udp")),O2=ee(rm,W("utp")),k2=ee(rm,W("quic")),Gs=yt(ee(Qs,W("ws")),ee(Xi,W("ws"))),Ys=yt(ee(Qs,W("wss")),ee(Xi,W("wss"))),ql=yt(ee(Qs,W("http")),ee(Oa,W("http")),ee(Xi,W("http"))),Hl=yt(ee(Qs,W("https")),ee(Oa,W("https")),ee(Xi,W("https"))),nm=yt(ee(Gs,W("p2p-webrtc-star"),W("p2p")),ee(Ys,W("p2p-webrtc-star"),W("p2p")),ee(Gs,W("p2p-webrtc-star")),ee(Ys,W("p2p-webrtc-star"))),OL=yt(ee(Gs,W("p2p-websocket-star"),W("p2p")),ee(Ys,W("p2p-websocket-star"),W("p2p")),ee(Gs,W("p2p-websocket-star")),ee(Ys,W("p2p-websocket-star"))),im=yt(ee(ql,W("p2p-webrtc-direct"),W("p2p")),ee(Hl,W("p2p-webrtc-direct"),W("p2p")),ee(ql,W("p2p-webrtc-direct")),ee(Hl,W("p2p-webrtc-direct"))),Ws=yt(Gs,Ys,ql,Hl,nm,im,Qs,O2,k2,Xi),kL=yt(ee(Ws,W("p2p-stardust"),W("p2p")),ee(Ws,W("p2p-stardust"))),gn=yt(ee(Ws,W("p2p")),nm,im,W("p2p")),tm=yt(ee(gn,W("p2p-circuit"),gn),ee(gn,W("p2p-circuit")),ee(W("p2p-circuit"),gn),ee(Ws,W("p2p-circuit")),ee(W("p2p-circuit"),Ws),W("p2p-circuit")),sm=()=>yt(ee(tm,sm),tm),ti=sm(),UL=yt(ee(ti,gn,ti),ee(gn,ti),ee(ti,gn),ti,gn);function om(t){function e(r){let n;try{n=oe(r)}catch{return!1}let i=t(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return e}function ee(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:om(e),partialMatch:e}}function yt(...t){function e(n){let i=null;return t.some(s=>{let o=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return o!=null?(i=o,!0):!1}),i}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:om(e),partialMatch:e}}function W(t){let e=t;function r(i){let s;try{s=oe(i)}catch{return!1}let o=s.protoNames();return o.length===1&&o[0]===e}function n(i){return i.length===0?null:i[0]===e?i.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var rf=C(Wl(),1),Ym=C(Fm(),1),nf=C(tf(),1),Wm=C(Gm(),1),Qm=C(ni(),1);function G2(){Qm.default._configure(),rf.default._configure(Ym.default),nf.default._configure(Wm.default)}G2();var Xm=["uint64","int64","sint64","fixed64","sfixed64"];function Y2(t){for(let e of Xm){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function sf(t){return Y2(new rf.default(t))}function W2(t){for(let e of Xm){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function of(){return W2(nf.default.create())}function Te(t,e){let r=sf(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Re(t,e){let r=of();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Zi;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(Zi||(Zi={}));function Ka(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function wn(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return Ka("enum",Zi.VARINT,r,n)}function Ne(t,e){return Ka("message",Zi.LENGTH_DELIMITED,t,e)}var j;(function(t){let e;(function(a){a.SUCCESS="SUCCESS",a.HOP_SRC_ADDR_TOO_LONG="HOP_SRC_ADDR_TOO_LONG",a.HOP_DST_ADDR_TOO_LONG="HOP_DST_ADDR_TOO_LONG",a.HOP_SRC_MULTIADDR_INVALID="HOP_SRC_MULTIADDR_INVALID",a.HOP_DST_MULTIADDR_INVALID="HOP_DST_MULTIADDR_INVALID",a.HOP_NO_CONN_TO_DST="HOP_NO_CONN_TO_DST",a.HOP_CANT_DIAL_DST="HOP_CANT_DIAL_DST",a.HOP_CANT_OPEN_DST_STREAM="HOP_CANT_OPEN_DST_STREAM",a.HOP_CANT_SPEAK_RELAY="HOP_CANT_SPEAK_RELAY",a.HOP_CANT_RELAY_TO_SELF="HOP_CANT_RELAY_TO_SELF",a.STOP_SRC_ADDR_TOO_LONG="STOP_SRC_ADDR_TOO_LONG",a.STOP_DST_ADDR_TOO_LONG="STOP_DST_ADDR_TOO_LONG",a.STOP_SRC_MULTIADDR_INVALID="STOP_SRC_MULTIADDR_INVALID",a.STOP_DST_MULTIADDR_INVALID="STOP_DST_MULTIADDR_INVALID",a.STOP_RELAY_REFUSED="STOP_RELAY_REFUSED",a.MALFORMED_MESSAGE="MALFORMED_MESSAGE"})(e=t.Status||(t.Status={}));let r;(function(a){a[a.SUCCESS=100]="SUCCESS",a[a.HOP_SRC_ADDR_TOO_LONG=220]="HOP_SRC_ADDR_TOO_LONG",a[a.HOP_DST_ADDR_TOO_LONG=221]="HOP_DST_ADDR_TOO_LONG",a[a.HOP_SRC_MULTIADDR_INVALID=250]="HOP_SRC_MULTIADDR_INVALID",a[a.HOP_DST_MULTIADDR_INVALID=251]="HOP_DST_MULTIADDR_INVALID",a[a.HOP_NO_CONN_TO_DST=260]="HOP_NO_CONN_TO_DST",a[a.HOP_CANT_DIAL_DST=261]="HOP_CANT_DIAL_DST",a[a.HOP_CANT_OPEN_DST_STREAM=262]="HOP_CANT_OPEN_DST_STREAM",a[a.HOP_CANT_SPEAK_RELAY=270]="HOP_CANT_SPEAK_RELAY",a[a.HOP_CANT_RELAY_TO_SELF=280]="HOP_CANT_RELAY_TO_SELF",a[a.STOP_SRC_ADDR_TOO_LONG=320]="STOP_SRC_ADDR_TOO_LONG",a[a.STOP_DST_ADDR_TOO_LONG=321]="STOP_DST_ADDR_TOO_LONG",a[a.STOP_SRC_MULTIADDR_INVALID=350]="STOP_SRC_MULTIADDR_INVALID",a[a.STOP_DST_MULTIADDR_INVALID=351]="STOP_DST_MULTIADDR_INVALID",a[a.STOP_RELAY_REFUSED=390]="STOP_RELAY_REFUSED",a[a.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE"})(r||(r={})),function(a){a.codec=()=>wn(r)}(e=t.Status||(t.Status={}));let n;(function(a){a.HOP="HOP",a.STOP="STOP",a.STATUS="STATUS",a.CAN_HOP="CAN_HOP"})(n=t.Type||(t.Type={}));let i;(function(a){a[a.HOP=1]="HOP",a[a.STOP=2]="STOP",a[a.STATUS=3]="STATUS",a[a.CAN_HOP=4]="CAN_HOP"})(i||(i={})),function(a){a.codec=()=>wn(i)}(n=t.Type||(t.Type={}));let s;(function(a){let c;a.codec=()=>(c==null&&(c=Ne((u,l,f={})=>{if(f.lengthDelimited!==!1&&l.fork(),(f.writeDefaults===!0||u.id!=null&&u.id.byteLength>0)&&(l.uint32(10),l.bytes(u.id)),u.addrs!=null)for(let h of u.addrs)l.uint32(18),l.bytes(h);f.lengthDelimited!==!1&&l.ldelim()},(u,l)=>{let f={id:new Uint8Array(0),addrs:[]},h=l==null?u.len:u.pos+l;for(;u.pos<h;){let d=u.uint32();switch(d>>>3){case 1:f.id=u.bytes();break;case 2:f.addrs.push(u.bytes());break;default:u.skipType(d&7);break}}return f})),c),a.encode=u=>Re(u,a.codec()),a.decode=u=>Te(u,a.codec())})(s=t.Peer||(t.Peer={}));let o;t.codec=()=>(o==null&&(o=Ne((a,c,u={})=>{u.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),t.Type.codec().encode(a.type,c)),a.srcPeer!=null&&(c.uint32(18),t.Peer.codec().encode(a.srcPeer,c,{writeDefaults:!1})),a.dstPeer!=null&&(c.uint32(26),t.Peer.codec().encode(a.dstPeer,c,{writeDefaults:!1})),a.code!=null&&(c.uint32(32),t.Status.codec().encode(a.code,c)),u.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let u={},l=c==null?a.len:a.pos+c;for(;a.pos<l;){let f=a.uint32();switch(f>>>3){case 1:u.type=t.Type.codec().decode(a);break;case 2:u.srcPeer=t.Peer.codec().decode(a,a.uint32());break;case 3:u.dstPeer=t.Peer.codec().decode(a,a.uint32());break;case 4:u.code=t.Status.codec().decode(a);break;default:a.skipType(f&7);break}}return u})),o),t.encode=a=>Re(a,t.codec()),t.decode=a=>Te(a,t.codec())})(j||(j={}));var Zs=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function jm(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function si(t,e,r){let n=r??{},i=jm(t);async function*s(){let o,a=()=>{o?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:l,abortCode:f}=n;throw new Zs(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:d}=n;f(new Zs(h,d))}});c=await Promise.race([u,i.next()]),o=null}catch(u){e.removeEventListener("abort",a);let l=u.type==="aborted"&&e.aborted;if(l&&n.onAbort!=null&&await n.onAbort(t),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}e.removeEventListener("abort",a)}return s()}function Q2(t,e,r){return n=>t(si(n,e,r))}function Lt(t,e,r){return{sink:Q2(t.sink,e,{...r,onAbort:void 0}),source:si(t.source,e,r)}}var X2=M("libp2p:stream:converter");function af(t,e={}){let{stream:r,remoteAddr:n}=t,{sink:i,source:s}=r,o=async function*(){for await(let u of s)yield*u}(),a={async sink(u){e.signal!=null&&(u=si(u,e.signal));try{await i(u),await c()}catch(l){l.type!=="aborted"&&X2(l)}},source:e.signal!=null?si(o,e.signal):o,remoteAddr:n,timeline:{open:Date.now(),close:void 0},async close(){await i(async function*(){yield new Uint8Array(0)}()),await c()}};async function c(){return a.timeline.close==null&&(a.timeline.close=Date.now()),await Promise.resolve()}return a}var xr="/libp2p/circuit/relay/0.1.0";function Zm(t){let e=new Map;async function r(s){let o=s.toString().split("/p2p-circuit").find(h=>h!==""),a=oe(o),c=a.getPeerId();if(c==null)throw new Error("Could not determine relay peer from multiaddr");let u=ye(c);await t.peerStore.addressBook.add(u,[a]);let l=await t.connectionManager.openConnection(u),f=l.remoteAddr.encapsulate("/p2p-circuit");e.set(l.remotePeer.toString(),f),i.dispatchEvent(new X("listening"))}function n(){let s=[];for(let o of e.values())s.push(o);return s}let i=Object.assign(new Ue,{close:async()=>await Promise.resolve(),listen:r,getAddrs:n});return t.connectionManager.addEventListener("peer:disconnect",s=>{let{detail:o}=s;e.delete(o.remotePeer.toString())&&i.dispatchEvent(new X("close"))}),i}var ff=C(G(),1);function Jm(t,e){t.write({type:j.Type.STATUS,code:e})}function Va(t,e){try{t.dstPeer?.addrs!=null&&t.dstPeer.addrs.forEach(r=>oe(r))}catch(r){throw Jm(e,t.type===j.Type.HOP?j.Status.HOP_DST_MULTIADDR_INVALID:j.Status.STOP_DST_MULTIADDR_INVALID),r}try{t.srcPeer?.addrs!=null&&t.srcPeer.addrs.forEach(r=>oe(r))}catch(r){throw Jm(e,t.type===j.Type.HOP?j.Status.HOP_SRC_MULTIADDR_INVALID:j.Status.STOP_SRC_MULTIADDR_INVALID),r}}var ty=Symbol.for("@achingbrain/uint8arraylist");function ey(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function qa(t){return Boolean(t?.[ty])}var $e=class{constructor(...e){Object.defineProperty(this,ty,{value:!0}),this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(qa(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(qa(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=ey(this.bufs,e);return r.buf[r.index]}set(e,r){let n=ey(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(qa(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:i}=this._subList(e,r);return Xe(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Xe(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new $e;return s.length=i,s.bufs=n,s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!qa(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let h=u;h>=0;h--){let d=this.get(f+h);if(n[h]!==d){l=Math.max(1,h-a[d]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=Mr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=Ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=Ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=Ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=Mr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=Ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=Ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=Ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=Ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=Ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof $e)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!_e(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new $e;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};function Ha(t){return t instanceof Uint8Array?{get(e){return t[e]},set(e,r){t[e]=r}}:{get(e){return t.get(e)},set(e,r){t.set(e,r)}}}var ry=4294967296,Pt=class{constructor(e=0,r=0){this.hi=e,this.lo=r}toBigInt(e){if(e===!0)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)}toNumber(e){return Number(this.toBigInt(e))}zzDecode(){let e=-(this.lo&1),r=((this.lo>>>1|this.hi<<31)^e)>>>0,n=(this.hi>>>1^e)>>>0;return new Pt(n,r)}zzEncode(){let e=this.hi>>31,r=((this.hi<<1|this.lo>>>31)^e)>>>0,n=(this.lo<<1^e)>>>0;return new Pt(r,n)}toBytes(e,r=0){let n=Ha(e);for(;this.hi>0;)n.set(r++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(r++,this.lo&127|128),this.lo=this.lo>>>7;n.set(r++,this.lo)}static fromBigInt(e){if(e===0n)return new Pt;let r=e<0;r&&(e=-e);let n=Number(e>>32n)|0,i=Number(e-(BigInt(n)<<32n))|0;return r&&(n=~n>>>0,i=~i>>>0,++i>ry&&(i=0,++n>ry&&(n=0))),new Pt(n,i)}static fromNumber(e){if(e===0)return new Pt;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Pt(i,n)}static fromBytes(e,r=0){let n=Ha(e),i=new Pt,s=0;if(e.length-r>4){for(;s<4;++s)if(i.lo=(i.lo|(n.get(r)&127)<<s*7)>>>0,n.get(r++)<128)return i;if(i.lo=(i.lo|(n.get(r)&127)<<28)>>>0,i.hi=(i.hi|(n.get(r)&127)>>4)>>>0,n.get(r++)<128)return i;s=0}else for(;s<4;++s){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<s*7)>>>0,n.get(r++)<128)return i}if(e.length-r>4){for(;s<5;++s)if(i.hi=(i.hi|(n.get(r)&127)<<s*7+3)>>>0,n.get(r++)<128)return i}else if(r<e.byteLength)for(;s<5;++s){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<s*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var j2=Math.pow(2,7),Z2=Math.pow(2,14),J2=Math.pow(2,21),eS=Math.pow(2,28),tS=Math.pow(2,35),rS=Math.pow(2,42),nS=Math.pow(2,49),iS=Math.pow(2,56),sS=Math.pow(2,63),nr={encodingLength(t){return t<j2?1:t<Z2?2:t<J2?3:t<eS?4:t<tS?5:t<rS?6:t<nS?7:t<iS?8:t<sS?9:10},encode(t,e,r=0){if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return e==null&&(e=Mr(nr.encodingLength(t))),Pt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return Pt.fromBytes(t,e).toNumber(!0)}};function ny(t){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}var za=t=>{let e=nr.encodingLength(t),r=ny(e);return nr.encode(t,r),za.bytes=e,r};za.bytes=0;function qt(t){t=t??{};let e=t.lengthEncoder??za;return async function*(n){for await(let i of n){let s=e(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}}}qt.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??za;return new $e(r(t.byteLength),t)};var Js=C(G(),1),oS=8,aS=1024*1024*4,oi;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(oi||(oi={}));var cf=t=>{let e=nr.decode(t);return cf.bytes=nr.encodingLength(e),e};cf.bytes=0;function Bt(t){return async function*(r){let n=new $e,i=oi.LENGTH,s=-1,o=t?.lengthDecoder??cf,a=t?.maxLengthLength??oS,c=t?.maxDataLength??aS;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===oi.LENGTH)try{if(s=o(n),s<0)throw(0,Js.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(s>c)throw(0,Js.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let l=o.bytes;n.consume(l),t?.onLength!=null&&t.onLength(s),i=oi.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Js.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===oi.DATA){if(n.byteLength<s)break;let l=n.sublist(0,s);n.consume(s),t?.onData!=null&&t.onData(l),yield l,i=oi.LENGTH}}if(n.byteLength>0)throw(0,Js.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Bt.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return Bt({...e??{},onLength:s=>{r=s}})(n)};function uf(t){let e=async function*(){let r=yield,n=new $e;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new $e;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 $e);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return e.next(),e}function lf(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function Ji(t){let e=Qn(),r=uf(t.source),n=lf(),i,s=t.sink(async function*(){yield*e,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:e,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await s),source:r},rest:()=>e.end(),write:e.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var eo=M("libp2p:circuit:stream-handler"),Yr=class{constructor(e){let{stream:r,maxLength:n=4096}=e;this.stream=r,this.shake=Ji(this.stream),this.decoder=Bt.fromReader(this.shake.reader,{maxDataLength:n})}async read(){let e=await this.decoder.next();if(e.value!=null){let r=j.decode(e.value);return eo("read message type",r.type),r}eo("read received no value, closing stream"),this.close()}write(e){eo("write message type %s",e.type),this.shake.write(qt.single(j.encode(e)))}rest(){return this.shake.rest(),this.shake.stream}end(e){this.write(e),this.close()}close(){eo("closing the stream"),this.rest().sink([]).catch(e=>{eo.error(e)})}};var to=M("libp2p:circuit:stop");function iy(t){let{connection:e,request:r,streamHandler:n}=t;try{Va(r,n)}catch(i){to.error("invalid stop request via peer %p %o",e.remotePeer,i);return}return to("stop request is valid"),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS}),n.rest()}async function sy(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(xr,{signal:n});to("starting stop request to %p",e.remotePeer);let s=new Yr({stream:i});s.write(r);let o=await s.read();if(o==null){s.close();return}if(o.code===j.Status.SUCCESS)return to("stop request to %p was successful",e.remotePeer),s.rest();to("stop request failed with code %d",o.code),s.close()}var Ht=M("libp2p:circuit:hop");async function oy(t){let{connection:e,request:r,streamHandler:n,circuit:i,connectionManager:s}=t;if(!i.hopEnabled())return Ht("HOP request received but we are not acting as a relay"),n.end({type:j.Type.STATUS,code:j.Status.HOP_CANT_SPEAK_RELAY});try{Va(r,n)}catch(f){Ht.error("invalid hop request via peer %p %o",e.remotePeer,f);return}if(r.dstPeer==null){Ht("HOP request received but we do not receive a dstPeer");return}let o=mn(r.dstPeer.id),a=s.getConnections(o);if(a.length===0&&!i.hopActive())return Ht("HOP request received but we are not connected to the destination peer"),n.end({type:j.Type.STATUS,code:j.Status.HOP_NO_CONN_TO_DST});if(a.length===0)return Ht("did not have connection to remote peer"),n.end({type:j.Type.STATUS,code:j.Status.HOP_NO_CONN_TO_DST});let c={type:j.Type.STOP,dstPeer:r.dstPeer,srcPeer:r.srcPeer},u;try{Ht("performing STOP request");let f=await sy({connection:a[0],request:c});if(f==null)throw new Error("Could not stop");u=f}catch(f){Ht.error(f);return}Ht("hop request from %p is valid",e.remotePeer),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS});let l=n.rest();return Ht("creating related connections"),await Ce(l,u,l)}async function ay(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(xr,{signal:n}),s=new Yr({stream:i});s.write(r);let o=await s.read();if(o==null)throw(0,ff.default)(new Error("HOP request had no response"),b.ERR_HOP_REQUEST_FAILED);if(o.code===j.Status.SUCCESS)return Ht("hop request was successful"),s.rest();throw Ht("hop request failed with code %d, closing stream",o.code),s.close(),(0,ff.default)(new Error(`HOP request failed with code "${o.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function cy(t){let{connection:e,signal:r}=t,n=await e.newStream(xr,{signal:r}),i=new Yr({stream:n});i.write({type:j.Type.CAN_HOP});let s=await i.read();return await i.close(),!(s==null||s.code!==j.Status.SUCCESS)}function uy(t){let{connection:e,streamHandler:r,circuit:n}=t,i=n.hopEnabled();Ht("can hop (%s) request from %p",i,e.remotePeer),r.end({type:j.Type.STATUS,code:i?j.Status.SUCCESS:j.Status.HOP_CANT_SPEAK_RELAY})}var ly=Symbol.for("@libp2p/transport");var xn;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(xn||(xn={}));var hy=C(Kr(),1),dy=C(mr(),1),zt=M("libp2p:circuit"),Ga=class{constructor(e,r){this._init=r,this.components=e,this._started=!1}isStarted(){return this._started}async start(){this._started||(this._started=!0,await this.components.registrar.handle(xr,e=>{this._onProtocol(e).catch(r=>{zt.error(r)})}).catch(e=>{zt.error(e)}))}async stop(){await this.components.registrar.unhandle(xr)}hopEnabled(){return!0}hopActive(){return!0}get[ly](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(e){let{connection:r,stream:n}=e,i=new hy.TimeoutController(this._init.hop.timeout);try{(0,dy.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=Lt(n,i.signal),o=new Yr({stream:{...n,...s}}),a=await o.read();if(a==null){zt("request was invalid, could not read from stream"),o.write({type:j.Type.STATUS,code:j.Status.MALFORMED_MESSAGE}),o.close();return}let c;switch(a.type){case j.Type.CAN_HOP:{zt("received CAN_HOP request from %p",r.remotePeer),await uy({circuit:this,connection:r,streamHandler:o});break}case j.Type.HOP:{zt("received HOP request from %p",r.remotePeer),await oy({connection:r,request:a,streamHandler:o,circuit:this,connectionManager:this.components.connectionManager});break}case j.Type.STOP:{zt("received STOP request from %p",r.remotePeer),c=await iy({connection:r,request:a,streamHandler:o});break}default:{zt("Request of type %s not supported",a.type),o.write({type:j.Type.STATUS,code:j.Status.MALFORMED_MESSAGE}),o.close();return}}if(c!=null){let u=r.remoteAddr.encapsulate("/p2p-circuit").encapsulate(oe(a.dstPeer?.addrs[0])),l=oe(a.srcPeer?.addrs[0]),f=af({stream:c,remoteAddr:u,localAddr:l}),h=a.type===j.Type.HOP?"relay":"inbound";zt("new %s connection %s",h,f.remoteAddr);let d=await this.components.upgrader.upgradeInbound(f);zt("%s connection %s upgraded",h,f.remoteAddr),this.handler!=null&&this.handler(d)}}finally{i.clear()}}async dial(e,r={}){let n=e.toString().split("/p2p-circuit"),i=oe(n[0]),s=oe(n[n.length-1]),o=i.getPeerId(),a=s.getPeerId();if(o==null||a==null){let d="Circuit relay dial failed as addresses did not have peer id";throw zt.error(d),(0,fy.default)(new Error(d),b.ERR_RELAYED_DIAL)}let c=ye(o),u=ye(a),l=!1,h=this.components.connectionManager.getConnections(c)[0];h==null&&(await this.components.peerStore.addressBook.add(c,[i]),h=await this.components.connectionManager.openConnection(c,r),l=!0);try{let d=await ay({...r,connection:h,request:{type:j.Type.HOP,srcPeer:{id:this.components.peerId.toBytes(),addrs:this.components.addressManager.getAddresses().map(g=>g.bytes)},dstPeer:{id:u.toBytes(),addrs:[oe(s).bytes]}}}),p=i.encapsulate(`/p2p-circuit/p2p/${this.components.peerId.toString()}`),y=af({stream:d,remoteAddr:e,localAddr:p});return zt("new outbound connection %s",y.remoteAddr),await this.components.upgrader.upgradeOutbound(y)}catch(d){throw zt.error("Circuit relay dial failed",d),l&&await h.close(),d}}createListener(e){return this.handler=e.handler,Zm({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(e){return e=Array.isArray(e)?e:[e],e.filter(r=>ti.matches(r))}};var ec=C(sl(),1);async function Ya(t){let e=new TextEncoder().encode(t),r=await ot.digest(e);return we.createV0(r)}var hf="hop_relay",df="true",Wa="/libp2p/relay";var wy=C(py(),1);var my="[a-fA-F\\d:]",bn=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${my})|(?<=${my})(?=\\s|$))`:"",ir="(?: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}",tt="[a-fA-F\\d]{1,4}",Qa=`
38
+ (?:
39
+ (?:${tt}:){7}(?:${tt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
+ (?:${tt}:){6}(?:${ir}|:${tt}|:)| // 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
+ (?:${tt}:){5}(?::${ir}|(?::${tt}){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
+ (?:${tt}:){4}(?:(?::${tt}){0,1}:${ir}|(?::${tt}){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
+ (?:${tt}:){3}(?:(?::${tt}){0,2}:${ir}|(?::${tt}){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
+ (?:${tt}:){2}(?:(?::${tt}){0,3}:${ir}|(?::${tt}){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
+ (?:${tt}:){1}(?:(?::${tt}){0,4}:${ir}|(?::${tt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
+ (?::(?:(?::${tt}){0,5}:${ir}|(?::${tt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
+ )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),uS=new RegExp(`(?:^${ir}$)|(?:^${Qa}$)`),lS=new RegExp(`^${ir}$`),fS=new RegExp(`^${Qa}$`),pf=t=>t&&t.exact?uS:new RegExp(`(?:${bn(t)}${ir}${bn(t)})|(?:${bn(t)}${Qa}${bn(t)})`,"g");pf.v4=t=>t&&t.exact?lS:new RegExp(`${bn(t)}${ir}${bn(t)}`,"g");pf.v6=t=>t&&t.exact?fS:new RegExp(`${bn(t)}${Qa}${bn(t)}`,"g");var yy=pf;var xy=C(Ey(),1),{isValid:hS,parse:dS}=xy.default,pS=["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"],mS=pS.map(t=>new wy.Netmask(t));function yS(t){for(let e of mS)if(e.contains(t))return!0;return!1}function vy(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var by=t=>{if(hS(t)){let e=dS(t);if(e.kind()==="ipv4")return yS(e.toNormalizedString());if(e.kind()==="ipv6")return vy(t)}else if(Ki(t)&&yy.v6().test(t))return vy(t)};var ja=by;function mf(t){let{address:e}=t.nodeAddress();return Boolean(ja(e))}function es(t,e){let r=mf(t.multiaddr),n=mf(e.multiaddr);return r&&!n?1:!r&&n||t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}var no=M("libp2p:auto-relay"),ES=()=>{},Za=class{constructor(e,r){this.components=e,this.addressSorter=r.addressSorter??es,this.maxListeners=r.maxListeners??1,this.listenRelays=new Set,this.onError=r.onError??ES,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{no.error(i)})}),this.components.connectionManager.addEventListener("peer:disconnect",this._onPeerDisconnected)}async _onProtocolChange(e){let{peerId:r,protocols:n}=e.detail,i=r.toString();if(n.find(o=>o===xr)==null){this.listenRelays.has(i)&&await this._removeListenRelay(i);return}if(!this.listenRelays.has(i))try{let o=this.components.connectionManager.getConnections(r);if(o.length===0)return;let a=o[0];if(a.remoteAddr.protoCodes().includes(290)){no(`relayed connection to ${i} will not be used to hop on`);return}await cy({connection:a})&&(await this.components.peerStore.metadataBook.setValue(r,hf,q(df)),await this._addListenRelay(a,i))}catch(o){this.onError(o)}}_onPeerDisconnected(e){let i=e.detail.remotePeer.toString();this.listenRelays.has(i)&&this._removeListenRelay(i).catch(s=>{no.error(s)})}async _addListenRelay(e,r){try{if(this.listenRelays.size>=this.maxListeners)return;let n=await Ce(await this.components.peerStore.addressBook.get(e.remotePeer),s=>$s(s,this.addressSorter),async s=>await Jt(s));(await Promise.all(n.map(async s=>{try{let o=s.multiaddr;return o.getPeerId()==null&&(o=o.encapsulate(`/p2p/${e.remotePeer.toString()}`)),o=o.encapsulate("/p2p-circuit"),await this.components.transportManager.listen([o]),!0}catch(o){no.error("error listening on circuit address",o),this.onError(o)}return!1}))).includes(!0)&&this.listenRelays.add(r)}catch(n){this.onError(n),this.listenRelays.delete(r)}}async _removeListenRelay(e){this.listenRelays.delete(e)&&await this._listenOnAvailableHopRelays([e])}async _listenOnAvailableHopRelays(e=[]){if(this.listenRelays.size>=this.maxListeners)return;let r=[],n=await this.components.peerStore.all();for(let{id:i,metadata:s}of n){let o=i.toString();if(this.listenRelays.has(o)||e.includes(o))continue;let a=s.get(hf);if(a==null||Q(a)!==df)continue;let c=this.components.connectionManager.getConnections(i);if(c.length===0){r.push(i);continue}if(await this._addListenRelay(c[0],o),this.listenRelays.size>=this.maxListeners)return}for(let i of r)if(await this._tryToListenOnRelay(i),this.listenRelays.size>=this.maxListeners)return;try{let i=await Ya(Wa);for await(let s of this.components.contentRouting.findProviders(i)){if(s.multiaddrs.length===0)continue;let o=s.id;if(!o.equals(this.components.peerId)&&(await this.components.peerStore.addressBook.add(o,s.multiaddrs),await this._tryToListenOnRelay(o),this.listenRelays.size>=this.maxListeners))return}}catch(i){this.onError(i)}}async _tryToListenOnRelay(e){try{let r=await this.components.connectionManager.openConnection(e);await this._addListenRelay(r,e.toString())}catch(r){no.error("Could not use %p as relay",e,r),this.onError(r,`could not connect and listen on known hop relay ${e.toString()}`)}}};var Sy=M("libp2p:relay"),Ja=class{constructor(e,r){this.components=e,this.autoRelay=r.autoRelay?.enabled!==!1?new Za(e,{addressSorter:r.addressSorter,...r.autoRelay}):void 0,this.started=!1,this.init=r,this._advertiseService=this._advertiseService.bind(this)}isStarted(){return this.started}async start(){this.init.hop.enabled!==!1&&this.init.advertise.enabled!==!1&&(this.timeout=(0,ec.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,ec.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let e=await Ya(Wa);await this.components.contentRouting.provide(e)}catch(e){e.code===b.ERR_NO_ROUTERS_AVAILABLE?(Sy.error("a content router, such as a DHT, must be provided in order to advertise the relay service",e),await this.stop()):Sy.error(e)}}};var bv=C(Ly(),1);var j4=C(Xg(),1),Z4=C(qf(),1),jr=C(ie(),1);var Q4=C(Uf(),1),lE=C(ie(),1),uE=lE.default.pki,fE=(t,e)=>{let r=uE.rsa.setPublicKey(e.n,e.e),n=uE.createCertificate();n.publicKey=r,n.serialNumber="01",n.validity.notBefore=new Date,n.validity.notAfter=new Date,n.validity.notAfter.setFullYear(n.validity.notBefore.getFullYear()+10);let i=[{name:"organizationName",value:"ipfs"},{shortName:"OU",value:"keystore"},{name:"commonName",value:t.id}];return n.setSubject(i),n.setIssuer(i),n.setExtensions([{name:"basicConstraints",cA:!0},{name:"keyUsage",keyCertSign:!0,digitalSignature:!0,nonRepudiation:!0,keyEncipherment:!0,dataEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0,codeSigning:!0,emailProtection:!0,timeStamping:!0},{name:"nsCertType",client:!0,server:!0,email:!0,objsign:!0,sslCA:!0,emailCA:!0,objCA:!0}]),n.sign(e),n};async function hE(t,e){let r=t.map(e),i=(await Promise.all(r)).findIndex(s=>s);return t[i]}var Zr=C(G(),1);var EC=M("libp2p:keychain:cms"),Hf=new WeakMap,xc=class{constructor(e,r){if(e==null)throw(0,Zr.default)(new Error("keychain is required"),b.ERR_KEYCHAIN_REQUIRED);this.keychain=e,Hf.set(this,{dek:r})}async encrypt(e,r){if(!(r instanceof Uint8Array))throw(0,Zr.default)(new Error("Plain data must be a Uint8Array"),b.ERR_INVALID_PARAMETERS);let n=await this.keychain.findKeyByName(e),i=await this.keychain.getPrivateKey(e),s=Hf.get(this);if(s==null)throw(0,Zr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let o=s.dek,a=jr.default.pki.decryptRsaPrivateKey(i,o),c=await fE(n,a),u=jr.default.pkcs7.createEnvelopedData();u.addRecipient(c),u.content=jr.default.util.createBuffer(r),u.encrypt();let l=jr.default.asn1.toDer(u.toAsn1()).getBytes();return q(l,"ascii")}async decrypt(e){if(!(e instanceof Uint8Array))throw(0,Zr.default)(new Error("CMS data is required"),b.ERR_INVALID_PARAMETERS);let r;try{let l=jr.default.util.createBuffer(Q(e,"ascii")),f=jr.default.asn1.fromDer(l);r=jr.default.pkcs7.messageFromAsn1(f)}catch(l){throw EC.error(l),(0,Zr.default)(new Error("Invalid CMS"),b.ERR_INVALID_CMS)}let n=r.recipients.filter(l=>l.issuer.find(f=>f.shortName==="O"&&f.value==="ipfs")).filter(l=>l.issuer.find(f=>f.shortName==="CN")).map(l=>({recipient:l,keyId:l.issuer.find(f=>f.shortName==="CN").value})),i=await hE(n,async l=>{try{if(await this.keychain.findKeyById(l.keyId)!=null)return!0}catch{return!1}return!1});if(i==null){let l=n.map(f=>f.keyId);throw(0,Zr.default)(new Error(`Decryption needs one of the key(s): ${l.join(", ")}`),b.ERR_MISSING_KEYS,{missingKeys:l})}let s=await this.keychain.findKeyById(i.keyId);if(s==null)throw(0,Zr.default)(new Error("No key available to decrypto"),b.ERR_NO_KEY);let o=await this.keychain.getPrivateKey(s.name),a=Hf.get(this);if(a==null)throw(0,Zr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let c=a.dek,u=jr.default.pki.decryptRsaPrivateKey(o,c);return r.decrypt(i.recipient,u),q(r.content.getBytes(),"ascii")}};var ge=C(G(),1);var Fe;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Fe||(Fe={}));var zf;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(zf||(zf={}));(function(t){t.codec=()=>wn(zf)})(Fe||(Fe={}));var Tr;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Fe.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=Fe.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Tr||(Tr={}));var Rr;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Fe.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=Fe.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Rr||(Rr={}));var EO=C(An(),1),vO=C(qf(),1),kc=C(ie(),1),yh=C(G(),1);var vC=C(G(),1);var At={get(t=globalThis){let e=t.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var wC=C(G(),1);var m8=C(De(),1),y8=C(yc(),1),pE=C(ie(),1);function ar(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Xe([new Uint8Array(e-r.length),r])}return Q(r,"base64url")}function Ot(t){let e=mE(t);return new pE.default.jsbn.BigInteger(Q(e,"base16"),16)}function mE(t,e){let r=q(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Xe([new Uint8Array(e-r.length),r])}return r}var xC={"P-256":256,"P-384":384,"P-521":521},bC=Object.keys(xC),C8=bC.join(" / ");function Sc(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=At.get();r*=8;async function c(f,h){let d=a.getRandomValues(new Uint8Array(s)),p=a.getRandomValues(new Uint8Array(n)),y={name:e,iv:p};typeof h=="string"&&(h=q(h));let g={name:"PBKDF2",salt:d,iterations:o,hash:{name:i}},E=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),x=await a.subtle.deriveKey(g,E,{name:e,length:r},!0,["encrypt"]),_=await a.subtle.encrypt(y,x,f);return Xe([d,y.iv,new Uint8Array(_)])}async function u(f,h){let d=f.subarray(0,s),p=f.subarray(s,s+n),y=f.subarray(s+n),g={name:e,iv:p};typeof h=="string"&&(h=q(h));let E={name:"PBKDF2",salt:d,iterations:o,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(E,x,{name:e,length:r},!0,["decrypt"]),B=await a.subtle.decrypt(g,_,y);return new Uint8Array(B)}return{encrypt:c,decrypt:u}}async function gE(t,e){let r=zn.decode(t);return await Sc().decrypt(r,e)}var nh={};pt(nh,{RsaPrivateKey:()=>gs,RsaPublicKey:()=>yo,fromJwk:()=>YC,generateKeyPair:()=>WC,unmarshalRsaPrivateKey:()=>$C,unmarshalRsaPublicKey:()=>GC});var rh=C(G(),1);var nO=C(bE(),1),mo=C(ie(),1);var _C=C(ei(),1);var le=BigInt(0),ke=BigInt(1),Dn=BigInt(2),fo=BigInt(3),SE=BigInt(8),Ye=Object.freeze({a:le,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:ke,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),_E=(t,e)=>(t+e/Dn)/e,_c={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(t){let{n:e}=Ye,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ke*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=_E(s*t,e),c=_E(-n*t,e),u=K(t-a*r-c*i,e),l=K(-a*n-c*s,e),f=u>o,h=l>o;if(f&&(u=e-u),h&&(l=e-l),u>o||l>o)throw new Error("splitScalarEndo: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:h,k2:l}}},cr=32,hs=32,AC=32,AE=cr+1,CE=2*cr+1;function IE(t){let{a:e,b:r}=Ye,n=K(t*t),i=K(n*t);return K(i+e*t+r)}var Ac=Ye.a===le,Tc=class extends Error{constructor(e){super(e)}};function TE(t){if(!(t instanceof me))throw new TypeError("JacobianPoint expected")}var me=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof Ee))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(Ee.ZERO)?me.ZERO:new me(e.x,e.y,ke)}static toAffineBatch(e){let r=NC(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return me.toAffineBatch(e).map(me.fromAffine)}equals(e){TE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e,c=K(i*i),u=K(a*a),l=K(r*u),f=K(s*c),h=K(K(n*a)*u),d=K(K(o*i)*c);return l===f&&h===d}negate(){return new me(this.x,K(-this.y),this.z)}double(){let{x:e,y:r,z:n}=this,i=K(e*e),s=K(r*r),o=K(s*s),a=e+s,c=K(Dn*(K(a*a)-i-o)),u=K(fo*i),l=K(u*u),f=K(l-Dn*c),h=K(u*(c-f)-SE*o),d=K(Dn*r*n);return new me(f,h,d)}add(e){TE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e;if(s===le||o===le)return this;if(r===le||n===le)return e;let c=K(i*i),u=K(a*a),l=K(r*u),f=K(s*c),h=K(K(n*a)*u),d=K(K(o*i)*c),p=K(f-l),y=K(d-h);if(p===le)return y===le?this.double():me.ZERO;let g=K(p*p),E=K(p*g),x=K(l*g),_=K(y*y-E-Dn*x),B=K(y*(x-_)-h*E),D=K(i*a*p);return new me(_,B,D)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=me.ZERO;if(typeof e=="bigint"&&e===le)return r;let n=DE(e);if(n===ke)return this;if(!Ac){let f=r,h=this;for(;n>le;)n&ke&&(f=f.add(h)),h=h.double(),n>>=ke;return f}let{k1neg:i,k1:s,k2neg:o,k2:a}=_c.splitScalar(n),c=r,u=r,l=this;for(;s>le||a>le;)s&ke&&(c=c.add(l)),a&ke&&(u=u.add(l)),l=l.double(),s>>=ke,a>>=ke;return i&&(c=c.negate()),o&&(u=u.negate()),u=new me(K(u.x*_c.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=Ac?128/e+1:256/e+1,n=[],i=this,s=i;for(let o=0;o<r;o++){s=i,n.push(s);for(let a=1;a<2**(e-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(e,r){!r&&this.equals(me.BASE)&&(r=Ee.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&Wf.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=me.normalizeZ(i),Wf.set(r,i)));let s=me.ZERO,o=me.BASE,a=1+(Ac?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(e&u);e>>=f,p>c&&(p-=l,e+=ke);let y=d,g=d+Math.abs(p)-1,E=h%2!==0,x=p<0;p===0?o=o.add(Cc(E,i[y])):s=s.add(Cc(x,i[g]))}return{p:s,f:o}}multiply(e,r){let n=DE(e),i,s;if(Ac){let{k1neg:o,k1:a,k2neg:c,k2:u}=_c.splitScalar(n),{p:l,f}=this.wNAF(a,r),{p:h,f:d}=this.wNAF(u,r);l=Cc(o,l),h=Cc(c,h),h=new me(K(h.x*_c.beta),h.y,h.z),i=l.add(h),s=f.add(d)}else{let{p:o,f:a}=this.wNAF(n,r);i=o,s=a}return me.normalizeZ([i,s])[0]}toAffine(e){let{x:r,y:n,z:i}=this,s=this.equals(me.ZERO);e==null&&(e=s?SE:ms(i));let o=e,a=K(o*o),c=K(a*o),u=K(r*a),l=K(n*c),f=K(i*o);if(s)return Ee.ZERO;if(f!==ke)throw new Error("invZ was invalid");return new Ee(u,l)}};me.BASE=new me(Ye.Gx,Ye.Gy,ke);me.ZERO=new me(le,ke,le);function Cc(t,e){let r=e.negate();return t?r:e}var Wf=new WeakMap,Ee=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,Wf.delete(this)}hasEvenY(){return this.y%Dn===le}static fromCompressedHex(e){let r=e.length===32,n=Ln(r?e:e.subarray(1));if(!Yf(n))throw new Error("Point is not on curve");let i=IE(n),s=RC(i),o=(s&ke)===ke;r?o&&(s=K(-s)):(e[0]&1)===1!==o&&(s=K(-s));let a=new Ee(n,s);return a.assertValidity(),a}static fromUncompressedHex(e){let r=Ln(e.subarray(1,cr+1)),n=Ln(e.subarray(cr+1,cr*2+1)),i=new Ee(r,n);return i.assertValidity(),i}static fromHex(e){let r=ps(e),n=r.length,i=r[0];if(n===cr)return this.fromCompressedHex(r);if(n===AE&&(i===2||i===3))return this.fromCompressedHex(r);if(n===CE&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${AE} compressed bytes or ${CE} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return Ee.BASE.multiply(Nc(e))}static fromSignature(e,r,n){let{r:i,s}=LE(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let o=jf(ps(e)),{n:a}=Ye,c=n===2||n===3?i+a:i,u=ms(c,a),l=K(-o*u,a),f=K(s*u,a),h=n&1?"03":"02",d=Ee.fromHex(h+ls(c)),p=Ee.BASE.multiplyAndAddUnsafe(d,l,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(e=!1){return mi(this.toHex(e))}toHex(e=!1){let r=ls(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${ls(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let e="Point is not on elliptic curve",{x:r,y:n}=this;if(!Yf(r)||!Yf(n))throw new Error(e);let i=K(n*n),s=IE(r);if(K(i-s)!==le)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Ee(this.x,K(-this.y))}double(){return me.fromAffine(this).double().toAffine()}add(e){return me.fromAffine(this).add(me.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return me.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=me.fromAffine(this),s=r===le||r===ke||this!==Ee.BASE?i.multiplyUnsafe(r):i.multiply(r),o=me.fromAffine(e).multiplyUnsafe(n),a=s.add(o);return a.equals(me.ZERO)?void 0:a.toAffine()}};Ee.BASE=new Ee(Ye.Gx,Ye.Gy);Ee.ZERO=new Ee(le,le);function RE(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function NE(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${ds(t)}`);let e=t[1],r=t.subarray(2,e+2);if(!e||r.length!==e)throw new Error("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Ln(r),left:t.subarray(e+2)}}function CC(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${ds(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=NE(t.subarray(2)),{data:n,left:i}=NE(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${ds(i)}`);return{r:e,s:n}}var Nr=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromCompact(e){let r=e instanceof Uint8Array,n="Signature.fromCompact";if(typeof e!="string"&&!r)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=r?ds(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new Nr(Rc(i.slice(0,64)),Rc(i.slice(64,128)))}static fromDER(e){let r=e instanceof Uint8Array;if(typeof e!="string"&&!r)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=CC(r?e:mi(e));return new Nr(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!po(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!po(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=Ye.n>>ke;return this.s>e}normalizeS(){return this.hasHighS()?new Nr(this.r,K(-this.s,Ye.n)):this}toDERRawBytes(){return mi(this.toDERHex())}toDERHex(){let e=RE(lo(this.s)),r=RE(lo(this.r)),n=e.length/2,i=r.length/2,s=lo(n),o=lo(i);return`30${lo(i+n+4)}02${o}${r}02${s}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return mi(this.toCompactHex())}toCompactHex(){return ls(this.r)+ls(this.s)}};function Nn(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var IC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function ds(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=IC[t[r]];return e}var TC=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function ls(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(le<=t&&t<TC))throw new Error("Expected number 0 <= n < 2^256");return t.toString(16).padStart(64,"0")}function Qf(t){let e=mi(ls(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function lo(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Rc(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function mi(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+t.length);let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");e[r]=s}return e}function Ln(t){return Rc(ds(t))}function ps(t){return t instanceof Uint8Array?Uint8Array.from(t):mi(t)}function DE(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&po(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function K(t,e=Ye.P){let r=t%e;return r>=le?r:e+r}function Wt(t,e){let{P:r}=Ye,n=t;for(;e-- >le;)n*=n,n%=r;return n}function RC(t){let{P:e}=Ye,r=BigInt(6),n=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),a=BigInt(88),c=t*t*t%e,u=c*c*t%e,l=Wt(u,fo)*u%e,f=Wt(l,fo)*u%e,h=Wt(f,Dn)*c%e,d=Wt(h,n)*h%e,p=Wt(d,i)*d%e,y=Wt(p,o)*p%e,g=Wt(y,a)*y%e,E=Wt(g,o)*p%e,x=Wt(E,fo)*u%e,_=Wt(x,s)*d%e,B=Wt(_,r)*c%e,D=Wt(B,Dn);if(D*D%e!==t)throw new Error("Cannot find square root");return D}function ms(t,e=Ye.P){if(t===le||e<=le)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=K(t,e),n=e,i=le,s=ke,o=ke,a=le;for(;r!==le;){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!==ke)throw new Error("invert: does not exist");return K(i,e)}function NC(t,e=Ye.P){let r=new Array(t.length),n=t.reduce((s,o,a)=>o===le?s:(r[a]=s,K(s*o,e)),ke),i=ms(n,e);return t.reduceRight((s,o,a)=>o===le?s:(r[a]=K(s*r[a],e),K(s*o,e)),i),r}function DC(t){let e=t.length*8-hs*8,r=Ln(t);return e>0?r>>BigInt(e):r}function jf(t,e=!1){let r=DC(t);if(e)return r;let{n}=Ye;return r>=n?r-n:r}var fs,ho,Xf=class{constructor(e,r){if(this.hashLen=e,this.qByteLen=r,typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(...e){return ur.hmacSha256(this.k,...e)}hmacSync(...e){return ho(this.k,...e)}checkSync(){if(typeof ho!="function")throw new Tc("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),e.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),e.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Nn(...r)}generateSync(){this.checkSync(),this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Nn(...r)}};function po(t){return le<t&&t<Ye.n}function Yf(t){return le<t&&t<Ye.P}function LC(t,e,r,n=!0){let{n:i}=Ye,s=jf(t,!0);if(!po(s))return;let o=ms(s,i),a=Ee.BASE.multiply(s),c=K(a.x,i);if(c===le)return;let u=K(o*K(e+r*c,i),i);if(u===le)return;let l=new Nr(c,u),f=(a.x===l.r?0:2)|Number(a.y&ke);return n&&l.hasHighS()&&(l=l.normalizeS(),f^=1),{sig:l,recovery:f}}function Nc(t){let e;if(typeof t=="bigint")e=t;else if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)e=BigInt(t);else if(typeof t=="string"){if(t.length!==2*hs)throw new Error("Expected 32 bytes of private key");e=Rc(t)}else if(t instanceof Uint8Array){if(t.length!==hs)throw new Error("Expected 32 bytes of private key");e=Ln(t)}else throw new TypeError("Expected valid private key");if(!po(e))throw new Error("Expected private key: 0 < key < n");return e}function PC(t){return t instanceof Ee?(t.assertValidity(),t):Ee.fromHex(t)}function LE(t){if(t instanceof Nr)return t.assertValidity(),t;try{return Nr.fromDER(t)}catch{return Nr.fromCompact(t)}}function Zf(t,e=!1){return Ee.fromPrivateKey(t).toRawBytes(e)}function PE(t){let e=t.length>cr?t.slice(0,cr):t;return Ln(e)}function BC(t){let e=PE(t),r=K(e,Ye.n);return BE(r<le?e:r)}function BE(t){return Qf(t)}function OC(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ps(t),i=Nc(e),s=[BE(i),BC(n)];if(r!=null){r===!0&&(r=ur.randomBytes(cr));let c=ps(r);if(c.length!==cr)throw new Error(`sign: Expected ${cr} bytes of extra data`);s.push(c)}let o=Nn(...s),a=PE(n);return{seed:o,m:a,d:i}}function kC(t,e){let{sig:r,recovery:n}=t,{der:i,recovered:s}=Object.assign({canonical:!0,der:!0},e),o=i?r.toDERRawBytes():r.toCompactRawBytes();return s?[o,n]:o}async function OE(t,e,r={}){let{seed:n,m:i,d:s}=OC(t,e,r.extraEntropy),o=new Xf(AC,hs);await o.reseed(n);let a;for(;!(a=LC(await o.generate(),i,s,r.canonical));)await o.reseed();return kC(a,r)}var UC={strict:!0};function kE(t,e,r,n=UC){let i;try{i=LE(t),e=ps(e)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=jf(e),c;try{c=PC(r)}catch{return!1}let{n:u}=Ye,l=ms(o,u),f=K(a*l,u),h=K(s*l,u),d=Ee.BASE.multiplyAndAddUnsafe(c,f,h);return d?K(d.x,u)===s:!1}Ee.BASE._setWindowSize(8);var kt={node:_C,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Ic={},ur={bytesToHex:ds,hexToBytes:mi,concatBytes:Nn,mod:K,invert:ms,isValidPrivateKey(t){try{return Nc(t),!0}catch{return!1}},_bigintTo32Bytes:Qf,_normalizePrivateKey:Nc,hashToPrivateKey:t=>{t=ps(t);let e=hs+8;if(t.length<e||t.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=K(Ln(t),Ye.n-ke)+ke;return Qf(r)},randomBytes:(t=32)=>{if(kt.web)return kt.web.getRandomValues(new Uint8Array(t));if(kt.node){let{randomBytes:e}=kt.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>ur.hashToPrivateKey(ur.randomBytes(hs+8)),precompute(t=8,e=Ee.BASE){let r=e===Ee.BASE?e:new Ee(e.x,e.y);return r._setWindowSize(t),r.multiply(fo),r},sha256:async(...t)=>{if(kt.web){let e=await kt.web.subtle.digest("SHA-256",Nn(...t));return new Uint8Array(e)}else if(kt.node){let{createHash:e}=kt.node,r=e("sha256");return t.forEach(n=>r.update(n)),Uint8Array.from(r.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(t,...e)=>{if(kt.web){let r=await kt.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Nn(...e),i=await kt.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(kt.node){let{createHmac:r}=kt.node,n=r("sha256",t);return e.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(t,...e)=>{let r=Ic[t];if(r===void 0){let n=await ur.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Nn(n,n),Ic[t]=r}return ur.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof fs!="function")throw new Tc("sha256Sync is undefined, you need to set it");let r=Ic[t];if(r===void 0){let n=fs(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Nn(n,n),Ic[t]=r}return fs(r,...e)},_JacobianPoint:me};Object.defineProperties(ur,{sha256Sync:{configurable:!1,get(){return fs},set(t){fs||(fs=t)}},hmacSha256Sync:{configurable:!1,get(){return ho},set(t){ho||(ho=t)}}});var UE=C(G(),1);function Jr(t){if(isNaN(t)||t<=0)throw(0,UE.default)(new Error("random bytes length must be a Number bigger than 0"),"ERR_INVALID_LENGTH");return ur.randomBytes(t)}var yi={};pt(yi,{jwkToPkcs1:()=>KC,jwkToPkix:()=>qC,pkcs1ToJwk:()=>FC,pkixToJwk:()=>VC});var F8=C(An(),1),K8=C(co(),1),en=C(ie(),1);var Jf=C(G(),1);function FC(t){let e=en.default.asn1.fromDer(Q(t,"ascii")),r=en.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:ar(r.n),e:ar(r.e),d:ar(r.d),p:ar(r.p),q:ar(r.q),dp:ar(r.dP),dq:ar(r.dQ),qi:ar(r.qInv),alg:"RS256"}}function KC(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw(0,Jf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=en.default.pki.privateKeyToAsn1({n:Ot(t.n),e:Ot(t.e),d:Ot(t.d),p:Ot(t.p),q:Ot(t.q),dP:Ot(t.dp),dQ:Ot(t.dq),qInv:Ot(t.qi)});return q(en.default.asn1.toDer(e).getBytes(),"ascii")}function VC(t){let e=en.default.asn1.fromDer(Q(t,"ascii")),r=en.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:ar(r.n),e:ar(r.e)}}function qC(t){if(t.n==null||t.e==null)throw(0,Jf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=en.default.pki.publicKeyToAsn1({n:Ot(t.n),e:Ot(t.e)});return q(en.default.asn1.toDer(e).getBytes(),"ascii")}var z8=C(co(),1),eh=C(ie(),1);function ME(t,e){return e.map(r=>Ot(t[r]))}function FE(t){return eh.default.pki.setRsaPrivateKey(...ME(t,["n","e","d","p","q","dp","dq","qi"]))}function KE(t){return eh.default.pki.setRsaPublicKey(...ME(t,["n","e"]))}var VE=C(G(),1);async function qE(t){let e=await At.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await $E(e);return{privateKey:r[0],publicKey:r[1]}}async function th(t){let r=[await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await HC(t)],n=await $E({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function HE(t,e){let r=await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await At.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(e));return new Uint8Array(n,0,n.byteLength)}async function zE(t,e,r){let n=await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await At.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r)}async function $E(t){if(t.privateKey==null||t.publicKey==null)throw(0,VE.default)(new Error("Private and public key are required"),"ERR_INVALID_PARAMETERS");return await Promise.all([At.get().subtle.exportKey("jwk",t.privateKey),At.get().subtle.exportKey("jwk",t.publicKey)])}async function HC(t){return await At.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function GE(t,e,r,n){let i=e?KE(t):FE(t),s=Q(Uint8Array.from(r),"ascii"),o=n(s,i);return q(o,"ascii")}function YE(t,e){return GE(t,!0,e,(r,n)=>n.encrypt(r))}function WE(t,e){return GE(t,!1,e,(r,n)=>n.decrypt(r))}async function ys(t,e){let n=await Sc().encrypt(t,e);return zn.encode(n)}var yo=class{constructor(e){this._key=e}async verify(e,r){return await zE(this._key,r,e)}marshal(){return yi.jwkToPkix(this._key)}get bytes(){return Tr.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}encrypt(e){return YE(this._key,e)}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},gs=class{constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Jr(16)}async sign(e){return await HE(this._key,e)}get public(){if(this._publicKey==null)throw(0,rh.default)(new Error("public key not provided"),"ERR_PUBKEY_NOT_PROVIDED");return new yo(this._publicKey)}decrypt(e){return WE(this._key,e)}marshal(){return yi.jwkToPkcs1(this._key)}get bytes(){return Rr.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await this.public.hash();return Q(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new mo.default.util.ByteBuffer(this.marshal()),i=mo.default.asn1.fromDer(n),s=mo.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return mo.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,rh.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}}};async function $C(t){let e=yi.pkcs1ToJwk(t),r=await th(e);return new gs(r.privateKey,r.publicKey)}function GC(t){let e=yi.pkixToJwk(t);return new yo(e)}async function YC(t){let e=await th(t);return new gs(e.privateKey,e.publicKey)}async function WC(t){let e=await qE(t);return new gs(e.privateKey,e.publicKey)}var dh={};pt(dh,{Ed25519PrivateKey:()=>Ei,Ed25519PublicKey:()=>xo,generateKeyPair:()=>pI,generateKeyPairFromSeed:()=>cv,unmarshalEd25519PrivateKey:()=>hI,unmarshalEd25519PublicKey:()=>dI});var hh=C(G(),1);var QC=C(ei(),1);var dt=BigInt(0),he=BigInt(1),Es=BigInt(2),QE=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Ke=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:QE,n:QE,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var JE=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),go=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),sO=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),XC=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),jC=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),ZC=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),JC=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),fe=class{constructor(e,r,n,i){this.x=e,this.y=r,this.z=n,this.t=i}static fromAffine(e){if(!(e instanceof Ve))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(Ve.ZERO)?fe.ZERO:new fe(e.x,e.y,he,T(e.x*e.y))}static toAffineBatch(e){let r=rI(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return this.toAffineBatch(e).map(this.fromAffine)}equals(e){XE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e,c=T(r*a),u=T(s*i),l=T(n*a),f=T(o*i);return c===u&&l===f}negate(){return new fe(T(-this.x),this.y,this.z,T(-this.t))}double(){let{x:e,y:r,z:n}=this,{a:i}=Ke,s=T(e*e),o=T(r*r),a=T(Es*T(n*n)),c=T(i*s),u=e+r,l=T(T(u*u)-s-o),f=c+o,h=f-a,d=c-o,p=T(l*h),y=T(f*d),g=T(l*d),E=T(h*f);return new fe(p,y,E,g)}add(e){XE(e);let{x:r,y:n,z:i,t:s}=this,{x:o,y:a,z:c,t:u}=e,l=T((n-r)*(a+o)),f=T((n+r)*(a-o)),h=T(f-l);if(h===dt)return this.double();let d=T(i*Es*u),p=T(s*Es*c),y=p+d,g=f+l,E=p-d,x=T(y*h),_=T(g*E),B=T(y*E),D=T(h*g);return new fe(x,_,D,B)}subtract(e){return this.add(e.negate())}precomputeWindow(e){let r=1+256/e,n=[],i=this,s=i;for(let o=0;o<r;o++){s=i,n.push(s);for(let a=1;a<2**(e-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(e,r){!r&&this.equals(fe.BASE)&&(r=Ve.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&ch.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=fe.normalizeZ(i),ch.set(r,i)));let s=fe.ZERO,o=fe.ZERO,a=1+256/n,c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(e&u);if(e>>=f,p>c&&(p-=l,e+=he),p===0){let y=i[d];h%2&&(y=y.negate()),o=o.add(y)}else{let y=i[d+Math.abs(p)-1];p<0&&(y=y.negate()),s=s.add(y)}}return fe.normalizeZ([s,o])[0]}multiply(e,r){return this.wNAF(Lc(e,Ke.l),r)}multiplyUnsafe(e){let r=Lc(e,Ke.l,!1),n=fe.BASE,i=fe.ZERO;if(r===dt)return i;if(this.equals(i)||r===he)return this;if(this.equals(n))return this.wNAF(r);let s=i,o=this;for(;r>dt;)r&he&&(s=s.add(o)),o=o.double(),r>>=he;return s}isSmallOrder(){return this.multiplyUnsafe(Ke.h).equals(fe.ZERO)}isTorsionFree(){return this.multiplyUnsafe(Ke.l).equals(fe.ZERO)}toAffine(e=Pc(this.z)){let{x:r,y:n,z:i}=this,s=T(r*e),o=T(n*e);if(T(i*e)!==he)throw new Error("invZ was invalid");return new Ve(s,o)}fromRistrettoBytes(){sh()}toRistrettoBytes(){sh()}fromRistrettoHash(){sh()}};fe.BASE=new fe(Ke.Gx,Ke.Gy,he,T(Ke.Gx*Ke.Gy));fe.ZERO=new fe(dt,he,he,dt);function XE(t){if(!(t instanceof fe))throw new TypeError("ExtendedPoint expected")}function ih(t){if(!(t instanceof Ct))throw new TypeError("RistrettoPoint expected")}function sh(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ct=class{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){let{d:r}=Ke,n=T(go*e*e),i=T((n+he)*ZC),s=BigInt(-1),o=T((s-r*n)*T(n+r)),{isValid:a,value:c}=lh(i,o),u=T(c*e);Bn(u)||(u=T(-u)),a||(c=u),a||(s=n);let l=T(s*(n-he)*JC-o),f=c*c,h=T((c+c)*o),d=T(l*XC),p=T(he-f),y=T(he+f);return new fe(T(h*y),T(p*d),T(d*y),T(h*p))}static hashToCurve(e){e=On(e,64);let r=oh(e.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=oh(e.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new Ct(n.add(s))}static fromHex(e){e=On(e,32);let{a:r,d:n}=Ke,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=oh(e);if(!iI(Eo(s),e)||Bn(s))throw new Error(i);let o=T(s*s),a=T(he+r*o),c=T(he-r*o),u=T(a*a),l=T(c*c),f=T(r*n*u-l),{isValid:h,value:d}=ZE(T(f*l)),p=T(d*c),y=T(d*p*f),g=T((s+s)*p);Bn(g)&&(g=T(-g));let E=T(a*y),x=T(g*E);if(!h||Bn(x)||E===dt)throw new Error(i);return new Ct(new fe(g,E,he,x))}toRawBytes(){let{x:e,y:r,z:n,t:i}=this.ep,s=T(T(n+r)*T(n-r)),o=T(e*r),a=T(o*o),{value:c}=ZE(T(s*a)),u=T(c*s),l=T(c*o),f=T(u*l*i),h;if(Bn(i*f)){let p=T(r*go),y=T(e*go);e=p,r=y,h=T(u*jC)}else h=l;Bn(e*f)&&(r=T(-r));let d=T((n-r)*h);return Bn(d)&&(d=T(-d)),Eo(d)}toHex(){return vo(this.toRawBytes())}toString(){return this.toHex()}equals(e){ih(e);let r=this.ep,n=e.ep,i=T(r.x*n.y)===T(r.y*n.x),s=T(r.y*n.y)===T(r.x*n.x);return i||s}add(e){return ih(e),new Ct(this.ep.add(e.ep))}subtract(e){return ih(e),new Ct(this.ep.subtract(e.ep))}multiply(e){return new Ct(this.ep.multiply(e))}multiplyUnsafe(e){return new Ct(this.ep.multiplyUnsafe(e))}};Ct.BASE=new Ct(fe.BASE);Ct.ZERO=new Ct(fe.ZERO);var ch=new WeakMap,Ve=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,ch.delete(this)}static fromHex(e,r=!0){let{d:n,P:i}=Ke;e=On(e,32);let s=e.slice();s[31]=e[31]&-129;let o=wo(s);if(r&&o>=i)throw new Error("Expected 0 < hex < P");if(!r&&o>=JE)throw new Error("Expected 0 < hex < 2**256");let a=T(o*o),c=T(a-he),u=T(n*a+he),{isValid:l,value:f}=lh(c,u);if(!l)throw new Error("Point.fromHex: invalid y coordinate");let h=(f&he)===he;return(e[31]&128)!==0!==h&&(f=T(-f)),new Ve(f,o)}static async fromPrivateKey(e){return(await Bc(e)).point}toRawBytes(){let e=Eo(this.y);return e[31]|=this.x&he?128:0,e}toHex(){return vo(this.toRawBytes())}toX25519(){let{y:e}=this,r=T((he+e)*Pc(he-e));return Eo(r)}isTorsionFree(){return fe.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Ve(T(-this.x),this.y)}add(e){return fe.fromAffine(this).add(fe.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return fe.fromAffine(this).multiply(e,this).toAffine()}};Ve.BASE=new Ve(Ke.Gx,Ke.Gy);Ve.ZERO=new Ve(dt,he);var gi=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromHex(e){let r=On(e,64),n=Ve.fromHex(r.slice(0,32),!1),i=wo(r.slice(32,64));return new gi(n,i)}assertValidity(){let{r:e,s:r}=this;if(!(e instanceof Ve))throw new Error("Expected Point instance");return Lc(r,Ke.l,!1),this}toRawBytes(){let e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(Eo(this.s),32),e}toHex(){return vo(this.toRawBytes())}};function jE(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var eI=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function vo(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=eI[t[r]];return e}function uh(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");e[r]=s}return e}function ev(t){let r=t.toString(16).padStart(64,"0");return uh(r)}function Eo(t){return ev(t).reverse()}function Bn(t){return(T(t)&he)===he}function wo(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+vo(Uint8Array.from(t).reverse()))}var tI=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function oh(t){return T(wo(t)&tI)}function T(t,e=Ke.P){let r=t%e;return r>=dt?r:e+r}function Pc(t,e=Ke.P){if(t===dt||e<=dt)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=T(t,e),n=e,i=dt,s=he,o=he,a=dt;for(;r!==dt;){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!==he)throw new Error("invert: does not exist");return T(i,e)}function rI(t,e=Ke.P){let r=new Array(t.length),n=t.reduce((s,o,a)=>o===dt?s:(r[a]=s,T(s*o,e)),he),i=Pc(n,e);return t.reduceRight((s,o,a)=>o===dt?s:(r[a]=T(s*r[a],e),T(s*o,e)),i),r}function Dr(t,e){let{P:r}=Ke,n=t;for(;e-- >dt;)n*=n,n%=r;return n}function nI(t){let{P:e}=Ke,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=t*t%e*t%e,u=Dr(c,Es)*c%e,l=Dr(u,he)*t%e,f=Dr(l,r)*l%e,h=Dr(f,n)*f%e,d=Dr(h,i)*h%e,p=Dr(d,s)*d%e,y=Dr(p,o)*p%e,g=Dr(y,o)*p%e,E=Dr(g,n)*f%e;return{pow_p_5_8:Dr(E,Es)*t%e,b2:c}}function lh(t,e){let r=T(e*e*e),n=T(r*r*e),i=nI(t*n).pow_p_5_8,s=T(t*r*i),o=T(e*s*s),a=s,c=T(s*go),u=o===t,l=o===T(-t),f=o===T(-t*go);return u&&(s=a),(l||f)&&(s=c),Bn(s)&&(s=T(-s)),{isValid:u||l,value:s}}function ZE(t){return lh(he,t)}function Dc(t){return T(wo(t),Ke.l)}function iI(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function On(t,e){let r=t instanceof Uint8Array?Uint8Array.from(t):uh(t);if(typeof e=="number"&&r.length!==e)throw new Error(`Expected ${e} bytes`);return r}function Lc(t,e,r=!0){if(!e)throw new TypeError("Specify max value");if(typeof t=="number"&&Number.isSafeInteger(t)&&(t=BigInt(t)),typeof t=="bigint"&&t<e){if(r){if(dt<t)return t}else if(dt<=t)return t}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function sI(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function oI(t){if(t=typeof t=="bigint"||typeof t=="number"?ev(Lc(t,JE)):On(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function aI(t){let e=sI(t.slice(0,32)),r=t.slice(32,64),n=Dc(e),i=Ve.BASE.multiply(n),s=i.toRawBytes();return{head:e,prefix:r,scalar:n,point:i,pointBytes:s}}var ah;async function Bc(t){return aI(await kn.sha512(oI(t)))}async function fh(t){return(await Bc(t)).pointBytes}async function tv(t,e){t=On(t);let{prefix:r,scalar:n,pointBytes:i}=await Bc(e),s=Dc(await kn.sha512(r,t)),o=Ve.BASE.multiply(s),a=Dc(await kn.sha512(o.toRawBytes(),i,t)),c=T(s+a*n,Ke.l);return new gi(o,c).toRawBytes()}function cI(t,e,r){e=On(e),r instanceof Ve||(r=Ve.fromHex(r,!1));let{r:n,s:i}=t instanceof gi?t.assertValidity():gi.fromHex(t),s=fe.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:r,msg:e}}function uI(t,e,r,n){let i=Dc(n),s=fe.fromAffine(t).multiplyUnsafe(i);return fe.fromAffine(e).add(s).subtract(r).multiplyUnsafe(Ke.h).equals(fe.ZERO)}async function rv(t,e,r){let{r:n,SB:i,msg:s,pub:o}=cI(t,e,r),a=await kn.sha512(n.toRawBytes(),o.toRawBytes(),s);return uI(o,n,i,a)}Ve.BASE._setWindowSize(8);var Pn={node:QC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},kn={bytesToHex:vo,hexToBytes:uh,concatBytes:jE,getExtendedPublicKey:Bc,mod:T,invert:Pc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=On(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return T(wo(t),Ke.l-he)+he},randomBytes:(t=32)=>{if(Pn.web)return Pn.web.getRandomValues(new Uint8Array(t));if(Pn.node){let{randomBytes:e}=Pn.node;return new Uint8Array(e(t).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>kn.randomBytes(32),sha512:async(...t)=>{let e=jE(...t);if(Pn.web){let r=await Pn.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(r)}else{if(Pn.node)return Uint8Array.from(Pn.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(t=8,e=Ve.BASE){let r=e.equals(Ve.BASE)?e:new Ve(e.x,e.y);return r._setWindowSize(t),r.multiply(Es),r},sha512Sync:void 0};Object.defineProperties(kn,{sha512Sync:{configurable:!1,get(){return ah},set(t){ah||(ah=t)}}});var vs=32,tn=64,Oc=32;async function nv(){let t=kn.randomPrivateKey(),e=await fh(t);return{privateKey:av(t,e),publicKey:e}}async function iv(t){if(t.length!==Oc)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=await fh(e);return{privateKey:av(e,r),publicKey:r}}async function sv(t,e){let r=t.subarray(0,Oc);return await tv(e,r)}async function ov(t,e,r){return await rv(e,r,t)}function av(t,e){let r=new Uint8Array(tn);for(let n=0;n<Oc;n++)r[n]=t[n],r[Oc+n]=e[n];return r}var xo=class{constructor(e){this._key=ws(e,vs)}async verify(e,r){return await ov(this._key,r,e)}marshal(){return this._key}get bytes(){return Tr.encode({Type:Fe.Ed25519,Data:this.marshal()}).subarray()}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},Ei=class{constructor(e,r){this._key=ws(e,tn),this._publicKey=ws(r,vs)}async sign(e){return await sv(this._key,e)}get public(){return new xo(this._publicKey)}marshal(){return this._key}get bytes(){return Rr.encode({Type:Fe.Ed25519,Data:this.marshal()}).subarray()}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await hn.digest(this.public.bytes);return We.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,hh.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function hI(t){if(t.length>tn){t=ws(t,tn+vs);let n=t.subarray(0,tn),i=t.subarray(tn,t.length);return new Ei(n,i)}t=ws(t,tn);let e=t.subarray(0,tn),r=t.subarray(vs);return new Ei(e,r)}function dI(t){return t=ws(t,vs),new xo(t)}async function pI(){let{privateKey:t,publicKey:e}=await nv();return new Ei(t,e)}async function cv(t){let{privateKey:e,publicKey:r}=await iv(t);return new Ei(e,r)}function ws(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw(0,hh.default)(new Error(`Key must be a Uint8Array of length ${e}, got ${t.length}`),"ERR_INVALID_KEY_TYPE");return t}var mh={};pt(mh,{Secp256k1PrivateKey:()=>So,Secp256k1PublicKey:()=>bo,generateKeyPair:()=>EI,unmarshalSecp256k1PrivateKey:()=>yI,unmarshalSecp256k1PublicKey:()=>gI});var mv=C(G(),1);var xs=C(G(),1);function uv(){return ur.randomPrivateKey()}async function lv(t,e){let{digest:r}=await ot.digest(e);try{return await OE(r,t)}catch(n){throw(0,xs.default)(n,"ERR_INVALID_INPUT")}}async function fv(t,e,r){try{let{digest:n}=await ot.digest(r);return kE(e,n,t)}catch(n){throw(0,xs.default)(n,"ERR_INVALID_INPUT")}}function hv(t){return Ee.fromHex(t).toRawBytes(!0)}function dv(t){try{Zf(t,!0)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}function ph(t){try{Ee.fromHex(t)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PUBLIC_KEY")}}function pv(t){try{return Zf(t,!0)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}var bo=class{constructor(e){ph(e),this._key=e}async verify(e,r){return await fv(this._key,r,e)}marshal(){return hv(this._key)}get bytes(){return Tr.encode({Type:Fe.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},So=class{constructor(e,r){this._key=e,this._publicKey=r??pv(e),dv(this._key),ph(this._publicKey)}async sign(e){return await lv(this._key,e)}get public(){return new bo(this._publicKey)}marshal(){return this._key}get bytes(){return Rr.encode({Type:Fe.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await this.public.hash();return Q(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,mv.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function yI(t){return new So(t)}function gI(t){return new bo(t)}async function EI(){let t=await uv();return new So(t)}var rn={rsa:nh,ed25519:dh,secp256k1:mh};function gh(t){let e=Object.keys(rn).join(" / ");return(0,yh.default)(new Error(`invalid or unsupported key type ${t}. Must be ${e}`),"ERR_UNSUPPORTED_KEY_TYPE")}function Eh(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return rn[t];throw gh(t)}async function Uc(t,e){return await Eh(t).generateKeyPair(e??2048)}function _o(t){let e=Tr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return rn.rsa.unmarshalRsaPublicKey(r);case Fe.Ed25519:return rn.ed25519.unmarshalEd25519PublicKey(r);case Fe.Secp256k1:return rn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw gh(e.Type??"RSA")}}function yv(t,e){return e=(e??"rsa").toLowerCase(),Eh(e),t.bytes}async function bs(t){let e=Rr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return await rn.rsa.unmarshalRsaPrivateKey(r);case Fe.Ed25519:return rn.ed25519.unmarshalEd25519PrivateKey(r);case Fe.Secp256k1:return rn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw gh(e.Type??"RSA")}}function gv(t,e){return e=(e??"rsa").toLowerCase(),Eh(e),t.bytes}async function Mc(t,e){try{let i=await gE(t,e);return await bs(i)}catch{}let r=kc.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw(0,yh.default)(new Error("Cannot read the key, most likely the password is wrong or not a RSA key"),"ERR_CANNOT_DECRYPT_PEM");let n=kc.default.asn1.toDer(kc.default.pki.privateKeyToAsn1(r));return n=q(n.getBytes(),"ascii"),await rn.rsa.unmarshalRsaPrivateKey(n)}var _O=C(ns(),1),wI=C(ie(),1);var bI=C(G(),1);var vv=C(Kf(),1),wv=C(De(),1),xv=C(G(),1),Ev={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Ao(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(Ev).join(" / ");throw(0,xv.default)(new Error(`Hash '${i}' is unknown or not supported. Must be ${a}`),"ERR_UNSUPPORTED_HASH_TYPE")}let s=Ev[i],o=(0,vv.default)(t,e,r,n,s);return wv.default.encode64(o,null)}var Fc=M("libp2p:keychain"),_I="/pkcs8/",Sv="/info/",Un=new WeakMap,vi={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},vh={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function nn(t){return t==null||typeof t!="string"?!1:t===(0,bv.default)(t.trim())&&t.length>0}async function be(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Lr(t){return new ze(_I+t)}function sn(t){return new ze(Sv+t)}var Co=class{constructor(e,r){if(this.components=e,this.init=Er(vh,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<vi.minKeyLength)throw new Error(`dek.keyLength must be least ${vi.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<vi.minSaltLength)throw new Error(`dek.saltLength must be least ${vi.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<vi.minIterationCount)throw new Error(`dek.iterationCount must be least ${vi.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Ao(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Un.set(this,{dek:n}),this.started=!1}isStarted(){return this.started}async start(){let e=sn("self");await this.components.datastore.has(e)||await this.importPeer("self",this.components.peerId),this.started=!0}stop(){this.started=!1}get cms(){let e=Un.get(this);if(e==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let r=e.dek;return new xc(this,r)}static generateOptions(){let e=Object.assign({},vh),r=Math.ceil(vi.minSaltLength/3)*3;return e.dek.salt=Q(Jr(r),"base64"),e}static get options(){return vh}async createKey(e,r,n=2048){if(!nn(e)||e==="self")throw await be(),(0,ge.default)(new Error("Invalid key name"),b.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await be(),(0,ge.default)(new Error("Invalid key type"),b.ERR_INVALID_KEY_TYPE);let i=Lr(e);if(await this.components.datastore.has(i))throw await be(),(0,ge.default)(new Error("Key name already exists"),b.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await be(),(0,ge.default)(new Error("Invalid RSA key size"),b.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await Uc(r,n),c=await a.id(),u=Un.get(this);if(u==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:e,id:c};let h=this.components.datastore.batch();h.put(i,q(f)),h.put(sn(e),q(JSON.stringify(o))),await h.commit()}catch(a){throw await be(),a}return o}async listKeys(){let e={prefix:Sv},r=[];for await(let n of this.components.datastore.query(e))r.push(JSON.parse(Q(n.value)));return r}async findKeyById(e){try{return(await this.listKeys()).find(n=>n.id===e)}catch(r){throw await be(),r}}async findKeyByName(e){if(!nn(e))throw await be(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=sn(e);try{let n=await this.components.datastore.get(r);return JSON.parse(Q(n))}catch(n){throw await be(),Fc.error(n),(0,ge.default)(new Error(`Key '${e}' does not exist.`),b.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!nn(e)||e==="self")throw await be(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=Lr(e),n=await this.findKeyByName(e),i=this.components.datastore.batch();return i.delete(r),i.delete(sn(e)),await i.commit(),n}async renameKey(e,r){if(!nn(e)||e==="self")throw await be(),(0,ge.default)(new Error(`Invalid old key name '${e}'`),b.ERR_OLD_KEY_NAME_INVALID);if(!nn(r)||r==="self")throw await be(),(0,ge.default)(new Error(`Invalid new key name '${r}'`),b.ERR_NEW_KEY_NAME_INVALID);let n=Lr(e),i=Lr(r),s=sn(e),o=sn(r);if(await this.components.datastore.has(i))throw await be(),(0,ge.default)(new Error(`Key '${r}' already exists`),b.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(Q(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,q(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await be(),c}}async exportKey(e,r){if(!nn(e))throw await be(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ge.default)(new Error("Password is required"),b.ERR_PASSWORD_REQUIRED);let n=Lr(e);try{let i=await this.components.datastore.get(n),s=Q(i),o=Un.get(this);if(o==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await Mc(s,a)).export(r)}catch(i){throw await be(),i}}async importKey(e,r,n){if(!nn(e)||e==="self")throw await be(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ge.default)(new Error("PEM encoded key is required"),b.ERR_PEM_REQUIRED);let i=Lr(e);if(await this.components.datastore.has(i))throw await be(),(0,ge.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o;try{o=await Mc(r,n)}catch{throw await be(),(0,ge.default)(new Error("Cannot read the key, most likely the password is wrong"),b.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=Un.get(this);if(l==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await be(),l}let c={name:e,id:a},u=this.components.datastore.batch();return u.put(i,q(r)),u.put(sn(e),q(JSON.stringify(c))),await u.commit(),c}async importPeer(e,r){try{if(!nn(e))throw(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw(0,ge.default)(new Error("PeerId is required"),b.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw(0,ge.default)(new Error("PeerId.privKey is required"),b.ERR_MISSING_PRIVATE_KEY);let n=await bs(r.privateKey),i=Lr(e);if(await this.components.datastore.has(i))throw await be(),(0,ge.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o=Un.get(this);if(o==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:e,id:r.toString()},l=this.components.datastore.batch();return l.put(i,q(c)),l.put(sn(e),q(JSON.stringify(u))),await l.commit(),u}catch(n){throw await be(),n}}async getPrivateKey(e){if(!nn(e))throw await be(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);try{let r=Lr(e),n=await this.components.datastore.get(r);return Q(n)}catch(r){throw await be(),Fc.error(r),(0,ge.default)(new Error(`Key '${e}' does not exist.`),b.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(e,r){if(typeof e!="string")throw await be(),(0,ge.default)(new Error(`Invalid old pass type '${typeof e}'`),b.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await be(),(0,ge.default)(new Error(`Invalid new pass type '${typeof r}'`),b.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await be(),(0,ge.default)(new Error(`Invalid pass length ${r.length}`),b.ERR_INVALID_PASS_LENGTH);Fc("recreating keychain");let n=Un.get(this);if(n==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?Ao(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Un.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(Lr(a.name)),u=Q(c),l=await Mc(u,i),f=s.toString(),h=await l.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(Lr(a.name),q(h)),d.put(sn(a.name),q(JSON.stringify(p))),await d.commit()}Fc("keychain reconstructed")}};async function Io(t){try{return{status:"fulfilled",value:await t,isFulfilled:!0,isRejected:!1}}catch(e){return{status:"rejected",reason:e,isFulfilled:!1,isRejected:!0}}}var wh=class{value;next;constructor(e){this.value=e}},To=class{#e;#t;#r;constructor(){this.clear()}enqueue(e){let r=new wh(e);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let e=this.#e;if(e)return this.#e=this.#e.next,this.#r--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}};function xh(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new To,r=0,n=()=>{r--,e.size>0&&e.dequeue()()},i=async(a,c,u)=>{r++;let l=(async()=>a(...u))();c(l);try{await l}catch{}n()},s=(a,c,u)=>{e.enqueue(i.bind(void 0,a,c,u)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},o=(a,...c)=>new Promise(u=>{s(a,u,c)});return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),o}async function bh(t,e={}){let{concurrency:r=Number.POSITIVE_INFINITY}=e,n=xh(r);return Promise.all(t.map(i=>i&&typeof i.then=="function"?Io(i):typeof i=="function"?Io(n(()=>i())):Io(Promise.resolve(i))))}var Ss=C(G(),1);var Sh=class extends Map{constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Ro(t){let{name:e,metrics:r}=t,n;return r!=null?n=new Sh({name:e,metrics:r}):n=new Map,n}var wi=M("libp2p:transports"),Kc=class extends Ue{constructor(e,r={}){super(),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Ro({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??xn.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw(0,Ss.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(r))throw(0,Ss.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);wi("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}async start(){let e=this.components.addressManager.getListenAddrs();await this.listen(e),this.started=!0}async stop(){let e=[];for(let[r,n]of this.listeners)for(wi("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),wi("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw(0,Ss.default)(new Error(`No transport available for address ${String(e)}`),b.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=b.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(e==null||e.length===0){wi("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){wi("creating listener for %s on %s",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.dispatchEvent(new X("listener:listening",{detail:l}))}),l.addEventListener("close",()=>{this.dispatchEvent(new X("listener:close",{detail:l}))}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await bh(o)).find(u=>u.isFulfilled)==null&&this.faultTolerance!==xn.NO_FATAL)throw(0,Ss.default)(new Error(`Transport (${n}) could not listen on any available address`),b.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===xn.FATAL_ALL)throw(0,Ss.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);wi(`libp2p in dial mode only: ${n}`)}}async remove(e){wi("removing %s",e);for(let r of this.listeners.get(e)??[])await r.close();this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var at=C(G(),1);var on="/multistream/1.0.0";var Iv=C(G(),1);var _h=C(G(),1);var CI=M("libp2p:mss"),_v=q(`
49
+ `);function No(t){let e=new $e(t,_v);return qt.single(e)}function xi(t,e,r={}){let n=No(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function Av(t,e,r={}){let n=new $e;for(let i of e)n.append(No(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function II(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await t.next(r)},i=n;e?.signal!=null&&(i=si(n,e.signal));let o=await Ce(i,Bt({onLength:a=>{r=a},maxDataLength:1024}),async a=>await Nt(a));if(o==null||o.length===0)throw(0,_h.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==_v[0])throw CI.error("Invalid mss message - missing newline - %s",o.subarray()),(0,_h.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function _s(t,e){let r=await II(t,e);return Q(r.subarray())}var Do=M("libp2p:mss:select");async function Lo(t,e,r={}){e=Array.isArray(e)?[...e]:[e];let{reader:n,writer:i,rest:s,stream:o}=Ji(t),a=e.shift();if(a==null)throw new Error("At least one protocol must be specified");Do('select: write ["%s", "%s"]',on,a);let c=q(on),u=q(a);Av(i,[c,u],r);let l=await _s(n,r);if(Do('select: read "%s"',l),l===on&&(l=await _s(n,r),Do('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of e){Do('select: write "%s"',f),xi(i,q(f),r);let h=await _s(n,r);if(Do('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),(0,Iv.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Po=M("libp2p:mss:handle");async function Bo(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:s,stream:o}=Ji(t);for(;;){let a=await _s(i,r);if(Po('read "%s"',a),a===on){Po('respond with "%s" for "%s"',on,a),xi(n,q(on),r);continue}if(e.includes(a))return xi(n,q(a),r),Po('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){xi(n,new $e(...e.map(c=>No(q(c)))),r),Po('respond with "%s" for %s',e,a);continue}xi(n,q("na"),r),Po('respond with "na" for "%s"',a)}}var Ah=C(G(),1);var Tv=Symbol.for("@libp2p/connection");var RI=M("libp2p:connection"),Ch=class{constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,getStreams:o,stat:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.stat={...a,status:Ta},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[Tv](){return!0}get streams(){return this._getStreams()}async newStream(e,r){if(this.stat.status===Cl)throw(0,Ah.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Ra)throw(0,Ah.default)(new Error("the connection is closed"),"ERR_CONNECTION_CLOSED");Array.isArray(e)||(e=[e]);let n=await this._newStream(e,r);return n.stat.direction="outbound",n}addStream(e){e.stat.direction="inbound"}removeStream(e){}async close(){if(!(this.stat.status===Ra||this._closing)){this.stat.status=Cl;try{this.streams.forEach(e=>e.close())}catch(e){RI.error(e)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Ra}}};function Rv(t){return new Ch(t)}var Vc=C(G(),1);var NI=Symbol.for("@libp2p/topology");function Nv(t){return t!=null&&Boolean(t[NI])}var Ih=M("libp2p:registrar"),Th=32,Rh=64,qc=class{constructor(e){this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw(0,Vc.default)(new Error(`No handler registered for protocol ${e}`),b.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw(0,Vc.default)(new Error(`Handler already registered for protocol ${e}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Er.bind({ignoreUndefined:!0})({maxInboundStreams:Th,maxOutboundStreams:Rh},n);this.handlers.set(e,{handler:r,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[e])}async unhandle(e){let r=Array.isArray(e)?e:[e];r.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,r)}async register(e,r){if(!Nv(r))throw Ih.error("topology must be an instance of interfaces/topology"),(0,Vc.default)(new Error("topology must be an instance of interfaces/topology"),b.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),await r.setRegistrar(this),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect(r.remotePeer)}}).catch(n=>{Ih.error(n)})}_onConnect(e){let r=e.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onConnect(r.remotePeer,r)}}).catch(n=>{Ih.error(n)})}_onProtocolChange(e){let{peerId:r,protocols:n,oldProtocols:i}=e.detail,s=i.filter(a=>!n.includes(a)),o=n.filter(a=>!i.includes(a));for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let u of c.values())u.onDisconnect(r)}for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let u of c.values()){let l=this.components.connectionManager.getConnections(r)[0];l!=null&&u.onConnect(r,l)}}}};var Nh=C(Kr(),1);var Dh=C(mr(),1),Pe=M("libp2p:upgrader");function DI(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Th}function LI(t,e){try{let{options:r}=e.getHandler(t);return r.maxOutboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Rh}function Dv(t,e,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===e&&i.stat.protocol===t&&n++}),n}var Hc=class extends Ue{constructor(e,r){super(),this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw(0,at.default)(new Error("connection denied"),b.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=new Nh.TimeoutController(this.inboundUpgradeTimeout);try{(0,Dh.setMaxListeners)?.(1/0,u.signal)}catch{}try{let l=Lt(e,u.signal);if(e.source=l.source,e.sink=l.sink,await this.components.connectionGater.denyInboundConnection(e))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptConnection"),b.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),Pe("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(Pe("protecting the inbound connection"),f=await h.protect(e))}try{if(i=f,r?.skipEncryption!==!0){if({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection(s,{...f,...i}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{let h=e.remoteAddr.getPeerId();if(h==null)throw(0,at.default)(new Error("inbound connection that skipped encryption must have a peer id"),b.ERR_INVALID_MULTIADDR);let d=ye(h);c="native",s=d}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 Pe.error("Failed to upgrade inbound connection",h),h}if(await this.components.connectionGater.denyInboundUpgradedConnection(s,{...f,...i}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Pe("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s})}finally{this.components.connectionManager.afterUpgradeInbound(),u.clear()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId();if(n==null)throw(0,at.default)(new Error("outbound connection must have a peer id"),b.ERR_INVALID_MULTIADDR);let i=ye(n);if(await this.components.connectionGater.denyOutboundConnection(i,e))throw(0,at.default)(new Error("The multiaddr connection is blocked by connectionGater.denyOutboundConnection"),b.ERR_CONNECTION_INTERCEPTED);let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),Pe("Starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){if({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i),await this.components.connectionGater.denyOutboundEncryptedConnection(o,{...l,...s}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else 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 Pe.error("Failed to upgrade outbound connection",f),await e.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection(o,{...l,...s}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Pe("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a}=e,c,u,l;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:d=>{l!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Bo(d,p);if(Pe("%s: incoming stream opened on %s",n,g),l==null)return;let E=DI(g,this.components.registrar);if(Dv(g,"inbound",l)===E){d.abort((0,at.default)(new Error(`Too many inbound protocol streams for protocol "${g}" - limit ${E}`),b.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}d.source=y.source,d.sink=y.sink,d.stat.protocol=g,this.components.peerStore.protoBook.add(o,[g]).catch(_=>Pe.error(_)),l.addStream(d),this.components.metrics?.trackProtocolStream(d,l),this._onStream({connection:l,stream:d,protocol:g})}).catch(p=>{Pe.error(p),d.stat.timeline.close==null&&d.close()})},onStreamEnd:d=>{l?.removeStream(d.id)}}),u=async(d,p={})=>{if(c==null)throw(0,at.default)(new Error("Stream is not multiplexed"),b.ERR_MUXER_UNAVAILABLE);Pe("%s: starting new stream on %s",n,d);let y=await c.newStream(),g;try{if(p.signal==null){Pe("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),g=new Nh.TimeoutController(3e4),p.signal=g.signal;try{(0,Dh.setMaxListeners)?.(1/0,g.signal)}catch{}}let{stream:E,protocol:x}=await Lo(y,d,p),_=LI(x,this.components.registrar);if(Dv(x,"outbound",l)===_){let D=(0,at.default)(new Error(`Too many outbound protocol streams for protocol "${x}" - limit ${_}`),b.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(D),D}return this.components.peerStore.protoBook.add(o,[x]).catch(D=>Pe.error(D)),y.source=E.source,y.sink=E.sink,y.stat.protocol=x,this.components.metrics?.trackProtocolStream(y,l),y}catch(E){throw Pe.error("could not create new stream",E),y.stat.timeline.close==null&&y.close(),E.code!=null?E:(0,at.default)(E,b.ERR_UNSUPPORTED_PROTOCOL)}finally{g?.clear()}},Promise.all([c.sink(s.source),s.sink(c.source)]).catch(d=>{Pe.error(d)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...d)=>(l!=null&&d[1]==="close"&&d[2]!=null&&f.close==null&&(async()=>{try{l.stat.status==="OPEN"&&await l.close()}catch(p){Pe.error(p)}finally{this.dispatchEvent(new X("connectionEnd",{detail:l}))}})().catch(p=>{Pe.error(p)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let h=()=>{throw(0,at.default)(new Error("connection is not multiplexed"),b.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=Rv({remoteAddr:i.remoteAddr,remotePeer:o,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:r},newStream:u??h,getStreams:()=>c!=null?c.streams:h(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new X("connection",{detail:l})),l}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s}=this.components.registrar.getHandler(i);s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());Pe("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Bo(e,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Pe("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw(0,at.default)(n,b.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());Pe("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Lo(e,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Pe("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw(0,at.default)(i,b.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());Pe("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Lo(e,n,{writeBytes:!0});Pe("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Pe.error("error multiplexing outbound stream",i),(0,at.default)(i,b.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());Pe("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Bo(e,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Pe.error("error multiplexing inbound stream",i),(0,at.default)(i,b.ERR_MUXER_UNAVAILABLE)}}};var Si=C(G(),1);var bi;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.protocolVersion!=null&&(n.uint32(42),n.string(r.protocolVersion)),r.agentVersion!=null&&(n.uint32(50),n.string(r.agentVersion)),r.publicKey!=null&&(n.uint32(10),n.bytes(r.publicKey)),r.listenAddrs!=null)for(let s of r.listenAddrs)n.uint32(18),n.bytes(s);if(r.observedAddr!=null&&(n.uint32(34),n.bytes(r.observedAddr)),r.protocols!=null)for(let s of r.protocols)n.uint32(26),n.string(s);r.signedPeerRecord!=null&&(n.uint32(66),n.bytes(r.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={listenAddrs:[],protocols:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 5:i.protocolVersion=r.string();break;case 6:i.agentVersion=r.string();break;case 1:i.publicKey=r.bytes();break;case 2:i.listenAddrs.push(r.bytes());break;case 4:i.observedAddr=r.bytes();break;case 3:i.protocols.push(r.string());break;case 8:i.signedPeerRecord=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(bi||(bi={}));var Pv=C(G(),1);var Lv={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Oo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.publicKey!=null&&r.publicKey.byteLength>0)&&(n.uint32(10),n.bytes(r.publicKey)),(i.writeDefaults===!0||r.payloadType!=null&&r.payloadType.byteLength>0)&&(n.uint32(18),n.bytes(r.payloadType)),(i.writeDefaults===!0||r.payload!=null&&r.payload.byteLength>0)&&(n.uint32(26),n.bytes(r.payload)),(i.writeDefaults===!0||r.signature!=null&&r.signature.byteLength>0)&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Oo||(Oo={}));var PI,ct=class{constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Oo.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return _e(this.marshal(),e.marshal())}async validate(e){let r=Bv(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await _o(this.peerId.publicKey).verify(r.subarray(),this.signature)}};PI=ct;ct.createFromProtobuf=async t=>{let e=Oo.decode(t),r=await Mi(e.publicKey);return new ct({peerId:r,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};ct.seal=async(t,e)=>{if(e.privateKey==null)throw new Error("Missing private key");let r=t.domain,n=t.codec,i=t.marshal(),s=Bv(r,n,i),a=await(await bs(e.privateKey)).sign(s.subarray());return new ct({peerId:e,payloadType:n,payload:i,signature:a})};ct.openAndCertify=async(t,e)=>{let r=await ct.createFromProtobuf(t);if(!await r.validate(e))throw(0,Pv.default)(new Error("envelope signature is not valid for the given domain"),Lv.ERR_SIGNATURE_NOT_VALID);return r};var Bv=(t,e,r)=>{let n=q(t),i=nr.encode(n.byteLength),s=nr.encode(e.length),o=nr.encode(r.length);return new $e(i,n,s,e,o,r)};function Ov(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}var ko;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Ne((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),(a.writeDefaults===!0||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=>Re(s,n.codec()),n.decode=s=>Te(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Ne((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),(s.writeDefaults===!0||n.peerId!=null&&n.peerId.byteLength>0)&&(i.uint32(10),i.bytes(n.peerId)),(s.writeDefaults===!0||n.seq!==0n)&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i,{writeDefaults:!0});s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>Re(n,t.codec()),t.decode=n=>Te(n,t.codec())})(ko||(ko={}));var kv="libp2p-peer-record",Uv=Uint8Array.from([3,1]);var rt=class{constructor(e){this.domain=rt.DOMAIN,this.codec=rt.CODEC;let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ko.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof rt)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Ov(this.multiaddrs,e.multiaddrs))}};rt.createFromProtobuf=t=>{let e=ko.decode(t),r=mn(e.peerId),n=(e.addresses??[]).map(s=>oe(s.multiaddr)),i=e.seq;return new rt({peerId:r,multiaddrs:n,seqNumber:i})};rt.DOMAIN=kv;rt.CODEC=Uv;var zc="0.0.0",Mv="libp2p";var Lh=`js-libp2p/${zc}`;var Fv="0.1.0",Kv="id",Vv="id/push",qv="1.0.0",Hv="1.0.0";var Uo=C(Kr(),1);var Mo=C(mr(),1),Ae=M("libp2p:identify"),zv=1024*8,As=class{constructor(e,r){this.components=e,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${Kv}/${qv}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${Vv}/${Hv}`,this.host={protocolVersion:`${r.protocolPrefix}/${Fv}`,...r.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(Ae.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>Ae.error(s))}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>Ae.error(s))})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",q(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",q(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,e=>{this._handleIdentify(e).catch(r=>{Ae.error(r)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,e=>{this._handlePush(e).catch(r=>{Ae.error(r)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(e){let r=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(o=>o.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),s=e.map(async o=>{let a,c=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Lt(a,c.signal).sink(Ce([bi.encode({listenAddrs:n,signedPeerRecord:r,protocols:i})],qt()))}catch(u){Ae.error("could not push identify update to peer",u)}finally{a?.close(),c.clear()}});await Promise.all(s)}async pushToPeerStore(){if(!this.isStarted())return;let e=[];for(let r of this.components.connectionManager.getConnections()){let n=r.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&e.push(r)}await this.push(e)}async _identify(e,r={}){let n,i=r.signal,s;if(i==null){n=new Uo.TimeoutController(this.init.timeout),i=n.signal;try{(0,Mo.setMaxListeners)?.(1/0,n.signal)}catch{}}try{s=await e.newStream([this.identifyProtocolStr],{signal:i});let o=Lt(s,i),a=await Ce([],o,Bt({maxDataLength:this.init.maxIdentifyMessageSize??zv}),async c=>await Nt(c));if(a==null)throw(0,Si.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return bi.decode(a)}catch(c){throw(0,Si.default)(c,b.ERR_INVALID_MESSAGE)}}finally{n?.clear(),s?.close()}}async identify(e,r={}){let n=await this._identify(e,r),{publicKey:i,listenAddrs:s,protocols:o,observedAddr:a,signedPeerRecord:c,agentVersion:u,protocolVersion:l}=n;if(i==null)throw(0,Si.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await Mi(i);if(!e.remotePeer.equals(f))throw(0,Si.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,Si.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let h=As.getCleanMultiaddr(a);if(c!=null){Ae("received signed peer record from %p",f);try{let d=await ct.openAndCertify(c,rt.DOMAIN);if(!d.peerId.equals(f))throw(0,Si.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(d)){await this.components.peerStore.protoBook.set(f,o),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",q(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",q(l)),Ae("identify completed for peer %p and protocols %o",f,o);return}}catch(d){Ae("received invalid envelope, discard it and fallback to listenAddrs is available",d)}}else Ae("no signed peer record received from %p",f);Ae("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,s.map(d=>oe(d)))}catch(d){Ae.error("received invalid addrs",d)}await this.components.peerStore.protoBook.set(f,o),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",q(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",q(l)),Ae("identify completed for peer %p and protocols %o",f,o),Ae("received observed address of %s",h?.toString())}async _handleIdentify(e){let{connection:r,stream:n}=e,i=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=this.components.peerId.publicKey??new Uint8Array(0),o=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(h=>h.decapsulateCode(Ie("p2p").code)),c=o.peerRecordEnvelope;if(a.length>0&&c==null){let h=new rt({peerId:this.components.peerId,multiaddrs:a}),d=await ct.seal(h,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(d),c=d.marshal().subarray()}let u=bi.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:s,listenAddrs:a.map(h=>h.bytes),signedPeerRecord:c,observedAddr:r.remoteAddr.bytes,protocols:o.protocols}),l=Lt(n,i.signal),f=Ce([u],qt());await l.sink(f)}catch(s){Ae.error("could not respond to identify request",s)}finally{n.close(),i.clear()}}async _handlePush(e){let{connection:r,stream:n}=e,i=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=Lt(n,i.signal),c=await Ce([],a,Bt({maxDataLength:this.init.maxIdentifyMessageSize??zv}),async u=>await Nt(u));c!=null&&(s=bi.decode(c))}catch(a){return Ae.error("received invalid message",a)}finally{n.close(),i.clear()}if(s==null)return Ae.error("received invalid message");let o=r.remotePeer;if(this.components.peerId.equals(o)){Ae("received push from ourselves?");return}if(Ae("received push from %p",o),s.signedPeerRecord!=null){Ae("received signedPeerRecord in push");try{let a=await ct.openAndCertify(s.signedPeerRecord,rt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){Ae("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(o,s.protocols);return}else Ae("failed to consume signedPeerRecord sent in push")}catch(a){Ae("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else Ae("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(o,s.listenAddrs.map(a=>oe(a)))}catch(a){Ae.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(o,s.protocols)}catch(a){Ae.error("received invalid protocols",a)}Ae("handled push from %p",o)}static getCleanMultiaddr(e){if(e!=null&&e.length>0)try{return oe(e)}catch{}}};var Cs=C(G(),1);var Fo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identifier!=="")&&(n.uint32(10),n.string(r.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identifier:""},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.identifier=r.string();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Fo||(Fo={}));var lr;(function(t){let e;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(e=t.StatusCode||(t.StatusCode={}));let r;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(r||(r={})),function(i){i.codec=()=>wn(r)}(e=t.StatusCode||(t.StatusCode={}));let n;t.codec=()=>(n==null&&(n=Ne((i,s,o={})=>{o.lengthDelimited!==!1&&s.fork(),(o.writeDefaults===!0||i.status!=null&&r[i.status]!==0)&&(s.uint32(8),t.StatusCode.codec().encode(i.status,s)),(o.writeDefaults===!0||i.data!=null&&i.data.byteLength>0)&&(s.uint32(18),s.bytes(i.data)),o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={status:e.OK,data:new Uint8Array(0)},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.status=t.StatusCode.codec().decode(i);break;case 2:o.data=i.bytes();break;default:i.skipType(c&7);break}}return o})),n),t.encode=i=>Re(i,t.codec()),t.decode=i=>Te(i,t.codec())})(lr||(lr={}));var $v="0.0.1",Gv="fetch";var Yv=C(Kr(),1),Wv=C(mr(),1);var Qt=M("libp2p:fetch"),$c=class{constructor(e,r){this.started=!1,this.components=e,this.protocol=`/${r.protocolPrefix??"libp2p"}/${Gv}/${$v}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=r}async start(){await this.components.registrar.handle(this.protocol,e=>{this.handleMessage(e).catch(r=>{Qt.error(r)}).finally(()=>{e.stream.close()})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}async fetch(e,r,n={}){Qt("dialing %s to %p",this.protocol,e);let i=await this.components.connectionManager.openConnection(e,n),s,o=n.signal,a;if(o==null){Qt("using default timeout of %d ms",this.init.timeout),s=new Yv.TimeoutController(this.init.timeout),o=s.signal;try{(0,Wv.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=Lt(a,o);return Qt("fetch %s",r),await Ce([Fo.encode({identifier:r})],qt(),c,Bt(),async function(l){let f=await Nt(l);if(f==null)throw(0,Cs.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let h=lr.decode(f);switch(h.status){case lr.StatusCode.OK:return Qt("received status for %s ok",r),h.data;case lr.StatusCode.NOT_FOUND:return Qt("received status for %s not found",r),null;case lr.StatusCode.ERROR:{Qt("received status for %s error",r);let d=Q(h.data);throw(0,Cs.default)(new Error("Error in fetch protocol response: "+d),b.ERR_INVALID_PARAMETERS)}default:throw Qt("received status for %s unknown",r),(0,Cs.default)(new Error("Unknown response status"),b.ERR_INVALID_MESSAGE)}})??null}finally{s?.clear(),a?.close()}}async handleMessage(e){let{stream:r}=e,n=this;await Ce(r,Bt(),async function*(i){let s=await Nt(i);if(s==null)throw(0,Cs.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let o=Fo.decode(s),a,c=n._getLookupFunction(o.identifier);if(c!=null){Qt("look up data with identifier %s",o.identifier);let u=await c(o.identifier);u!=null?(Qt("sending status for %s ok",o.identifier),a={status:lr.StatusCode.OK,data:u}):(Qt("sending status for %s not found",o.identifier),a={status:lr.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Qt("sending status for %s error",o.identifier);let u=q(`No lookup function registered for key: ${o.identifier}`);a={status:lr.StatusCode.ERROR,data:u}}yield lr.encode(a)},qt(),r)}_getLookupFunction(e){for(let r of this.lookupFunctions.keys())if(e.startsWith(r))return this.lookupFunctions.get(r)}registerLookupFunction(e,r){if(this.lookupFunctions.has(e))throw(0,Cs.default)(new Error("Fetch protocol handler for key prefix '"+e+"' already registered"),b.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(e,r)}unregisterLookupFunction(e,r){r!=null&&this.lookupFunctions.get(e)!==r||this.lookupFunctions.delete(e)}};var Zv=C(G(),1);var Qv="1.0.0",Xv="ping";var Jv=C(Kr(),1),ew=C(mr(),1),jv=M("libp2p:ping"),Gc=class{constructor(e,r){this.components=e,this.started=!1,this.protocol=`/${r.protocolPrefix}/${Xv}/${Qv}`,this.init=r}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(e){let{stream:r}=e;Ce(r,r).catch(n=>{jv.error(n)})}async ping(e,r={}){jv("dialing %s to %p",this.protocol,e);let n=Date.now(),i=Jr(32),s=await this.components.connectionManager.openConnection(e,r),o,a=r.signal,c;if(a==null){o=new Jv.TimeoutController(this.init.timeout),a=o.signal;try{(0,ew.setMaxListeners)?.(1/0,o.signal)}catch{}}try{c=await s.newStream([this.protocol],{signal:a});let u=Lt(c,a),l=await Ce([i],u,async h=>await Nt(h)),f=Date.now();if(l==null||!_e(i,l.subarray()))throw(0,Zv.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function tw(){throw new Error("Not supported in browsers")}var iw=C(nw(),1),Ph=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Yc=(0,iw.default)(),Ko=Ph&&!Yc,sw=Yc&&!Ph,ow=Yc&&Ph,aw=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Yc,cw=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,p6=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",uw=typeof navigator<"u"&&navigator.product==="ReactNative";var hw=C(G(),1);function lw(t){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(t)||/^::1$/.test(t)}function fw(t){let{address:e}=t.nodeAddress();return lw(e)}var Bh=M("libp2p:nat"),Oh=7200;function UI(t=1024,e=65535){return Math.floor(Math.random()*(e-t+1)+t)}var Wc=class{constructor(e,r){if(this.components=e,this.started=!1,this.enabled=r.enabled,this.externalAddress=r.externalAddress,this.localAddress=r.localAddress,this.description=r.description??`${Mv}@${zc} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Oh,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Oh)throw(0,hw.default)(new Error(`NatManager ttl should be at least ${Oh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Ko||!this.enabled||this.started||(this.started=!0,this._start().catch(e=>{Bh.error(e)}))}async _start(){let e=this.components.transportManager.getAddrs();for(let r of e){let{family:n,host:i,port:s,transport:o}=r.toOptions();if(!r.isThinWaistAddress()||o!=="tcp"||fw(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=ja(c);if(u===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(u==null)throw new Error(`${c} is not an IP address`);let l=UI();Bh(`opening uPnP connection from ${c}:${l} to ${i}:${s}`),await a.map({publicPort:l,localPort:s,localAddress:this.localAddress,protocol:o.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(Yp({family:4,address:c,port:l},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await tw({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Ko||this.client==null))try{await this.client.close(),this.client=void 0}catch(e){Bh.error(e)}}};var MI=M("libp2p:peer-record-updater"),Qc=class{constructor(e){this.components=e,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let e=new rt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(Ie("p2p").code))}),r=await ct.seal(e,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(r)}).catch(e=>{MI.error("Could not update self peer record: %o",e)})}};var dw=C(G(),1);var Xc=class{constructor(e){this.dht=e}async findPeer(e,r={}){for await(let n of this.dht.findPeer(e,r))if(n.name==="FINAL_PEER")return n.peer;throw(0,dw.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r={}){for await(let n of this.dht.getClosestPeers(e,r))n.name==="FINAL_PEER"&&(yield n.peer)}};var Zc=C(G(),1);var re={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*kh(t,e){for await(let r of t)await e(r),yield r}var Se=M("libp2p:peer-store:address-book"),jc="change:multiaddrs";async function FI(){return!0}var Jc=class{constructor(e,r,n){this.dispatchEvent=e,this.store=r,this.addressFilter=n??FI}async consumePeerRecord(e){Se.trace("consumePeerRecord await write lock");let r=await this.store.lock.writeLock();Se.trace("consumePeerRecord got write lock");let n,i,s;try{let o;try{o=rt.createFromProtobuf(e.payload)}catch{return Se.error("invalid peer record received"),!1}n=o.peerId;let a=o.multiaddrs;if(!n.equals(e.peerId))return Se("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let u=await ct.createFromProtobuf(i.peerRecordEnvelope),l=rt.createFromProtobuf(u.payload);if(l.seqNumber>=o.seqNumber)return Se("sequence number was lower or equal to existing sequence number - stored: %d received: %d",l.seqNumber,o.seqNumber),!1}let c=await Uh(n,a,this.addressFilter,!0);s=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:e.marshal().subarray()}),Se("stored provided peer record for %p",o.peerId)}finally{Se.trace("consumePeerRecord release write lock"),r()}return this.dispatchEvent(new X(jc,{detail:{peerId:n,multiaddrs:s.addresses.map(({multiaddr:o})=>o),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:o})=>o)}})),!0}async getRawEnvelope(e){Se.trace("getRawEnvelope await read lock");let r=await this.store.lock.readLock();Se.trace("getRawEnvelope got read lock");try{return(await this.store.load(e)).peerRecordEnvelope}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{Se.trace("getRawEnvelope release read lock"),r()}}async getPeerRecord(e){let r=await this.getRawEnvelope(e);if(r!=null)return await ct.createFromProtobuf(r)}async get(e){e=Qe(e),Se.trace("get wait for read lock");let r=await this.store.lock.readLock();Se.trace("get got read lock");try{return(await this.store.load(e)).addresses}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{Se.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Qe(e),!Array.isArray(r))throw Se.error("multiaddrs must be an array of Multiaddrs"),(0,Zc.default)(new Error("multiaddrs must be an array of Multiaddrs"),re.ERR_INVALID_PARAMETERS);Se.trace("set await write lock");let n=await this.store.lock.writeLock();Se.trace("set got write lock");let i=!1,s,o;try{let a=await Uh(e,r,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length&&a.length===s.addresses.length)return}catch(c){if(c.code!==re.ERR_NOT_FOUND)throw c}o=await this.store.patchOrCreate(e,{addresses:a}),Se("set multiaddrs for %p",e)}finally{Se.trace("set multiaddrs for %p",e),Se("set release write lock"),n()}this.dispatchEvent(new X(jc,{detail:{peerId:e,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new X("peer",{detail:{id:e,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async add(e,r){if(e=Qe(e),!Array.isArray(r))throw Se.error("multiaddrs must be an array of Multiaddrs"),(0,Zc.default)(new Error("multiaddrs must be an array of Multiaddrs"),re.ERR_INVALID_PARAMETERS);Se.trace("add await write lock");let n=await this.store.lock.writeLock();Se.trace("add got write lock");let i,s,o;try{let a=await Uh(e,r,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length)return}catch(c){if(c.code!==re.ERR_NOT_FOUND)throw c}o=await this.store.mergeOrCreate(e,{addresses:a}),Se("added multiaddrs for %p",e)}finally{Se.trace("set release write lock"),n()}this.dispatchEvent(new X(jc,{detail:{peerId:e,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new X("peer",{detail:{id:e,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async delete(e){e=Qe(e),Se.trace("delete await write lock");let r=await this.store.lock.writeLock();Se.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{addresses:[]})}finally{Se.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(jc,{detail:{peerId:e,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Uh(t,e,r,n=!1){return await Ce(e,i=>kh(i,s=>{if(!qr(s))throw Se.error("multiaddr must be an instance of Multiaddr"),(0,Zc.default)(new Error("multiaddr must be an instance of Multiaddr"),re.ERR_INVALID_PARAMETERS)}),i=>mt(i,async s=>await r(t,s)),i=>Ps(i,s=>({multiaddr:s,isCertified:n})),async i=>await Jt(i))}var mw=C(G(),1);var Pr=M("libp2p:peer-store:key-book"),pw="change:pubkey",eu=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async set(e,r){if(e=Qe(e),!(r instanceof Uint8Array))throw Pr.error("publicKey must be an instance of Uint8Array to store data"),(0,mw.default)(new Error("publicKey must be an instance of PublicKey"),re.ERR_INVALID_PARAMETERS);Pr.trace("set await write lock");let n=await this.store.lock.writeLock();Pr.trace("set got write lock");let i=!1,s;try{try{if(s=await this.store.load(e),s.pubKey!=null&&_e(s.pubKey,r))return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}await this.store.patchOrCreate(e,{pubKey:r}),i=!0}finally{Pr.trace("set release write lock"),n()}i&&this.dispatchEvent(new X(pw,{detail:{peerId:e,publicKey:r,oldPublicKey:s?.pubKey}}))}async get(e){e=Qe(e),Pr.trace("get await write lock");let r=await this.store.lock.readLock();Pr.trace("get got write lock");try{return(await this.store.load(e)).pubKey}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{Pr("get release write lock"),r()}}async delete(e){e=Qe(e),Pr.trace("delete await write lock");let r=await this.store.lock.writeLock();Pr.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{pubKey:void 0})}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}finally{Pr.trace("delete release write lock"),r()}this.dispatchEvent(new X(pw,{detail:{peerId:e,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Mh=C(G(),1);var nt=M("libp2p:peer-store:metadata-book"),tu="change:metadata",ru=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){e=Qe(e),nt.trace("get await read lock");let r=await this.store.lock.readLock();nt.trace("get got read lock");try{return(await this.store.load(e)).metadata}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{nt.trace("get release read lock"),r()}return new Map}async getValue(e,r){e=Qe(e),nt.trace("getValue await read lock");let n=await this.store.lock.readLock();nt.trace("getValue got read lock");try{return(await this.store.load(e)).metadata.get(r)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}finally{nt.trace("getValue release write lock"),n()}}async set(e,r){if(e=Qe(e),!(r instanceof Map))throw nt.error("valid metadata must be provided to store data"),(0,Mh.default)(new Error("valid metadata must be provided"),re.ERR_INVALID_PARAMETERS);nt.trace("set await write lock");let n=await this.store.lock.writeLock();nt.trace("set got write lock");let i;try{try{i=await this.store.load(e)}catch(s){if(s.code!==re.ERR_NOT_FOUND)throw s}await this.store.mergeOrCreate(e,{metadata:r})}finally{nt.trace("set release write lock"),n()}this.dispatchEvent(new X(tu,{detail:{peerId:e,metadata:r,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(e,r,n){if(e=Qe(e),typeof r!="string"||!(n instanceof Uint8Array))throw nt.error("valid key and value must be provided to store data"),(0,Mh.default)(new Error("valid key and value must be provided"),re.ERR_INVALID_PARAMETERS);nt.trace("setValue await write lock");let i=await this.store.lock.writeLock();nt.trace("setValue got write lock");let s,o;try{try{s=await this.store.load(e);let a=s.metadata.get(r);if(a!=null&&_e(n,a))return}catch(a){if(a.code!==re.ERR_NOT_FOUND)throw a}o=await this.store.mergeOrCreate(e,{metadata:new Map([[r,n]])})}finally{nt.trace("setValue release write lock"),i()}this.dispatchEvent(new X(tu,{detail:{peerId:e,metadata:o.metadata,oldMetadata:s==null?new Map:s.metadata}}))}async delete(e){e=Qe(e),nt.trace("delete await write lock");let r=await this.store.lock.writeLock();nt.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(e,{metadata:new Map})}finally{nt.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(tu,{detail:{peerId:e,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(e,r){e=Qe(e),nt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();nt.trace("deleteValue got write lock");let i,s;try{s=await this.store.load(e),i=s.metadata,i.delete(r),await this.store.patch(e,{metadata:i})}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}finally{nt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new X(tu,{detail:{peerId:e,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var iu=C(G(),1);var it=M("libp2p:peer-store:proto-book"),nu="change:protocols",su=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){it.trace("get wait for read lock");let r=await this.store.lock.readLock();it.trace("get got read lock");try{return(await this.store.load(e)).protocols}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{it.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Qe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,iu.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("set await write lock");let n=await this.store.lock.writeLock();it.trace("set got write lock");let i,s;try{try{if(i=await this.store.load(e),new Set([...r]).size===i.protocols.length)return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(e,{protocols:r}),it("stored provided protocols for %p",e)}finally{it.trace("set release write lock"),n()}this.dispatchEvent(new X(nu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(e,r){if(e=Qe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,iu.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("add await write lock");let n=await this.store.lock.writeLock();it.trace("add got write lock");let i,s;try{try{if(i=await this.store.load(e),new Set([...i.protocols,...r]).size===i.protocols.length)return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.mergeOrCreate(e,{protocols:r}),it("added provided protocols for %p",e)}finally{it.trace("add release write lock"),n()}this.dispatchEvent(new X(nu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(e,r){if(e=Qe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,iu.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("remove await write lock");let n=await this.store.lock.writeLock();it.trace("remove got write lock");let i,s;try{try{i=await this.store.load(e);let o=new Set(i.protocols);for(let a of r)o.delete(a);if(i.protocols.length===o.size)return;r=Array.from(o)}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(e,{protocols:r})}finally{it.trace("remove release write lock"),n()}this.dispatchEvent(new X(nu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(e){e=Qe(e),it.trace("delete await write lock");let r=await this.store.lock.writeLock();it.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{protocols:[]})}finally{it.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(nu,{detail:{peerId:e,protocols:[],oldProtocols:n.protocols}}))}};var id=C(G(),1);var Vo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.addresses!=null)for(let s of r.addresses)n.uint32(10),ou.codec().encode(s,n,{writeDefaults:!0});if(r.protocols!=null)for(let s of r.protocols)n.uint32(18),n.string(s);if(r.metadata!=null)for(let s of r.metadata)n.uint32(26),au.codec().encode(s,n,{writeDefaults:!0});r.pubKey!=null&&(n.uint32(34),n.bytes(r.pubKey)),r.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(r.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={addresses:[],protocols:[],metadata:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.addresses.push(ou.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(au.codec().decode(r,r.uint32()));break;case 4:i.pubKey=r.bytes();break;case 5:i.peerRecordEnvelope=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Vo||(Vo={}));var ou;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.multiaddr!=null&&r.multiaddr.byteLength>0)&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(ou||(ou={}));var au;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.key!=="")&&(n.uint32(10),n.string(r.key)),(i.writeDefaults===!0||r.value!=null&&r.value.byteLength>0)&&(n.uint32(18),n.bytes(r.value)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:"",value: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.key=r.string();break;case 2:i.value=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(au||(au={}));var Cw=C(gw(),1);var Ho=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Kh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ew=t=>globalThis.DOMException===void 0?new Kh(t):new DOMException(t),vw=t=>{let e=t.reason===void 0?Ew("This operation was aborted."):t.reason;return e instanceof Error?e:Ew(e)};function Vh(t,e,r,n){let i,s=new Promise((o,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){o(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(vw(c)),c.addEventListener("abort",()=>{a(vw(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 ${e} milliseconds`,u=r instanceof Error?r:new Ho(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{o(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function qh(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var _i=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},an,zo=class{constructor(){an.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&_i(this,an,"f")[this.size-1].priority>=r.priority){_i(this,an,"f").push(n);return}let i=qh(_i(this,an,"f"),n,(s,o)=>o.priority-s.priority);_i(this,an,"f").splice(i,0,n)}dequeue(){let e=_i(this,an,"f").shift();return e?.run}filter(e){return _i(this,an,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return _i(this,an,"f").length}};an=new WeakMap;var qe=function(t,e,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 e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},V=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Ze,Go,Yo,Fn,pu,Wo,uu,fr,$o,Ut,lu,Mt,Qo,Mn,fu,ww,xw,Aw,bw,Sw,_w,hu,Hh,zh,mu,du,qI=new Ho,$h=class extends Error{},Is=class extends Cw.default{constructor(e){var r,n,i,s;if(super(),Ze.add(this),Go.set(this,void 0),Yo.set(this,void 0),Fn.set(this,0),pu.set(this,void 0),Wo.set(this,void 0),uu.set(this,0),fr.set(this,void 0),$o.set(this,void 0),Ut.set(this,void 0),lu.set(this,void 0),Mt.set(this,0),Qo.set(this,void 0),Mn.set(this,void 0),fu.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:zo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);qe(this,Go,e.carryoverConcurrencyCount,"f"),qe(this,Yo,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),qe(this,pu,e.intervalCap,"f"),qe(this,Wo,e.interval,"f"),qe(this,Ut,new e.queueClass,"f"),qe(this,lu,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,qe(this,fu,e.throwOnTimeout===!0,"f"),qe(this,Mn,e.autoStart===!1,"f")}get concurrency(){return V(this,Qo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);qe(this,Qo,e,"f"),V(this,Ze,"m",mu).call(this)}async add(e,r={}){return new Promise((n,i)=>{let s=async()=>{var o,a,c;qe(this,Mt,(a=V(this,Mt,"f"),a++,a),"f"),qe(this,Fn,(c=V(this,Fn,"f"),c++,c),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted){i(new $h("The task was aborted."));return}let l=await(this.timeout===void 0&&r.timeout===void 0?e({signal:r.signal}):Vh(Promise.resolve(e({signal:r.signal})),r.timeout===void 0?this.timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?V(this,fu,"f"):r.throwOnTimeout)&&i(qI)}));n(l),this.emit("completed",l)}catch(u){i(u),this.emit("error",u)}V(this,Ze,"m",Aw).call(this)};V(this,Ut,"f").enqueue(s,r),V(this,Ze,"m",hu).call(this),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return V(this,Mn,"f")?(qe(this,Mn,!1,"f"),V(this,Ze,"m",mu).call(this),this):this}pause(){qe(this,Mn,!0,"f")}clear(){qe(this,Ut,new(V(this,lu,"f")),"f")}async onEmpty(){V(this,Ut,"f").size!==0&&await V(this,Ze,"m",du).call(this,"empty")}async onSizeLessThan(e){V(this,Ut,"f").size<e||await V(this,Ze,"m",du).call(this,"next",()=>V(this,Ut,"f").size<e)}async onIdle(){V(this,Mt,"f")===0&&V(this,Ut,"f").size===0||await V(this,Ze,"m",du).call(this,"idle")}get size(){return V(this,Ut,"f").size}sizeBy(e){return V(this,Ut,"f").filter(e).length}get pending(){return V(this,Mt,"f")}get isPaused(){return V(this,Mn,"f")}};Go=new WeakMap,Yo=new WeakMap,Fn=new WeakMap,pu=new WeakMap,Wo=new WeakMap,uu=new WeakMap,fr=new WeakMap,$o=new WeakMap,Ut=new WeakMap,lu=new WeakMap,Mt=new WeakMap,Qo=new WeakMap,Mn=new WeakMap,fu=new WeakMap,Ze=new WeakSet,ww=function(){return V(this,Yo,"f")||V(this,Fn,"f")<V(this,pu,"f")},xw=function(){return V(this,Mt,"f")<V(this,Qo,"f")},Aw=function(){var e;qe(this,Mt,(e=V(this,Mt,"f"),e--,e),"f"),V(this,Ze,"m",hu).call(this),this.emit("next")},bw=function(){this.emit("empty"),V(this,Mt,"f")===0&&this.emit("idle")},Sw=function(){V(this,Ze,"m",zh).call(this),V(this,Ze,"m",Hh).call(this),qe(this,$o,void 0,"f")},_w=function(){let e=Date.now();if(V(this,fr,"f")===void 0){let r=V(this,uu,"f")-e;if(r<0)qe(this,Fn,V(this,Go,"f")?V(this,Mt,"f"):0,"f");else return V(this,$o,"f")===void 0&&qe(this,$o,setTimeout(()=>{V(this,Ze,"m",Sw).call(this)},r),"f"),!0}return!1},hu=function(){if(V(this,Ut,"f").size===0)return V(this,fr,"f")&&clearInterval(V(this,fr,"f")),qe(this,fr,void 0,"f"),V(this,Ze,"m",bw).call(this),!1;if(!V(this,Mn,"f")){let e=!V(this,Ze,"a",_w);if(V(this,Ze,"a",ww)&&V(this,Ze,"a",xw)){let r=V(this,Ut,"f").dequeue();return r?(this.emit("active"),r(),e&&V(this,Ze,"m",Hh).call(this),!0):!1}}return!1},Hh=function(){V(this,Yo,"f")||V(this,fr,"f")!==void 0||(qe(this,fr,setInterval(()=>{V(this,Ze,"m",zh).call(this)},V(this,Wo,"f")),"f"),qe(this,uu,Date.now()+V(this,Wo,"f"),"f"))},zh=function(){V(this,Fn,"f")===0&&V(this,Mt,"f")===0&&V(this,fr,"f")&&(clearInterval(V(this,fr,"f")),qe(this,fr,void 0,"f")),qe(this,Fn,V(this,Go,"f")?V(this,Mt,"f"):0,"f"),V(this,Ze,"m",mu).call(this)},mu=function(){for(;V(this,Ze,"m",hu).call(this););},du=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Gh=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Yh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Iw=t=>globalThis.DOMException===void 0?new Yh(t):new DOMException(t),Tw=t=>{let e=t.reason===void 0?Iw("This operation was aborted."):t.reason;return e instanceof Error?e:Iw(e)};function Wh(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,a=new Promise((c,u)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(r===Number.POSITIVE_INFINITY){c(t);return}if(e.signal){let{signal:l}=e;l.aborted&&u(Tw(l)),l.addEventListener("abort",()=>{u(Tw(l))})}o=s.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(h){u(h)}return}let l=typeof i=="string"?i:`Promise timed out after ${r} milliseconds`,f=i instanceof Error?i:new Gh(l);typeof t.cancel=="function"&&t.cancel(),u(f)},r),(async()=>{try{c(await t)}catch(l){u(l)}finally{s.clearTimeout.call(void 0,o)}})()});return a.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},a}var Qh="lock:worker:request-read",Xh="lock:worker:release-read",jh="lock:master:grant-read",Zh="lock:worker:request-write",Jh="lock:worker:release-write",ed="lock:master:grant-write";var Kn={},Ts=t=>{t.addEventListener("message",e=>{Ts.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Ts.dispatchEvent("message",t,e)})};Ts.addEventListener=(t,e)=>{Kn[t]==null&&(Kn[t]=[]),Kn[t].push(e)};Ts.removeEventListener=(t,e)=>{Kn[t]!=null&&(Kn[t]=Kn[t].filter(r=>r===e))};Ts.dispatchEvent=function(t,e,r){Kn[t]!=null&&Kn[t].forEach(n=>n(e,r))};var td=Ts;var Rw=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)}))}}))},Nw=(t,e,r,n)=>async()=>{let i=ia();return globalThis.postMessage({type:e,identifier:i,name:t}),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:t})}))};globalThis.addEventListener("message",o)})},HI={singleProcess:!1},Dw=t=>{if(t=Object.assign({},HI,t),Boolean(globalThis.document)||t.singleProcess){let r=new EventTarget;return td.addEventListener("message",Rw(r,"requestReadLock",Qh,Xh,jh)),td.addEventListener("message",Rw(r,"requestWriteLock",Zh,Jh,ed)),r}return{isWorker:!0,readLock:r=>Nw(r,Qh,jh,Xh),writeLock:r=>Nw(r,Zh,ed,Jh)}};var Ai={},Vn;async function rd(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await Wh((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var zI=(t,e)=>{if(Vn.isWorker===!0)return{readLock:Vn.readLock(t,e),writeLock:Vn.writeLock(t,e)};let r=new Is({concurrency:1}),n;return{async readLock(){if(n!=null)return await rd(n,e);n=new Is({concurrency:e.concurrency,autoStart:!1});let i=n,s=rd(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await rd(r,e)}}},$I={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function nd(t){let e=Object.assign({},$I,t);return Vn==null&&(Vn=Dw(e),Vn.isWorker!==!0&&(Vn.addEventListener("requestReadLock",r=>{Ai[r.data.name]!=null&&Ai[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Vn.addEventListener("requestWriteLock",async r=>{Ai[r.data.name]!=null&&Ai[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Ai[e.name]==null&&(Ai[e.name]=zI(e.name,e)),Ai[e.name]}var Lw=M("libp2p:peer-store:store"),Pw="/peers/",yu=class{constructor(e){this.components=e,this.lock=nd({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(e){if(e.type==null)throw Lw.error("peerId must be an instance of peer-id to store data"),(0,id.default)(new Error("peerId must be an instance of peer-id"),re.ERR_INVALID_PARAMETERS);let r=e.toCID().toString();return new ze(`${Pw}${r}`)}async has(e){return await this.components.datastore.has(this._peerIdToDatastoreKey(e))}async delete(e){await this.components.datastore.delete(this._peerIdToDatastoreKey(e))}async load(e){let r=await this.components.datastore.get(this._peerIdToDatastoreKey(e)),n=Vo.decode(r),i=new Map;for(let s of n.metadata)i.set(s.key,s.value);return{...n,id:e,addresses:n.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:oe(s),isCertified:o??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(e){if(e.pubKey!=null&&e.id.publicKey!=null&&!_e(e.pubKey,e.id.publicKey))throw Lw.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,id.default)(new Error("publicKey bytes do not match peer id publicKey bytes"),re.ERR_INVALID_PARAMETERS);let r=new Set,n=e.addresses.filter(o=>r.has(o.multiaddr.toString())?!1:(r.add(o.multiaddr.toString()),!0)).sort((o,a)=>o.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:o,isCertified:a})=>({multiaddr:o.bytes,isCertified:a})),i=[];[...e.metadata.keys()].sort().forEach(o=>{let a=e.metadata.get(o);a!=null&&i.push({key:o,value:a})});let s=Vo.encode({addresses:n,protocols:e.protocols.sort(),pubKey:e.pubKey,metadata:i,peerRecordEnvelope:e.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(e.id),s.subarray()),await this.load(e.id)}async patch(e,r){let n=await this.load(e);return await this._patch(e,r,n)}async patchOrCreate(e,r){let n;try{n=await this.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i;n={id:e,addresses:[],protocols:[],metadata:new Map}}return await this._patch(e,r,n)}async _patch(e,r,n){return await this.save({...n,...r,id:e})}async merge(e,r){let n=await this.load(e);return await this._merge(e,r,n)}async mergeOrCreate(e,r){let n;try{n=await this.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i;n={id:e,addresses:[],protocols:[],metadata:new Map}}return await this._merge(e,r,n)}async _merge(e,r,n){let i=new Map;return n.addresses.forEach(s=>{i.set(s.multiaddr.toString(),s.isCertified)}),(r.addresses??[]).forEach(s=>{let o=s.multiaddr.toString(),c=Boolean(i.get(o))||s.isCertified;i.set(o,c)}),await this.save({id:e,addresses:Array.from(i.entries()).map(([s,o])=>({multiaddr:oe(s),isCertified:o})),protocols:Array.from(new Set([...n.protocols??[],...r.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...r.metadata?.entries()??[]]),pubKey:r.pubKey??n?.pubKey,peerRecordEnvelope:r.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let e of this.components.datastore.queryKeys({prefix:Pw})){let r=e.toString().split("/")[2],n=Rt.decode(r);yield this.load(mn(n))}}};var sd=C(G(),1);var cn;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.tags!=null)for(let s of r.tags)n.uint32(10),gu.codec().encode(s,n,{writeDefaults:!0});i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={tags:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.tags.push(gu.codec().decode(r,r.uint32()));break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(cn||(cn={}));var gu;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.name!=="")&&(n.uint32(10),n.string(r.name)),r.value!=null&&(n.uint32(16),n.uint32(r.value)),r.expiry!=null&&(n.uint32(24),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={name:""},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.name=r.string();break;case 2:i.value=r.uint32();break;case 3:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(gu||(gu={}));var Xt=M("libp2p:peer-store"),Eu=class extends Ue{constructor(e,r={}){super(),this.components=e,this.store=new yu(e),this.addressBook=new Jc(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new eu(this.dispatchEvent.bind(this),this.store),this.metadataBook=new ru(this.dispatchEvent.bind(this),this.store),this.protoBook=new su(this.dispatchEvent.bind(this),this.store)}async forEach(e){Xt.trace("getPeers await read lock");let r=await this.store.lock.readLock();Xt.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||e(n)}finally{Xt.trace("getPeers release read lock"),r()}}async all(){let e=[];return await this.forEach(r=>{e.push(r)}),e}async delete(e){Xt.trace("delete await write lock");let r=await this.store.lock.writeLock();Xt.trace("delete got write lock");try{await this.store.delete(e)}finally{Xt.trace("delete release write lock"),r()}}async get(e){Xt.trace("get await read lock");let r=await this.store.lock.readLock();Xt.trace("get got read lock");try{return await this.store.load(e)}finally{Xt.trace("get release read lock"),r()}}async has(e){Xt.trace("has await read lock");let r=await this.store.lock.readLock();Xt.trace("has got read lock");try{return await this.store.has(e)}finally{Xt.trace("has release read lock"),r()}}async tagPeer(e,r,n={}){let i=n.value??0,s=Math.round(i),o=n.ttl??void 0;if(s!==i||s<0||s>100)throw(0,sd.default)(new Error("Tag value must be between 0-100"),"ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(e,"tags"),c=[];a!=null&&(c=cn.decode(a).tags);for(let u of c)if(u.name===r)throw(0,sd.default)(new Error("Peer already tagged"),"ERR_DUPLICATE_TAG");c.push({name:r,value:s,expiry:o==null?void 0:BigInt(Date.now()+o)}),await this.metadataBook.setValue(e,"tags",cn.encode({tags:c}).subarray())}async unTagPeer(e,r){let n=await this.metadataBook.getValue(e,"tags"),i=[];n!=null&&(i=cn.decode(n).tags),i=i.filter(s=>s.name!==r),await this.metadataBook.setValue(e,"tags",cn.encode({tags:i}).subarray())}async getTags(e){let r=await this.metadataBook.getValue(e,"tags"),n=[];r!=null&&(n=cn.decode(r).tags);let i=BigInt(Date.now()),s=n.filter(o=>o.expiry==null||o.expiry>i);return s.length!==n.length&&await this.metadataBook.setValue(e,"tags",cn.encode({tags:s}).subarray()),s.map(o=>({name:o.name,value:o.value??0}))}};var Bw=C(G(),1),vu=class{constructor(e){this.dht=e}async provide(e){await er(this.dht.provide(e))}async*findProviders(e,r={}){for await(let n of this.dht.findProviders(e,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(e,r,n){await er(this.dht.put(e,r,n))}async get(e,r){for await(let n of this.dht.get(e,r))if(n.name==="VALUE")return n.value;throw(0,Bw.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Ft=C(G(),1);var wu=class{constructor(e={}){this._started=!1,this._peerId=e.peerId,this._addressManager=e.addressManager,this._peerStore=e.peerStore,this._upgrader=e.upgrader,this._metrics=e.metrics,this._registrar=e.registrar,this._connectionManager=e.connectionManager,this._transportManager=e.transportManager,this._connectionGater=e.connectionGater,this._contentRouting=e.contentRouting,this._peerRouting=e.peerRouting,this._datastore=e.datastore,this._connectionProtector=e.connectionProtector,this._dht=e.dht,this._pubsub=e.pubsub,this._dialer=e.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{e.beforeStart!=null&&await e.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{await e.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{e.beforeStop!=null&&await e.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{await e.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(e=>kr(e)).map(async e=>{e.afterStop!=null&&await e.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Ft.default)(new Error("peerId not set"),"ERR_SERVICE_MISSING");return this._peerId}set peerId(e){this._peerId=e}get addressManager(){if(this._addressManager==null)throw(0,Ft.default)(new Error("addressManager not set"),"ERR_SERVICE_MISSING");return this._addressManager}set addressManager(e){this._addressManager=e}get peerStore(){if(this._peerStore==null)throw(0,Ft.default)(new Error("peerStore not set"),"ERR_SERVICE_MISSING");return this._peerStore}set peerStore(e){this._peerStore=e}get upgrader(){if(this._upgrader==null)throw(0,Ft.default)(new Error("upgrader not set"),"ERR_SERVICE_MISSING");return this._upgrader}set upgrader(e){this._upgrader=e}get registrar(){if(this._registrar==null)throw(0,Ft.default)(new Error("registrar not set"),"ERR_SERVICE_MISSING");return this._registrar}set registrar(e){this._registrar=e}get connectionManager(){if(this._connectionManager==null)throw(0,Ft.default)(new Error("connectionManager not set"),"ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(e){this._connectionManager=e}get transportManager(){if(this._transportManager==null)throw(0,Ft.default)(new Error("transportManager not set"),"ERR_SERVICE_MISSING");return this._transportManager}set transportManager(e){this._transportManager=e}get connectionGater(){if(this._connectionGater==null)throw(0,Ft.default)(new Error("connectionGater not set"),"ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(e){this._connectionGater=e}get contentRouting(){if(this._contentRouting==null)throw(0,Ft.default)(new Error("contentRouting not set"),"ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(e){this._contentRouting=e}get peerRouting(){if(this._peerRouting==null)throw(0,Ft.default)(new Error("peerRouting not set"),"ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(e){this._peerRouting=e}get datastore(){if(this._datastore==null)throw(0,Ft.default)(new Error("datastore not set"),"ERR_SERVICE_MISSING");return this._datastore}set datastore(e){this._datastore=e}get connectionProtector(){return this._connectionProtector}set connectionProtector(e){this._connectionProtector=e}get dialer(){if(this._dialer==null)throw(0,Ft.default)(new Error("dialer not set"),"ERR_SERVICE_MISSING");return this._dialer}set dialer(e){this._dialer=e}get metrics(){return this._metrics}set metrics(e){this._metrics=e}get dht(){return this._dht}set dht(e){this._dht=e}get pubsub(){return this._pubsub}set pubsub(e){this._pubsub=e}};var ad=C(Lu(),1),cd=C(Uw(),1);var Mw=globalThis.fetch,Fw=globalThis.Headers,nU=globalThis.Request,iU=globalThis.Response;function xu(t,e,r){return`${t}?name=${e}&type=${r}`}async function Kw(t,e){return await(await Mw(t,{headers:new Fw({accept:"application/dns-json"}),signal:e})).json()}function Ci(t,e){return`${e}_${t}`}var od=Object.assign((0,ad.default)("dns-over-http-resolver"),{error:(0,ad.default)("dns-over-http-resolver:error")}),ud=class{constructor(e={}){this._cache=new cd.default({max:e?.maxCache??100}),this._TXTcache=new cd.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??Kw,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>e.abort())}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return await this.resolve4(e);case"AAAA":return await this.resolve6(e);case"TXT":return await this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(Ci(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(xu(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Ci(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(Ci(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(xu(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Ci(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(Ci(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(xu(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Ci(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Vw=ud;var qw=Vw;var{code:XI}=Ie("dnsaddr");async function Hw(t,e={}){let r=new qw;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===XI)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var bu=C(G(),1);var tT={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{maxConnections:300,minConnections:50,autoDial:!0,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:Hw},addressSorter:es},connectionGater:{},transportManager:{faultTolerance:xn.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},relay:{enabled:!0,advertise:{bootDelay:9e5,enabled:!1,ttl:18e5},hop:{enabled:!1,active:!1,timeout:3e4},autoRelay:{enabled:!1,maxListeners:2}},identify:{protocolPrefix:"ipfs",host:{agentVersion:Lh},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1},ping:{protocolPrefix:"ipfs",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4}};function zw(t){let e=Er(tT,t);if(e.transports==null||e.transports.length<1)throw(0,bu.default)(new Error(ne.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(e.connectionEncryption==null||e.connectionEncryption.length===0)throw(0,bu.default)(new Error(ne.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,bu.default)(new Error(ne.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return e.identify.host.agentVersion===Lh&&(aw||sw?e.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Ko||cw||ow||uw)&&(e.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),e}var dd;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.id!=null&&r.id.byteLength>0)&&(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={id: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.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(dd||(dd={}));var $w=async()=>{let t=await Uc("Ed25519"),e=await rT(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function rT(t){return await Mi(yv(t.public),gv(t))}var jo=C(G(),1);var jt=C(G(),1);var Gw=Symbol.for("@libp2p/peer-discovery");var Su=class extends Ue{get[Gw](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,jt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}};var un=C(G(),1);var _u=class extends Ue{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,un.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var Rs=C(G(),1);var u1=C(Kr(),1),gd=C(md(),1),l1=C(mr(),1);var Xo=C(G(),1),o1=C(md(),1),a1=C(i1(),1),yd=C(mr(),1);var s1=M("libp2p:dialer:dial-request"),Au=class{constructor(e){let{addrs:r,dialAction:n,dialer:i}=e;this.addrs=r,this.dialer=i,this.dialAction=n}async run(e={}){let r=this.dialer.getTokens(this.addrs.length);if(r.length<1)throw(0,Xo.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new a1.default;for(let a of r)n.push(a).catch(c=>{s1.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,yd.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(e.signal!=null)try{(0,yd.setMaxListeners)?.(1/0,e.signal)}catch{}let s=0,o=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let u=await n.shift();if(o)throw this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0]),(0,Xo.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let l=i[c];if(l==null)throw(0,Xo.default)(new Error("dialAction did not come with an AbortController"),b.ERR_INVALID_PARAMETERS);let f;try{let h=l.signal;f=await this.dialAction(a,{...e,signal:e.signal!=null?(0,o1.anySignal)([h,e.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=r.length?n.push(u).catch(h=>{s1.error(h)}):this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0])}if(f==null)throw(0,Xo.default)(new Error("dialAction led to empty object"),b.ERR_TRANSPORT_DIAL_FAILED);return o=!0,f}))}finally{i.forEach(a=>{a!==void 0&&a.abort()}),r.forEach(a=>this.dialer.releaseToken(a))}}};var hr=M("libp2p:dialer"),Cu=class{constructor(e,r={}){this.started=!1,this.addressSorter=r.addressSorter??es,this.maxAddrsToDial=r.maxAddrsToDial??25,this.timeout=r.dialTimeout??3e4,this.maxDialsPerPeer=r.maxDialsPerPeer??4,this.tokens=[...new Array(r.maxParallelDials??100)].map((n,i)=>i),this.components=e,this.pendingDials=Ro({name:"libp2p_dialler_pending_dials",metrics:e.metrics}),this.pendingDialTargets=Ro({name:"libp2p_dialler_pending_dial_targets",metrics:e.metrics});for(let[n,i]of Object.entries(r.resolvers??{}))Sl.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let e of this.pendingDials.values())try{e.controller.abort()}catch(r){hr.error(r)}this.pendingDials.clear();for(let e of this.pendingDialTargets.values())e.abort();this.pendingDialTargets.clear()}async dial(e,r={}){let{id:n,multiaddrs:i}=Hr(e);if(this.components.peerId.equals(n))throw(0,Rs.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(hr("check multiaddrs %p",n),i!=null&&i.length>0&&(hr("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,i)),await this.components.connectionGater.denyDialPeer(n))throw(0,Rs.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED);hr("creating dial target for %p",n);let s=new AbortController,o=c1();this.pendingDialTargets.set(o,s);let a=s.signal;r.signal!=null&&(a=(0,gd.anySignal)([a,r.signal]));let c;try{c=await this._createDialTarget(e,{...r,signal:a})}finally{this.pendingDialTargets.delete(o)}if(c.addrs.length===0)throw(0,Rs.default)(new Error("The dial request has no valid addresses"),b.ERR_NO_VALID_ADDRESSES);let u=this.pendingDials.get(c.id.toString())??this._createPendingDial(c,r);try{let l=await u.promise;return hr("dial succeeded to %s",c.id),l}catch(l){throw hr("dial failed to %s",c.id,l),u.controller.signal.aborted&&(l.code=b.ERR_TIMEOUT),hr.error(l),l}finally{u.destroy()}}async _createDialTarget(e,r){let n=this._resolve.bind(this),i=qr(e)?[e]:await this._loadAddresses(e);if(i=(await Promise.all(i.map(async o=>await n(o,r)))).flat().filter(o=>Boolean(this.components.transportManager.transportForMultiaddr(o))),i=[...new Set(i)],i.length>this.maxAddrsToDial)throw(0,Rs.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let s=Xn(e)?e:void 0;if(s!=null){let o=`/p2p/${s.toString()}`;i=i.map(a=>{let c=a.getPeerId();return c==null||!s.equals(c)?a.encapsulate(o):a})}return{id:s==null?c1():s.toString(),addrs:i}}async _loadAddresses(e){let r=await this.components.peerStore.addressBook.get(e);return(await Promise.all(r.map(async n=>await this.components.connectionGater.denyDialMultiaddr(e,n.multiaddr)?!1:n))).filter(sT).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(e,r={}){let n=async(u,l={})=>{if(l.signal?.aborted===!0)throw(0,Rs.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(u,l).catch(f=>{throw hr.error("dial to %s failed",u,f),f})},i=new Au({addrs:e.addrs,dialAction:n,dialer:this}),s=new u1.TimeoutController(this.timeout),o=[s.signal];r.signal!=null&&o.push(r.signal);let a=(0,gd.anySignal)(o);try{(0,l1.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:s,promise:i.run({...r,signal:a}),destroy:()=>{s.clear(),this.pendingDials.delete(e.id)}};return this.pendingDials.set(e.id,c),c}getTokens(e){let r=Math.min(e,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,r);return hr("%d tokens request, returning %d, %d remaining",e,r,this.tokens.length),n}releaseToken(e){this.tokens.includes(e)||(hr("token %d released",e),this.tokens.push(e))}async _resolve(e,r){if(!e.protoNames().includes("dnsaddr"))return[e];let i=await this._resolveRecord(e,r);return(await Promise.all(i.map(async a=>await this._resolve(a,r)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(e,r){try{return e=oe(e.toString()),await e.resolve(r)}catch(n){return hr.error(`multiaddr ${e.toString()} could not be resolved`,n),[]}}};function sT(t){return Boolean(t)}function c1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var ln=M("libp2p"),Ed=class extends Ue{constructor(e){super(),this.started=!1,this.peerId=e.peerId;let r=this.components=new wu({peerId:e.peerId,datastore:e.datastore??new ca,connectionGater:{denyDialPeer:async()=>await Promise.resolve(!1),denyDialMultiaddr:async()=>await Promise.resolve(!1),denyInboundConnection:async()=>await Promise.resolve(!1),denyOutboundConnection:async()=>await Promise.resolve(!1),denyInboundEncryptedConnection:async()=>await Promise.resolve(!1),denyOutboundEncryptedConnection:async()=>await Promise.resolve(!1),denyInboundUpgradedConnection:async()=>await Promise.resolve(!1),denyOutboundUpgradedConnection:async()=>await Promise.resolve(!1),filterMultiaddrForPeer:async()=>await Promise.resolve(!0),...e.connectionGater}});r.peerStore=new Eu(r,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore}),this.services=[r],e.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(e.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",o=>{let{detail:a}=o;this.dispatchEvent(new X("peer:discovery",{detail:a}))}),e.connectionProtector!=null&&(this.components.connectionProtector=e.connectionProtector(r)),this.components.upgrader=new Hc(this.components,{connectionEncryption:(e.connectionEncryption??[]).map(o=>this.configureComponent(o(this.components))),muxers:(e.streamMuxers??[]).map(o=>this.configureComponent(o(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new Cu(this.components,e.connectionManager),this.connectionManager=this.components.connectionManager=new Pa(this.components,e.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",o=>{this.dispatchEvent(new X("peer:disconnect",{detail:o.detail}))}),this.components.connectionManager.addEventListener("peer:connect",o=>{this.dispatchEvent(new X("peer:connect",{detail:o.detail}))}),this.registrar=this.components.registrar=new qc(this.components),this.components.transportManager=new Kc(this.components,e.transportManager),this.components.addressManager=new Sa(this.components,e.addresses),this.configureComponent(new Qc(this.components)),this.configureComponent(new Ba(this.components,{enabled:e.connectionManager.autoDial,minConnections:e.connectionManager.minConnections,autoDialInterval:e.connectionManager.autoDialInterval}));let n=Co.generateOptions();this.keychain=this.configureComponent(new Co(this.components,{...n,...e.keychain})),this.services.push(new Wc(this.components,e.nat)),e.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))}),this.identifyService=new As(this.components,{...e.identify}),this.configureComponent(this.identifyService),e.dht!=null?this.dht=this.components.dht=e.dht(this.components):this.dht=new Su,e.pubsub!=null?this.pubsub=this.components.pubsub=e.pubsub(this.components):this.pubsub=new _u;let i=(e.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&(i.push(this.configureComponent(new Xc(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new ma(this.components,{...e.peerRouting,routers:i}));let s=(e.contentRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&s.push(this.configureComponent(new vu(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new ga(this.components,{routers:s})),e.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new Ga(this.components,e.relay))),this.configureComponent(new Ja(this.components,{addressSorter:e.connectionManager.addressSorter,...e.relay}))),this.fetchService=this.configureComponent(new $c(this.components,{...e.fetch})),this.pingService=this.configureComponent(new Gc(this.components,{...e.ping}));for(let o of e.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(e){return kr(e)&&this.services.push(e),e}async start(){if(!this.started){this.started=!0,ln("libp2p is starting");try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(e=>e.start())),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),ln("libp2p has started")}catch(e){throw ln.error("An error occurred starting libp2p",e),await this.stop(),e}}}async stop(){this.started&&(ln("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(this.services.map(e=>e.stop())),await Promise.all(this.services.map(async e=>{e.afterStop!=null&&await e.afterStop()})),ln("libp2p has stopped"))}isStarted(){return this.started}getConnections(e){return this.components.connectionManager.getConnections(e)}getPeers(){let e=new Gr;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){let{id:n,multiaddrs:i}=Hr(e);return await this.components.peerStore.addressBook.add(n,i),await this.components.connectionManager.openConnection(n,r)}async dialProtocol(e,r,n={}){if(r==null)throw(0,jo.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw(0,jo.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e){let{id:r}=Hr(e);await this.components.connectionManager.closeConnections(r)}async getPublicKey(e,r={}){if(ln("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw(0,jo.default)(new Error("Public key was not in the peer store and the DHT is not enabled"),b.ERR_NO_ROUTERS_AVAILABLE);let i=Xe([q("/pk/"),e.multihash.digest]);for await(let s of this.dht.get(i,r))if(s.name==="VALUE"){let o=_o(s.value);return await this.peerStore.keyBook.set(e,s.value),o.bytes}throw(0,jo.default)(new Error(`Node not responding with its public key: ${e.toString()}`),b.ERR_INVALID_RECORD)}async fetch(e,r,n={}){let{id:i,multiaddrs:s}=Hr(e);return s!=null&&await this.components.peerStore.addressBook.add(i,s),await this.fetchService.fetch(i,r,n)}async ping(e,r={}){let{id:n,multiaddrs:i}=Hr(e);return i.length>0&&await this.components.peerStore.addressBook.add(n,i),await this.pingService.ping(n,r)}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return await this.registrar.register(e,r)}unregister(e){this.registrar.unregister(e)}onDiscoveryPeer(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){ln.error(new Error(b.ERR_DISCOVERED_SELF));return}r.multiaddrs.length>0&&this.components.peerStore.addressBook.add(r.id,r.multiaddrs).catch(n=>ln.error(n)),r.protocols.length>0&&this.components.peerStore.protoBook.set(r.id,r.protocols).catch(n=>ln.error(n)),this.dispatchEvent(new X("peer:discovery",{detail:r}))}};async function f1(t){return t.peerId==null&&(t.peerId=await $w()),new Ed(zw(t))}async function oT(t){let e=await f1(t);return t.start!==!1&&await e.start(),e}return g1(aT);})();
50
+ /*! Bundled license information:
51
+
52
+ @noble/secp256k1/lib/esm/index.js:
53
+ (*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) *)
54
+
55
+ @noble/ed25519/lib/esm/index.js:
56
+ (*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) *)
57
+ */
58
+ return Libp2P}));