libp2p 0.41.0-58cc480 → 0.41.0-bdf53ae
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +19 -19
- package/dist/src/config.js +1 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +1 -1
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +19 -8
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/identify/index.d.ts +4 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/libp2p.d.ts +4 -2
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +6 -0
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/transport-manager.d.ts +1 -13
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +1 -14
- package/dist/src/transport-manager.js.map +1 -1
- package/package.json +23 -27
- package/src/config.ts +1 -1
- package/src/connection-manager/index.ts +23 -9
- package/src/identify/index.ts +1 -1
- package/src/libp2p.ts +10 -2
- package/src/transport-manager.ts +1 -15
- package/src/version.ts +1 -1
package/dist/index.min.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2P=(()=>{var y1=Object.create;var Zo=Object.defineProperty;var g1=Object.getOwnPropertyDescriptor;var E1=Object.getOwnPropertyNames;var v1=Object.getPrototypeOf,w1=Object.prototype.hasOwnProperty;var R=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),pt=(t,e)=>{for(var r in e)Zo(t,r,{get:e[r],enumerable:!0})},gd=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of E1(e))!w1.call(t,i)&&i!==r&&Zo(t,i,{get:()=>e[i],enumerable:!(n=g1(e,i))||n.enumerable});return t};var C=(t,e,r)=>(r=t!=null?y1(v1(t)):{},gd(e||!t||!t.__esModule?Zo(r,"default",{value:t,enumerable:!0}):r,t)),x1=t=>gd(Zo({},"__esModule",{value:!0}),t);var Iu=R((ET,Ed)=>{var Ii=1e3,Ti=Ii*60,Ri=Ti*60,Kn=Ri*24,b1=Kn*7,S1=Kn*365.25;Ed.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return _1(t);if(r==="number"&&isFinite(t))return e.long?C1(t):A1(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function _1(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*S1;case"weeks":case"week":case"w":return r*b1;case"days":case"day":case"d":return r*Kn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ri;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ti;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ii;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function A1(t){var e=Math.abs(t);return e>=Kn?Math.round(t/Kn)+"d":e>=Ri?Math.round(t/Ri)+"h":e>=Ti?Math.round(t/Ti)+"m":e>=Ii?Math.round(t/Ii)+"s":t+"ms"}function C1(t){var e=Math.abs(t);return e>=Kn?Jo(t,e,Kn,"day"):e>=Ri?Jo(t,e,Ri,"hour"):e>=Ti?Jo(t,e,Ti,"minute"):e>=Ii?Jo(t,e,Ii,"second"):t+" ms"}function Jo(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var wd=R((vT,vd)=>{function I1(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Iu(),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,(P,te)=>{if(P==="%%")return"%";B++;let ae=r.formatters[te];if(typeof ae=="function"){let st=g[B];P=ae.call(E,st),g.splice(B,1),B--}return P}),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}vd.exports=I1});var Tu=R((It,ea)=>{It.formatArgs=R1;It.save=N1;It.load=D1;It.useColors=T1;It.storage=L1();It.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`."))}})();It.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 T1(){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 R1(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+ea.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)}It.log=console.debug||console.log||(()=>{});function N1(t){try{t?It.storage.setItem("debug",t):It.storage.removeItem("debug")}catch{}}function D1(){let t;try{t=It.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function L1(){try{return localStorage}catch{}}ea.exports=wd()(It);var{formatters:P1}=ea.exports;P1.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Td=R((BT,Id)=>{"use strict";var j1=async t=>{let e=[];for await(let r of t)e.push(r);return e};Id.exports=j1});var Dd=R((kT,Nd)=>{"use strict";var Z1=async t=>{for await(let e of t);};Nd.exports=Z1});var Pd=R((UT,Ld)=>{"use strict";var J1=async function*(t,e){for await(let r of t)await e(r)&&(yield r)};Ld.exports=J1});var Od=R((MT,Bd)=>{"use strict";var ex=async function*(t,e){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}};Bd.exports=ex});var G=R((NR,jd)=>{"use strict";function Xd(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function Yx(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return Xd(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),Xd(new i,r)}}jd.exports=Yx});var rp=R((KR,tp)=>{"use strict";tp.exports=function(){return Date.now()}});var tl=R((VR,np)=>{"use strict";var ua=rp(),el=class{constructor(e,r,n){let i=this;this._started=ua(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(ua()-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=ua();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=ua(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function Qx(){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 el(arguments[0],arguments[1],t)}np.exports=Qx});var Ur=R((qR,sp)=>{"use strict";var{AbortController:Xx}=globalThis,ip=tl(),Bs=class extends Xx{constructor(e){super(),this._ms=e,this._timer=ip(()=>this.abort(),e),Object.setPrototypeOf(this,Bs.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=ip(()=>this.abort(),this._ms)}};sp.exports={TimeoutController:Bs}});var nl=R((JR,ap)=>{"use strict";var Oi=new Map,eb=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function tb(t,e,r){for(;Oi.get(r);){try{await t()}catch(n){setTimeout(()=>{throw n},1);break}if(!Oi.get(r))break;await new Promise(n=>{let i=setTimeout(n,e);Oi.set(r,i)})}}function rb(t,e,r){r=r||e;let n=eb(),i=setTimeout(()=>{tb(t,e,n)},r);return Oi.set(n,i),n}function nb(t){let e=Oi.get(t);e&&(clearTimeout(e),Oi.delete(t))}ap.exports={setDelayedInterval:rb,clearDelayedInterval:nb}});var fr=R((eN,il)=>{"use strict";var ki=typeof Reflect=="object"?Reflect:null,cp=ki&&typeof ki.apply=="function"?ki.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},fa;ki&&typeof ki.ownKeys=="function"?fa=ki.ownKeys:Object.getOwnPropertySymbols?fa=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:fa=function(e){return Object.getOwnPropertyNames(e)};function ib(t){console&&console.warn&&console.warn(t)}var lp=Number.isNaN||function(e){return e!==e};function xe(){xe.init.call(this)}il.exports=xe;il.exports.once=cb;xe.EventEmitter=xe;xe.prototype._events=void 0;xe.prototype._eventsCount=0;xe.prototype._maxListeners=void 0;var up=10;function ha(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 up},set:function(t){if(typeof t!="number"||t<0||lp(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");up=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||lp(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 fp(t){return t._maxListeners===void 0?xe.defaultMaxListeners:t._maxListeners}xe.prototype.getMaxListeners=function(){return fp(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")cp(c,this,r);else for(var u=c.length,l=yp(c,u),n=0;n<u;++n)cp(l[n],this,r);return!0};function hp(t,e,r,n){var i,s,o;if(ha(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=fp(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,ib(a)}return t}xe.prototype.addListener=function(e,r){return hp(this,e,r,!1)};xe.prototype.on=xe.prototype.addListener;xe.prototype.prependListener=function(e,r){return hp(this,e,r,!0)};function sb(){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 dp(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=sb.bind(n);return i.listener=r,n.wrapFn=i,i}xe.prototype.once=function(e,r){return ha(r),this.on(e,dp(this,e,r)),this};xe.prototype.prependOnceListener=function(e,r){return ha(r),this.prependListener(e,dp(this,e,r)),this};xe.prototype.removeListener=function(e,r){var n,i,s,o,a;if(ha(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():ob(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 pp(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?ab(i):yp(i,i.length)}xe.prototype.listeners=function(e){return pp(this,e,!0)};xe.prototype.rawListeners=function(e){return pp(this,e,!1)};xe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):mp.call(t,e)};xe.prototype.listenerCount=mp;function mp(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?fa(this._events):[]};function yp(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function ob(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function ab(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function cb(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))}gp(t,e,s,{once:!0}),e!=="error"&&ub(t,i,{once:!0})})}function ub(t,e,r){typeof t.on=="function"&&gp(t,"error",e,r)}function gp(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 Bp=R((ON,Pp)=>{Pp.exports=ll;var Lp=128,gb=127,Eb=~gb,vb=Math.pow(2,31);function ll(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw ll.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=vb;)e[r++]=t&255|Lp,t/=128;for(;t&Eb;)e[r++]=t&255|Lp,t>>>=7;return e[r]=t|0,ll.bytes=r-n+1,e}});var Up=R((kN,kp)=>{kp.exports=fl;var wb=128,Op=127;function fl(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a||i>49)throw fl.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Op)<<i:(o&Op)*Math.pow(2,i),i+=7}while(o>=wb);return fl.bytes=s-n,r}});var Fp=R((UN,Mp)=>{var xb=Math.pow(2,7),bb=Math.pow(2,14),Sb=Math.pow(2,21),_b=Math.pow(2,28),Ab=Math.pow(2,35),Cb=Math.pow(2,42),Ib=Math.pow(2,49),Tb=Math.pow(2,56),Rb=Math.pow(2,63);Mp.exports=function(t){return t<xb?1:t<bb?2:t<Sb?3:t<_b?4:t<Ab?5:t<Cb?6:t<Ib?7:t<Tb?8:t<Rb?9:10}});var ga=R((MN,Kp)=>{Kp.exports={encode:Bp(),decode:Up(),encodingLength:Fp()}});var e0=R((yD,Jp)=>{"use strict";Jp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var o0=R((i0,s0)=>{"use strict";var ba=e0(),{hasOwnProperty:r0}=Object.prototype,{propertyIsEnumerable:Xb}=Object,qi=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),jb=i0,t0={concatArrays:!1,ignoreUndefined:!1},Sa=t=>{let e=[];for(let r in t)r0.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Xb.call(t,n)&&e.push(n)}return e};function Hi(t){return Array.isArray(t)?Zb(t):ba(t)?Jb(t):t}function Zb(t){let e=t.slice(0,0);return Sa(t).forEach(r=>{qi(e,r,Hi(t[r]))}),e}function Jb(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Sa(t).forEach(r=>{qi(e,r,Hi(t[r]))}),e}var n0=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?qi(t,i,Sl(t[i],e[i],n)):qi(t,i,Hi(e[i])))}),t),e2=(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++)r0.call(s,a)&&(o.push(String(a)),s===t?qi(n,i++,s[a]):qi(n,i++,Hi(s[a])));n=n0(n,s,Sa(s).filter(a=>!o.includes(a)),r)}),n};function Sl(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?e2(t,e,r):!ba(e)||!ba(t)?Hi(e):n0(t,e,Sa(e),r)}s0.exports=function(...t){let e=Sl(Hi(t0),this!==jb&&this||{},t0),r={_:{}};for(let n of t)if(n!==void 0){if(!ba(n))throw new TypeError("`"+n+"` is not an Option Object");r=Sl(r,{_:n},e)}return r._}});var qs=R((VD,l0)=>{l0.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 h0=R((HD,f0)=>{f0.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 p0=R((zD,d0)=>{var n2=h0();d0.exports=n2});var Nt=R((GD,m0)=>{m0.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 $i=R((WD,g0)=>{var Al=qs(),i2=p0(),y0=Nt();g0.exports=class extends Al{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed||e.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration||e.inmemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new i2}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 Al?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 Al))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 y0(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 y0(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 w0=R((QD,v0)=>{var s2=$i(),o2=Nt(),E0="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} ",Cl=class extends s2{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:E0})}_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 o2;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(E0,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)})})}};v0.exports=Cl});var S0=R((XD,b0)=>{var a2=$i(),c2=Nt();function x0(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 Hs=class extends a2{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=x0(this.client)}):(this._initCollection(),this._driverVersion=x0(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?Hs.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 c2,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)}};b0.exports=Hs});var A0=R((jD,_0)=>{var u2=$i(),l2=Nt(),Il=class extends u2{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 l2,[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 (?, ?, ?)
|
|
2
|
+
"use strict";var Libp2P=(()=>{var s1=Object.create;var jo=Object.defineProperty;var o1=Object.getOwnPropertyDescriptor;var a1=Object.getOwnPropertyNames;var c1=Object.getPrototypeOf,u1=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})},md=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of a1(e))!u1.call(t,i)&&i!==r&&jo(t,i,{get:()=>e[i],enumerable:!(n=o1(e,i))||n.enumerable});return t};var C=(t,e,r)=>(r=t!=null?s1(c1(t)):{},md(e||!t||!t.__esModule?jo(r,"default",{value:t,enumerable:!0}):r,t)),l1=t=>md(jo({},"__esModule",{value:!0}),t);var Iu=N((rT,yd)=>{var Ci=1e3,Ii=Ci*60,Ti=Ii*60,Vn=Ti*24,f1=Vn*7,h1=Vn*365.25;yd.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return d1(t);if(r==="number"&&isFinite(t))return e.long?m1(t):p1(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function d1(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*h1;case"weeks":case"week":case"w":return r*f1;case"days":case"day":case"d":return r*Vn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ti;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ii;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ci;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function p1(t){var e=Math.abs(t);return e>=Vn?Math.round(t/Vn)+"d":e>=Ti?Math.round(t/Ti)+"h":e>=Ii?Math.round(t/Ii)+"m":e>=Ci?Math.round(t/Ci)+"s":t+"ms"}function m1(t){var e=Math.abs(t);return e>=Vn?Zo(t,e,Vn,"day"):e>=Ti?Zo(t,e,Ti,"hour"):e>=Ii?Zo(t,e,Ii,"minute"):e>=Ci?Zo(t,e,Ci,"second"):t+" ms"}function Zo(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Ed=N((nT,gd)=>{function y1(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Iu(),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,(P,te)=>{if(P==="%%")return"%";B++;let ae=r.formatters[te];if(typeof ae=="function"){let st=g[B];P=ae.call(E,st),g.splice(B,1),B--}return P}),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}gd.exports=y1});var Tu=N((Tt,Jo)=>{Tt.formatArgs=E1;Tt.save=v1;Tt.load=w1;Tt.useColors=g1;Tt.storage=x1();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 g1(){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 E1(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Jo.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 v1(t){try{t?Tt.storage.setItem("debug",t):Tt.storage.removeItem("debug")}catch{}}function w1(){let t;try{t=Tt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function x1(){try{return localStorage}catch{}}Jo.exports=Ed()(Tt);var{formatters:b1}=Jo.exports;b1.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var G=N((ER,Vd)=>{"use strict";function Kd(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function Dx(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 Kd(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),Kd(new i,r)}}Vd.exports=Dx});var Gd=N((IR,$d)=>{"use strict";$d.exports=function(){return Date.now()}});var Ju=N((TR,Yd)=>{"use strict";var ua=Gd(),Zu=class{constructor(e,r,n){let i=this;this._started=ua(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(ua()-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=ua();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=ua(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function Px(){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 Zu(arguments[0],arguments[1],t)}Yd.exports=Px});var Fr=N((RR,Qd)=>{"use strict";var{AbortController:Bx}=globalThis,Wd=Ju(),Ps=class extends Bx{constructor(e){super(),this._ms=e,this._timer=Wd(()=>this.abort(),e),Object.setPrototypeOf(this,Ps.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=Wd(()=>this.abort(),this._ms)}};Qd.exports={TimeoutController:Ps}});var tl=N((FR,jd)=>{"use strict";var Bi=new Map,Mx=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function Fx(t,e,r){for(;Bi.get(r);){try{await t()}catch(n){setTimeout(()=>{throw n},1);break}if(!Bi.get(r))break;await new Promise(n=>{let i=setTimeout(n,e);Bi.set(r,i)})}}function Kx(t,e,r){r=r||e;let n=Mx(),i=setTimeout(()=>{Fx(t,e,n)},r);return Bi.set(n,i),n}function Vx(t){let e=Bi.get(t);e&&(clearTimeout(e),Bi.delete(t))}jd.exports={setDelayedInterval:Kx,clearDelayedInterval:Vx}});var pr=N((KR,rl)=>{"use strict";var Oi=typeof Reflect=="object"?Reflect:null,Zd=Oi&&typeof Oi.apply=="function"?Oi.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},fa;Oi&&typeof Oi.ownKeys=="function"?fa=Oi.ownKeys:Object.getOwnPropertySymbols?fa=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:fa=function(e){return Object.getOwnPropertyNames(e)};function qx(t){console&&console.warn&&console.warn(t)}var ep=Number.isNaN||function(e){return e!==e};function xe(){xe.init.call(this)}rl.exports=xe;rl.exports.once=Gx;xe.EventEmitter=xe;xe.prototype._events=void 0;xe.prototype._eventsCount=0;xe.prototype._maxListeners=void 0;var Jd=10;function ha(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 Jd},set:function(t){if(typeof t!="number"||t<0||ep(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Jd=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||ep(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 tp(t){return t._maxListeners===void 0?xe.defaultMaxListeners:t._maxListeners}xe.prototype.getMaxListeners=function(){return tp(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")Zd(c,this,r);else for(var u=c.length,l=op(c,u),n=0;n<u;++n)Zd(l[n],this,r);return!0};function rp(t,e,r,n){var i,s,o;if(ha(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=tp(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 rp(this,e,r,!1)};xe.prototype.on=xe.prototype.addListener;xe.prototype.prependListener=function(e,r){return rp(this,e,r,!0)};function Hx(){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 np(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=Hx.bind(n);return i.listener=r,n.wrapFn=i,i}xe.prototype.once=function(e,r){return ha(r),this.on(e,np(this,e,r)),this};xe.prototype.prependOnceListener=function(e,r){return ha(r),this.prependListener(e,np(this,e,r)),this};xe.prototype.removeListener=function(e,r){var n,i,s,o,a;if(ha(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():zx(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 ip(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?$x(i):op(i,i.length)}xe.prototype.listeners=function(e){return ip(this,e,!0)};xe.prototype.rawListeners=function(e){return ip(this,e,!1)};xe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):sp.call(t,e)};xe.prototype.listenerCount=sp;function sp(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?fa(this._events):[]};function op(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function zx(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function $x(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function Gx(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))}ap(t,e,s,{once:!0}),e!=="error"&&Yx(t,i,{once:!0})})}function Yx(t,e,r){typeof t.on=="function"&&ap(t,"error",e,r)}function ap(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 _p=N((xN,Sp)=>{Sp.exports=cl;var bp=128,tb=127,rb=~tb,nb=Math.pow(2,31);function cl(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw cl.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=nb;)e[r++]=t&255|bp,t/=128;for(;t&rb;)e[r++]=t&255|bp,t>>>=7;return e[r]=t|0,cl.bytes=r-n+1,e}});var Ip=N((bN,Cp)=>{Cp.exports=ul;var ib=128,Ap=127;function ul(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a||i>49)throw ul.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Ap)<<i:(o&Ap)*Math.pow(2,i),i+=7}while(o>=ib);return ul.bytes=s-n,r}});var Rp=N((SN,Tp)=>{var sb=Math.pow(2,7),ob=Math.pow(2,14),ab=Math.pow(2,21),cb=Math.pow(2,28),ub=Math.pow(2,35),lb=Math.pow(2,42),fb=Math.pow(2,49),hb=Math.pow(2,56),db=Math.pow(2,63);Tp.exports=function(t){return t<sb?1:t<ob?2:t<ab?3:t<cb?4:t<ub?5:t<lb?6:t<fb?7:t<hb?8:t<db?9:10}});var ga=N((_N,Np)=>{Np.exports={encode:_p(),decode:Ip(),encodingLength:Rp()}});var zp=N((rD,Hp)=>{"use strict";Hp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var Xp=N((Wp,Qp)=>{"use strict";var ba=zp(),{hasOwnProperty:Gp}=Object.prototype,{propertyIsEnumerable:Bb}=Object,Vi=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),Ob=Wp,$p={concatArrays:!1,ignoreUndefined:!1},Sa=t=>{let e=[];for(let r in t)Gp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Bb.call(t,n)&&e.push(n)}return e};function qi(t){return Array.isArray(t)?kb(t):ba(t)?Ub(t):t}function kb(t){let e=t.slice(0,0);return Sa(t).forEach(r=>{Vi(e,r,qi(t[r]))}),e}function Ub(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Sa(t).forEach(r=>{Vi(e,r,qi(t[r]))}),e}var Yp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?Vi(t,i,xl(t[i],e[i],n)):Vi(t,i,qi(e[i])))}),t),Mb=(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++)Gp.call(s,a)&&(o.push(String(a)),s===t?Vi(n,i++,s[a]):Vi(n,i++,qi(s[a])));n=Yp(n,s,Sa(s).filter(a=>!o.includes(a)),r)}),n};function xl(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?Mb(t,e,r):!ba(e)||!ba(t)?qi(e):Yp(t,e,Sa(e),r)}Qp.exports=function(...t){let e=xl(qi($p),this!==Ob&&this||{},$p),r={_:{}};for(let n of t)if(n!==void 0){if(!ba(n))throw new TypeError("`"+n+"` is not an Option Object");r=xl(r,{_:n},e)}return r._}});var Vs=N((ID,e0)=>{e0.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 r0=N((RD,t0)=>{t0.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 i0=N((ND,n0)=>{var Vb=r0();n0.exports=Vb});var Dt=N((LD,s0)=>{s0.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 zi=N((BD,a0)=>{var Sl=Vs(),qb=i0(),o0=Dt();a0.exports=class extends Sl{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 Sl?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 Sl))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 o0(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 o0(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 l0=N((OD,u0)=>{var Hb=zi(),zb=Dt(),c0="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} ",_l=class extends Hb{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:c0})}_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 zb;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(c0,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)})})}};u0.exports=_l});var d0=N((kD,h0)=>{var $b=zi(),Gb=Dt();function f0(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 qs=class extends $b{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=f0(this.client)}):(this._initCollection(),this._driverVersion=f0(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?qs.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 Gb,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)}};h0.exports=qs});var m0=N((UD,p0)=>{var Yb=zi(),Wb=Dt(),Al=class extends Yb{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 Wb,[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
3
|
ON DUPLICATE KEY UPDATE
|
|
4
4
|
points = ?,
|
|
5
5
|
expire = ?;`,h=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
6
6
|
ON DUPLICATE KEY UPDATE
|
|
7
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"))}};
|
|
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"))}};p0.exports=Al});var g0=N((MD,y0)=>{var Qb=zi(),Xb=Dt(),Cl=class extends Qb{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
9
|
key varchar(255) PRIMARY KEY,
|
|
10
10
|
points integer NOT NULL DEFAULT 0,
|
|
11
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
|
|
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 Xb,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
13
|
WHEN ${this.tableName}.expire <= $4 THEN $3
|
|
14
14
|
ELSE ${this.tableName}.expire
|
|
15
15
|
END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
|
|
@@ -21,32 +21,32 @@
|
|
|
21
21
|
END,
|
|
22
22
|
expire = ${o}
|
|
23
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"))}};C0.exports=Tl});var T0=R(()=>{});var Zn=R(()=>{});var N0=R((iL,R0)=>{R0.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 L0=R((oL,D0)=>{var d2=N0(),Rl=Nt();D0.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 Rl(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 d2(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 Rl(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 Rl(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 Dl=R((aL,B0)=>{var p2=qs(),m2=L0(),P0=Nt(),Nl=class extends p2{constructor(e={}){super(e),this._memoryStorage=new m2}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 P0(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 P0(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)))}};B0.exports=Nl});var V0=R((cL,K0)=>{var O0=T0(),y2=Zn(),g2=qs(),U0=Dl(),E2=Nt(),Ft="rate_limiter_flexible",Wi=null,k0=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:Ft,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},M0=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&M0.call(this,t)},30)},Gi=function(t,e,r,n,i){let s={channel:Ft,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):M0.call(this,s)},F0=function(t,e){if(!e||e.channel!==Ft||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=>{k0(t,e,"resolve",n)}).catch(n=>{k0(t,e,"reject",n)})},v2=function(t){if(!t||t.channel!==Ft||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 E2(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]}},w2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Yi=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=y2.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},Ll=class{constructor(){if(Wi)return Wi;this._rateLimiters={},O0.setMaxListeners(0),O0.on("message",(e,r)=>{r&&r.channel===Ft&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new U0(r.opts)),e.send({channel:Ft,type:"init",keyPrefix:r.opts.keyPrefix})):F0.call(this,e,r)}),Wi=this}},Pl=class{constructor(e){if(Wi)return Wi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Ft&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new U0(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Ft,channel:Ft,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Ft,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};F0.call(this,o,s)}})}),Wi=this}},Bl=class extends g2{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===Ft&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:v2.call(this,r)}),process.send({channel:Ft,type:"init",opts:w2.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=Yi.call(this,i,s);Gi.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=Yi.call(this,i,s);Gi.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=Yi.call(this,i,s);Gi.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=Yi.call(this,i,s);Gi.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=Yi.call(this,n,i);Gi.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=Yi.call(this,n,i);Gi.call(this,"delete",s,e,r)})}};K0.exports={RateLimiterClusterMaster:Ll,RateLimiterClusterMasterPM2:Pl,RateLimiterCluster:Bl}});var H0=R((uL,q0)=>{var x2=$i(),b2=Nt(),Ol=class extends x2{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new b2;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)})})})}};q0.exports=Ol});var G0=R((fL,$0)=>{var z0=Nt();$0.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 z0(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new z0(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 W0=R((dL,Y0)=>{var S2=qs();Y0.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 S2))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 X0=R((mL,Q0)=>{Q0.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var em=R((gL,J0)=>{var j0=X0(),Z0=4294967295,kl="limiter";J0.exports=class{constructor(e,r={maxQueueSize:Z0}){this._queueLimiters={KEY_DEFAULT:new Ta(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=kl){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=kl){return this._queueLimiters[r]||(this._queueLimiters[r]=new Ta(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Ta=class{constructor(e,r={maxQueueSize:Z0,key:kl}){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 j0(`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 j0(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var rm=R((vL,tm)=>{var Ul=Nt();tm.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return new Ul(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 Ul?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Ul?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var im=R((wL,nm)=>{var _2=w0(),A2=S0(),C2=A0(),I2=I0(),{RateLimiterClusterMaster:T2,RateLimiterClusterMasterPM2:R2,RateLimiterCluster:N2}=V0(),D2=Dl(),L2=H0(),P2=G0(),B2=W0(),O2=em(),k2=rm(),U2=Nt();nm.exports={RateLimiterRedis:_2,RateLimiterMongo:A2,RateLimiterMySQL:C2,RateLimiterPostgres:I2,RateLimiterMemory:D2,RateLimiterMemcache:L2,RateLimiterClusterMaster:T2,RateLimiterClusterMasterPM2:R2,RateLimiterCluster:N2,RLWrapperBlackAndWhite:P2,RateLimiterUnion:B2,RateLimiterQueue:O2,BurstyRateLimiter:k2,RateLimiterRes:U2}});var dm=R((GL,hm)=>{"use strict";hm.exports=Y2;function Y2(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 gm=R(ym=>{"use strict";var Ba=ym;Ba.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 Xi=new Array(64),mm=new Array(123);for(Zt=0;Zt<64;)mm[Xi[Zt]=Zt<26?Zt+65:Zt<52?Zt+71:Zt<62?Zt-4:Zt-59|43]=Zt++;var Zt;Ba.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++]=Xi[u>>2],c=(u&3)<<4,a=1;break;case 1:s[o++]=Xi[c|u>>4],c=(u&15)<<2,a=2;break;case 2:s[o++]=Xi[c|u>>6],s[o++]=Xi[u&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=Xi[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 pm="invalid encoding";Ba.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=mm[c])===void 0)throw Error(pm);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(pm);return n-i};Ba.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var vm=R((WL,Em)=>{"use strict";Em.exports=Oa;function Oa(){this._listeners={}}Oa.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Oa.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};Oa.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 Cm=R((QL,Am)=>{"use strict";Am.exports=wm(wm);function wm(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,xm),t.writeFloatBE=e.bind(null,bm);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,Sm),t.readFloatBE=r.bind(null,_m)}(),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,xm,0,4),t.writeDoubleBE=e.bind(null,bm,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,Sm,0,4),t.readDoubleBE=r.bind(null,_m,4,0)}(),t}function xm(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 bm(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 Sm(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function _m(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Im=R((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 Rm=R(Tm=>{"use strict";var ql=Tm;ql.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};ql.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))};ql.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 Dm=R((jL,Nm)=>{"use strict";Nm.exports=W2;function W2(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 Pm=R((ZL,Lm)=>{"use strict";Lm.exports=ut;var Qs=ti();function ut(t,e){this.lo=t>>>0,this.hi=e>>>0}var ei=ut.zero=new ut(0,0);ei.toNumber=function(){return 0};ei.zzEncode=ei.zzDecode=function(){return this};ei.length=function(){return 1};var Q2=ut.zeroHash="\0\0\0\0\0\0\0\0";ut.fromNumber=function(e){if(e===0)return ei;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(Qs.isString(e))if(Qs.Long)e=Qs.Long.fromString(e);else return ut.fromNumber(parseInt(e,10));return e.low||e.high?new ut(e.low>>>0,e.high>>>0):ei};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 Qs.Long?new Qs.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===Q2?ei: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 ti=R(Hl=>{"use strict";var H=Hl;H.asPromise=dm();H.base64=gm();H.EventEmitter=vm();H.float=Cm();H.inquire=Im();H.utf8=Rm();H.pool=Dm();H.LongBits=Pm();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||Hl;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 Bm(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=Bm;H.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Om(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&&Bm(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=Om;H.ProtocolError=Om("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 Gl=R((eP,Km)=>{"use strict";Km.exports=je;var mr=ti(),$l,Mm=mr.LongBits,X2=mr.utf8;function Jt(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 km=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")},Fm=function(){return mr.Buffer?function(r){return(je.create=function(i){return mr.Buffer.isBuffer(i)?new $l(i):km(i)})(r)}:km};je.create=Fm();je.prototype._slice=mr.Array.prototype.subarray||mr.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,Jt(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 zl(){var t=new Mm(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 Jt(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 Jt(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 ka(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 Jt(this,4);return ka(this.buf,this.pos+=4)};je.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Jt(this,4);return ka(this.buf,this.pos+=4)|0};function Um(){if(this.pos+8>this.len)throw Jt(this,8);return new Mm(ka(this.buf,this.pos+=4),ka(this.buf,this.pos+=4))}je.prototype.float=function(){if(this.pos+4>this.len)throw Jt(this,4);var e=mr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};je.prototype.double=function(){if(this.pos+8>this.len)throw Jt(this,4);var e=mr.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 Jt(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 X2.read(e,0,e.length)};je.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Jt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Jt(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){$l=t,je.create=Fm(),$l._configure();var e=mr.Long?"toLong":"toNumber";mr.merge(je.prototype,{int64:function(){return zl.call(this)[e](!1)},uint64:function(){return zl.call(this)[e](!0)},sint64:function(){return zl.call(this).zzDecode()[e](!1)},fixed64:function(){return Um.call(this)[e](!0)},sfixed64:function(){return Um.call(this)[e](!1)}})}});var zm=R((tP,Hm)=>{"use strict";Hm.exports=ri;var qm=Gl();(ri.prototype=Object.create(qm.prototype)).constructor=ri;var Vm=ti();function ri(t){qm.call(this,t)}ri._configure=function(){Vm.Buffer&&(ri.prototype._slice=Vm.Buffer.prototype.slice)};ri.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))};ri._configure()});var Jl=R((rP,Wm)=>{"use strict";Wm.exports=de;var Kt=ti(),Yl,Ua=Kt.LongBits,$m=Kt.base64,Gm=Kt.utf8;function Xs(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function Ql(){}function j2(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 Xs(Ql,0,0),this.tail=this.head,this.states=null}var Ym=function(){return Kt.Buffer?function(){return(de.create=function(){return new Yl})()}:function(){return new de}};de.create=Ym();de.alloc=function(e){return new Kt.Array(e)};Kt.Array!==Array&&(de.alloc=Kt.pool(de.alloc,Kt.Array.prototype.subarray));de.prototype._push=function(e,r,n){return this.tail=this.tail.next=new Xs(e,r,n),this.len+=r,this};function Xl(t,e,r){e[r]=t&255}function Z2(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(Xs.prototype);jl.prototype.fn=Z2;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(Zl,10,Ua.fromNumber(e)):this.uint32(e)};de.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Zl(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=Ua.from(e);return this._push(Zl,r.length(),r)};de.prototype.int64=de.prototype.uint64;de.prototype.sint64=function(e){var r=Ua.from(e).zzEncode();return this._push(Zl,r.length(),r)};de.prototype.bool=function(e){return this._push(Xl,1,e?1:0)};function Wl(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(Wl,4,e>>>0)};de.prototype.sfixed32=de.prototype.fixed32;de.prototype.fixed64=function(e){var r=Ua.from(e);return this._push(Wl,4,r.lo)._push(Wl,4,r.hi)};de.prototype.sfixed64=de.prototype.fixed64;de.prototype.float=function(e){return this._push(Kt.float.writeFloatLE,4,e)};de.prototype.double=function(e){return this._push(Kt.float.writeDoubleLE,8,e)};var J2=Kt.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(Xl,1,0);if(Kt.isString(e)){var n=de.alloc(r=$m.length(e));$m.decode(e,n,0),e=n}return this.uint32(r)._push(J2,r,e)};de.prototype.string=function(e){var r=Gm.length(e);return r?this.uint32(r)._push(Gm.write,r,e):this._push(Xl,1,0)};de.prototype.fork=function(){return this.states=new j2(this),this.head=this.tail=new Xs(Ql,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 Xs(Ql,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){Yl=t,de.create=Ym(),Yl._configure()}});var jm=R((nP,Xm)=>{"use strict";Xm.exports=yr;var Qm=Jl();(yr.prototype=Object.create(Qm.prototype)).constructor=yr;var vn=ti();function yr(){Qm.call(this)}yr._configure=function(){yr.alloc=vn._Buffer_allocUnsafe,yr.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++]}};yr.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(yr.writeBytesBuffer,r,e),this};function eS(t,e,r){t.length<40?vn.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}yr.prototype.string=function(e){var r=vn.Buffer.byteLength(e);return this.uint32(r),r&&this._push(eS,r,e),this};yr._configure()});var wy=R(to=>{(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}(),to.ip2long=o,to.long2ip=a,to.Netmask=t}).call(to)});var _y=R((Sy,Wa)=>{(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 P=0;P<B.length;P++)D.push(parseInt(B[P],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 Wa<"u"&&Wa.exports?Wa.exports=h:t.ipaddr=h})(Sy)});var Dy=R((_4,Ny)=>{"use strict";function TS(t){return t>=55296&&t<=56319}function RS(t){return t>=56320&&t<=57343}Ny.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],TS(o)&&RS(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 Py=R((A4,Ly)=>{"use strict";function NS(t){return t>=55296&&t<=56319}function DS(t){return t>=56320&&t<=57343}Ly.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),DS(i)?s!=null&&NS(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 Oy=R((C4,By)=>{"use strict";var LS=Dy(),PS=Py();By.exports=LS.bind(null,PS)});var My=R((I4,Uy)=>{"use strict";var BS=Oy(),OS=/[\/\?<>\\:\*\|"]/g,kS=/[\x00-\x1f\x80-\x9f]/g,US=/^\.+$/,MS=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,FS=/[\. ]+$/;function ky(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(OS,e).replace(kS,e).replace(US,e).replace(MS,e).replace(FS,e);return BS(r,255)}Uy.exports=function(t,e){var r=e&&e.replacement||"",n=ky(t,r);return r===""?n:ky(n,"")}});var ie=R((T4,Fy)=>{Fy.exports={options:{usePureJavaScript:!1}}});var qy=R((R4,Vy)=>{var pf={};Vy.exports=pf;var Ky={};pf.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=KS(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};pf.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=Ky[e];if(!r){r=Ky[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 KS(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=R((N4,Gy)=>{var Hy=ie(),zy=qy(),w=Gy.exports=Hy.util=Hy.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 no(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=mf;function mf(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 mf||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=mf;var VS=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>VS&&(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){no(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){no(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 qS(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=qS;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){no(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 no(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){no(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 bn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Sn=[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],$y="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+=bn.charAt(i>>2),r+=bn.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=bn.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":bn.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=
|
|
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=Sn[t.charCodeAt(c++)-43],s=Sn[t.charCodeAt(c++)-43],o=Sn[t.charCodeAt(c++)-43],a=Sn[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,$y,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,$y,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 yf=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}},gf=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},HS=function(t,e,r,n){var i=gf(t,e);i===null&&(i={}),i[r]=n,yf(t,e,i)},zS=function(t,e,r){var n=gf(t,e);return n!==null&&(n=r in n?n[r]:null),n},$S=function(t,e,r){var n=gf(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),yf(t,e,n)}},GS=function(t,e){yf(t,e,null)},Ja=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){Ja(HS,arguments,i)};w.getItem=function(t,e,r,n){return Ja(zS,arguments,n)};w.removeItem=function(t,e,r,n){Ja($S,arguments,n)};w.clearItems=function(t,e,r){Ja(GS,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 vf=R((D4,Yy)=>{var lt=ie();De();Yy.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 Ef=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)};Ef.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)};Ef.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()};Ef.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 xf=R((L4,Wy)=>{var ft=ie();De();ft.cipher=ft.cipher||{};var se=Wy.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=ec(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=ec(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=ec(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=ec(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}tc(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(wf(n*8)))}this._inBlock=this._j0.slice(0),tc(this._inBlock),this._partialBytes=0,r=ft.util.createBuffer(r),this._aDataLength=wf(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),tc(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),tc(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(wf(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 ec(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 tc(t){t[t.length-1]=t[t.length-1]+1&4294967295}function wf(t){return[t/4294967296|0,t&4294967295]}});var rs=R((P4,Zy)=>{var Le=ie();vf();xf();De();Zy.exports=Le.aes=Le.aes||{};Le.aes.startEncrypting=function(t,e,r,n){var i=rc({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};Le.aes.createEncryptionCipher=function(t,e){return rc({key:t,output:null,decrypt:!1,mode:e})};Le.aes.startDecrypting=function(t,e,r,n){var i=rc({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};Le.aes.createDecryptionCipher=function(t,e){return rc({key:t,output:null,decrypt:!0,mode:e})};Le.aes.Algorithm=function(t,e){_f||Xy();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Sf(r._w,n,i,!1)},decrypt:function(n,i){return Sf(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=jy(e,t.decrypt&&!o),this._init=!0}};Le.aes._expandKey=function(t,e){return _f||Xy(),jy(t,e)};Le.aes._updateBlock=Sf;ts("AES-ECB",Le.cipher.modes.ecb);ts("AES-CBC",Le.cipher.modes.cbc);ts("AES-CFB",Le.cipher.modes.cfb);ts("AES-OFB",Le.cipher.modes.ofb);ts("AES-CTR",Le.cipher.modes.ctr);ts("AES-GCM",Le.cipher.modes.gcm);function ts(t,e){var r=function(){return new Le.aes.Algorithm(t,e)};Le.cipher.registerAlgorithm(t,r)}var _f=!1,es=4,Et,bf,Qy,si,rr;function Xy(){_f=!0,Qy=[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;Et=new Array(256),bf=new Array(256),si=new Array(4),rr=new Array(4);for(var e=0;e<4;++e)si[e]=new Array(256),rr[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,Et[r]=a,bf[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)si[f][r]=u,rr[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 jy(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=es*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=Et[n>>>16&255]<<24^Et[n>>>8&255]<<16^Et[n&255]<<8^Et[n>>>24]^Qy[i]<<24,i++):s>6&&c%s===4&&(n=Et[n>>>24]<<24^Et[n>>>16&255]<<16^Et[n>>>8&255]<<8^Et[n&255]),r[c]=r[c-s]^n;if(e){var u,l=rr[0],f=rr[1],h=rr[2],d=rr[3],p=r.slice(0);a=r.length;for(var c=0,y=a-es;c<a;c+=es,y-=es)if(c===0||c===a-es)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<es;++g)u=r[y+g],p[c+(3&-g)]=l[Et[u>>>24]]^f[Et[u>>>16&255]]^h[Et[u>>>8&255]]^d[Et[u&255]];r=p}return r}function Sf(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=rr[0],o=rr[1],a=rr[2],c=rr[3],u=bf):(s=si[0],o=si[1],a=si[2],c=si[3],u=Et);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 rc(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 ns=R((B4,Jy)=>{var io=ie();io.pki=io.pki||{};var Af=Jy.exports=io.pki.oids=io.oids=io.oids||{};function N(t,e){Af[t]=e,Af[e]=t}function Ee(t,e){Af[t]=e}N("1.2.840.113549.1.1.1","rsaEncryption");N("1.2.840.113549.1.1.4","md5WithRSAEncryption");N("1.2.840.113549.1.1.5","sha1WithRSAEncryption");N("1.2.840.113549.1.1.7","RSAES-OAEP");N("1.2.840.113549.1.1.8","mgf1");N("1.2.840.113549.1.1.9","pSpecified");N("1.2.840.113549.1.1.10","RSASSA-PSS");N("1.2.840.113549.1.1.11","sha256WithRSAEncryption");N("1.2.840.113549.1.1.12","sha384WithRSAEncryption");N("1.2.840.113549.1.1.13","sha512WithRSAEncryption");N("1.3.101.112","EdDSA25519");N("1.2.840.10040.4.3","dsa-with-sha1");N("1.3.14.3.2.7","desCBC");N("1.3.14.3.2.26","sha1");N("1.3.14.3.2.29","sha1WithRSASignature");N("2.16.840.1.101.3.4.2.1","sha256");N("2.16.840.1.101.3.4.2.2","sha384");N("2.16.840.1.101.3.4.2.3","sha512");N("2.16.840.1.101.3.4.2.4","sha224");N("2.16.840.1.101.3.4.2.5","sha512-224");N("2.16.840.1.101.3.4.2.6","sha512-256");N("1.2.840.113549.2.2","md2");N("1.2.840.113549.2.5","md5");N("1.2.840.113549.1.7.1","data");N("1.2.840.113549.1.7.2","signedData");N("1.2.840.113549.1.7.3","envelopedData");N("1.2.840.113549.1.7.4","signedAndEnvelopedData");N("1.2.840.113549.1.7.5","digestedData");N("1.2.840.113549.1.7.6","encryptedData");N("1.2.840.113549.1.9.1","emailAddress");N("1.2.840.113549.1.9.2","unstructuredName");N("1.2.840.113549.1.9.3","contentType");N("1.2.840.113549.1.9.4","messageDigest");N("1.2.840.113549.1.9.5","signingTime");N("1.2.840.113549.1.9.6","counterSignature");N("1.2.840.113549.1.9.7","challengePassword");N("1.2.840.113549.1.9.8","unstructuredAddress");N("1.2.840.113549.1.9.14","extensionRequest");N("1.2.840.113549.1.9.20","friendlyName");N("1.2.840.113549.1.9.21","localKeyId");N("1.2.840.113549.1.9.22.1","x509Certificate");N("1.2.840.113549.1.12.10.1.1","keyBag");N("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");N("1.2.840.113549.1.12.10.1.3","certBag");N("1.2.840.113549.1.12.10.1.4","crlBag");N("1.2.840.113549.1.12.10.1.5","secretBag");N("1.2.840.113549.1.12.10.1.6","safeContentsBag");N("1.2.840.113549.1.5.13","pkcs5PBES2");N("1.2.840.113549.1.5.12","pkcs5PBKDF2");N("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");N("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");N("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");N("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");N("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");N("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");N("1.2.840.113549.2.7","hmacWithSHA1");N("1.2.840.113549.2.8","hmacWithSHA224");N("1.2.840.113549.2.9","hmacWithSHA256");N("1.2.840.113549.2.10","hmacWithSHA384");N("1.2.840.113549.2.11","hmacWithSHA512");N("1.2.840.113549.3.7","des-EDE3-CBC");N("2.16.840.1.101.3.4.1.2","aes128-CBC");N("2.16.840.1.101.3.4.1.22","aes192-CBC");N("2.16.840.1.101.3.4.1.42","aes256-CBC");N("2.5.4.3","commonName");N("2.5.4.4","surname");N("2.5.4.5","serialNumber");N("2.5.4.6","countryName");N("2.5.4.7","localityName");N("2.5.4.8","stateOrProvinceName");N("2.5.4.9","streetAddress");N("2.5.4.10","organizationName");N("2.5.4.11","organizationalUnitName");N("2.5.4.12","title");N("2.5.4.13","description");N("2.5.4.15","businessCategory");N("2.5.4.17","postalCode");N("2.5.4.42","givenName");N("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");N("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");N("2.16.840.1.113730.1.1","nsCertType");N("2.16.840.1.113730.1.13","nsComment");Ee("2.5.29.1","authorityKeyIdentifier");Ee("2.5.29.2","keyAttributes");Ee("2.5.29.3","certificatePolicies");Ee("2.5.29.4","keyUsageRestriction");Ee("2.5.29.5","policyMapping");Ee("2.5.29.6","subtreesConstraint");Ee("2.5.29.7","subjectAltName");Ee("2.5.29.8","issuerAltName");Ee("2.5.29.9","subjectDirectoryAttributes");Ee("2.5.29.10","basicConstraints");Ee("2.5.29.11","nameConstraints");Ee("2.5.29.12","policyConstraints");Ee("2.5.29.13","basicConstraints");N("2.5.29.14","subjectKeyIdentifier");N("2.5.29.15","keyUsage");Ee("2.5.29.16","privateKeyUsagePeriod");N("2.5.29.17","subjectAltName");N("2.5.29.18","issuerAltName");N("2.5.29.19","basicConstraints");Ee("2.5.29.20","cRLNumber");Ee("2.5.29.21","cRLReason");Ee("2.5.29.22","expirationDate");Ee("2.5.29.23","instructionCode");Ee("2.5.29.24","invalidityDate");Ee("2.5.29.25","cRLDistributionPoints");Ee("2.5.29.26","issuingDistributionPoint");Ee("2.5.29.27","deltaCRLIndicator");Ee("2.5.29.28","issuingDistributionPoint");Ee("2.5.29.29","certificateIssuer");Ee("2.5.29.30","nameConstraints");N("2.5.29.31","cRLDistributionPoints");N("2.5.29.32","certificatePolicies");Ee("2.5.29.33","policyMappings");Ee("2.5.29.34","policyConstraints");N("2.5.29.35","authorityKeyIdentifier");Ee("2.5.29.36","policyConstraints");N("2.5.29.37","extKeyUsage");Ee("2.5.29.46","freshestCRL");Ee("2.5.29.54","inhibitAnyPolicy");N("1.3.6.1.4.1.11129.2.4.2","timestampList");N("1.3.6.1.5.5.7.1.1","authorityInfoAccess");N("1.3.6.1.5.5.7.3.1","serverAuth");N("1.3.6.1.5.5.7.3.2","clientAuth");N("1.3.6.1.5.5.7.3.3","codeSigning");N("1.3.6.1.5.5.7.3.4","emailProtection");N("1.3.6.1.5.5.7.3.8","timeStamping")});var _n=R((O4,tg)=>{var Be=ie();De();ns();var k=tg.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 so(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 YS=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;so(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=nc(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 nc(t,e,r,n){var i;so(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=YS(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(so(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(nc(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(nc(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&&(so(t,e,1),y=t.getByte(),e--),y===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},E=nc(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)so(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 eg=/[^\\u0000-\\u00ff]/;k.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
|
|
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"))}};y0.exports=Cl});var E0=N(()=>{});var Zn=N(()=>{});var w0=N((zD,v0)=>{v0.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 b0=N((GD,x0)=>{var jb=w0(),Il=Dt();x0.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 Il(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 jb(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 Il(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 Il(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 Rl=N((YD,_0)=>{var Zb=Vs(),Jb=b0(),S0=Dt(),Tl=class extends Zb{constructor(e={}){super(e),this._memoryStorage=new Jb}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 S0(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 S0(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)))}};_0.exports=Tl});var D0=N((WD,N0)=>{var A0=E0(),e2=Zn(),t2=Vs(),I0=Rl(),r2=Dt(),Kt="rate_limiter_flexible",Yi=null,C0=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})},T0=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&T0.call(this,t)},30)},$i=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):T0.call(this,s)},R0=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=>{C0(t,e,"resolve",n)}).catch(n=>{C0(t,e,"reject",n)})},n2=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 r2(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]}},i2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Gi=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=e2.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},Nl=class{constructor(){if(Yi)return Yi;this._rateLimiters={},A0.setMaxListeners(0),A0.on("message",(e,r)=>{r&&r.channel===Kt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new I0(r.opts)),e.send({channel:Kt,type:"init",keyPrefix:r.opts.keyPrefix})):R0.call(this,e,r)}),Yi=this}},Dl=class{constructor(e){if(Yi)return Yi;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 I0(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)})}};R0.call(this,o,s)}})}),Yi=this}},Ll=class extends t2{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:n2.call(this,r)}),process.send({channel:Kt,type:"init",opts:i2.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=Gi.call(this,i,s);$i.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=Gi.call(this,i,s);$i.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=Gi.call(this,i,s);$i.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=Gi.call(this,i,s);$i.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=Gi.call(this,n,i);$i.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=Gi.call(this,n,i);$i.call(this,"delete",s,e,r)})}};N0.exports={RateLimiterClusterMaster:Nl,RateLimiterClusterMasterPM2:Dl,RateLimiterCluster:Ll}});var P0=N((QD,L0)=>{var s2=zi(),o2=Dt(),Pl=class extends s2{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new o2;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)})})})}};L0.exports=Pl});var k0=N((jD,O0)=>{var B0=Dt();O0.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 B0(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new B0(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 M0=N((JD,U0)=>{var a2=Vs();U0.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 a2))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 K0=N((tL,F0)=>{F0.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 z0=N((nL,H0)=>{var V0=K0(),q0=4294967295,Bl="limiter";H0.exports=class{constructor(e,r={maxQueueSize:q0}){this._queueLimiters={KEY_DEFAULT:new Ta(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=Bl){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=Bl){return this._queueLimiters[r]||(this._queueLimiters[r]=new Ta(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Ta=class{constructor(e,r={maxQueueSize:q0,key:Bl}){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 V0(`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 V0(`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 G0=N((sL,$0)=>{var Ol=Dt();$0.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return new Ol(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 Ol?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Ol?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var W0=N((oL,Y0)=>{var c2=l0(),u2=d0(),l2=m0(),f2=g0(),{RateLimiterClusterMaster:h2,RateLimiterClusterMasterPM2:d2,RateLimiterCluster:p2}=D0(),m2=Rl(),y2=P0(),g2=k0(),E2=M0(),v2=z0(),w2=G0(),x2=Dt();Y0.exports={RateLimiterRedis:c2,RateLimiterMongo:u2,RateLimiterMySQL:l2,RateLimiterPostgres:f2,RateLimiterMemory:m2,RateLimiterMemcache:y2,RateLimiterClusterMaster:h2,RateLimiterClusterMasterPM2:d2,RateLimiterCluster:p2,RLWrapperBlackAndWhite:g2,RateLimiterUnion:E2,RateLimiterQueue:v2,BurstyRateLimiter:w2,RateLimiterRes:x2}});var nm=N((DL,rm)=>{"use strict";rm.exports=D2;function D2(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 am=N(om=>{"use strict";var Ba=om;Ba.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 Qi=new Array(64),sm=new Array(123);for(tr=0;tr<64;)sm[Qi[tr]=tr<26?tr+65:tr<52?tr+71:tr<62?tr-4:tr-59|43]=tr++;var tr;Ba.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++]=Qi[u>>2],c=(u&3)<<4,a=1;break;case 1:s[o++]=Qi[c|u>>4],c=(u&15)<<2,a=2;break;case 2:s[o++]=Qi[c|u>>6],s[o++]=Qi[u&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=Qi[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 im="invalid encoding";Ba.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=sm[c])===void 0)throw Error(im);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(im);return n-i};Ba.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var um=N((PL,cm)=>{"use strict";cm.exports=Oa;function Oa(){this._listeners={}}Oa.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Oa.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};Oa.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 ym=N((BL,mm)=>{"use strict";mm.exports=lm(lm);function lm(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,fm),t.writeFloatBE=e.bind(null,hm);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,dm),t.readFloatBE=r.bind(null,pm)}(),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,fm,0,4),t.writeDoubleBE=e.bind(null,hm,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,dm,0,4),t.readDoubleBE=r.bind(null,pm,4,0)}(),t}function fm(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 hm(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 dm(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function pm(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var gm=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 vm=N(Em=>{"use strict";var Kl=Em;Kl.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};Kl.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))};Kl.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 xm=N((kL,wm)=>{"use strict";wm.exports=L2;function L2(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 Sm=N((UL,bm)=>{"use strict";bm.exports=ut;var Ws=ti();function ut(t,e){this.lo=t>>>0,this.hi=e>>>0}var ei=ut.zero=new ut(0,0);ei.toNumber=function(){return 0};ei.zzEncode=ei.zzDecode=function(){return this};ei.length=function(){return 1};var P2=ut.zeroHash="\0\0\0\0\0\0\0\0";ut.fromNumber=function(e){if(e===0)return ei;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(Ws.isString(e))if(Ws.Long)e=Ws.Long.fromString(e);else return ut.fromNumber(parseInt(e,10));return e.low||e.high?new ut(e.low>>>0,e.high>>>0):ei};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 Ws.Long?new Ws.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===P2?ei: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 ti=N(Vl=>{"use strict";var H=Vl;H.asPromise=nm();H.base64=am();H.EventEmitter=um();H.float=ym();H.inquire=gm();H.utf8=vm();H.pool=xm();H.LongBits=Sm();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||Vl;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 _m(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=_m;H.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Am(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&&_m(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=Am;H.ProtocolError=Am("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 zl=N((FL,Nm)=>{"use strict";Nm.exports=je;var Er=ti(),Hl,Tm=Er.LongBits,B2=Er.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 Cm=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")},Rm=function(){return Er.Buffer?function(r){return(je.create=function(i){return Er.Buffer.isBuffer(i)?new Hl(i):Cm(i)})(r)}:Cm};je.create=Rm();je.prototype._slice=Er.Array.prototype.subarray||Er.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 ql(){var t=new Tm(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 ka(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 ka(this.buf,this.pos+=4)};je.prototype.sfixed32=function(){if(this.pos+4>this.len)throw rr(this,4);return ka(this.buf,this.pos+=4)|0};function Im(){if(this.pos+8>this.len)throw rr(this,8);return new Tm(ka(this.buf,this.pos+=4),ka(this.buf,this.pos+=4))}je.prototype.float=function(){if(this.pos+4>this.len)throw rr(this,4);var e=Er.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=Er.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 B2.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){Hl=t,je.create=Rm(),Hl._configure();var e=Er.Long?"toLong":"toNumber";Er.merge(je.prototype,{int64:function(){return ql.call(this)[e](!1)},uint64:function(){return ql.call(this)[e](!0)},sint64:function(){return ql.call(this).zzDecode()[e](!1)},fixed64:function(){return Im.call(this)[e](!0)},sfixed64:function(){return Im.call(this)[e](!1)}})}});var Bm=N((KL,Pm)=>{"use strict";Pm.exports=ri;var Lm=zl();(ri.prototype=Object.create(Lm.prototype)).constructor=ri;var Dm=ti();function ri(t){Lm.call(this,t)}ri._configure=function(){Dm.Buffer&&(ri.prototype._slice=Dm.Buffer.prototype.slice)};ri.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))};ri._configure()});var jl=N((VL,Mm)=>{"use strict";Mm.exports=de;var Vt=ti(),$l,Ua=Vt.LongBits,Om=Vt.base64,km=Vt.utf8;function Qs(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function Yl(){}function O2(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 Qs(Yl,0,0),this.tail=this.head,this.states=null}var Um=function(){return Vt.Buffer?function(){return(de.create=function(){return new $l})()}:function(){return new de}};de.create=Um();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 Qs(e,r,n),this.len+=r,this};function Wl(t,e,r){e[r]=t&255}function k2(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Ql(t,e){this.len=t,this.next=void 0,this.val=e}Ql.prototype=Object.create(Qs.prototype);Ql.prototype.fn=k2;de.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Ql((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(Xl,10,Ua.fromNumber(e)):this.uint32(e)};de.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Xl(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=Ua.from(e);return this._push(Xl,r.length(),r)};de.prototype.int64=de.prototype.uint64;de.prototype.sint64=function(e){var r=Ua.from(e).zzEncode();return this._push(Xl,r.length(),r)};de.prototype.bool=function(e){return this._push(Wl,1,e?1:0)};function Gl(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(Gl,4,e>>>0)};de.prototype.sfixed32=de.prototype.fixed32;de.prototype.fixed64=function(e){var r=Ua.from(e);return this._push(Gl,4,r.lo)._push(Gl,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 U2=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(Wl,1,0);if(Vt.isString(e)){var n=de.alloc(r=Om.length(e));Om.decode(e,n,0),e=n}return this.uint32(r)._push(U2,r,e)};de.prototype.string=function(e){var r=km.length(e);return r?this.uint32(r)._push(km.write,r,e):this._push(Wl,1,0)};de.prototype.fork=function(){return this.states=new O2(this),this.head=this.tail=new Qs(Yl,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 Qs(Yl,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){$l=t,de.create=Um(),$l._configure()}});var Vm=N((qL,Km)=>{"use strict";Km.exports=vr;var Fm=jl();(vr.prototype=Object.create(Fm.prototype)).constructor=vr;var vn=ti();function vr(){Fm.call(this)}vr._configure=function(){vr.alloc=vn._Buffer_allocUnsafe,vr.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++]}};vr.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(vr.writeBytesBuffer,r,e),this};function M2(t,e,r){t.length<40?vn.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}vr.prototype.string=function(e){var r=vn.Buffer.byteLength(e);return this.uint32(r),r&&this._push(M2,r,e),this};vr._configure()});var uy=N(eo=>{(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}(),eo.ip2long=o,eo.long2ip=a,eo.Netmask=t}).call(eo)});var dy=N((hy,Wa)=>{(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 P=0;P<B.length;P++)D.push(parseInt(B[P],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 Wa<"u"&&Wa.exports?Wa.exports=h:t.ipaddr=h})(hy)});var wy=N((u4,vy)=>{"use strict";function hS(t){return t>=55296&&t<=56319}function dS(t){return t>=56320&&t<=57343}vy.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],hS(o)&&dS(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 by=N((l4,xy)=>{"use strict";function pS(t){return t>=55296&&t<=56319}function mS(t){return t>=56320&&t<=57343}xy.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),mS(i)?s!=null&&pS(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 _y=N((f4,Sy)=>{"use strict";var yS=wy(),gS=by();Sy.exports=yS.bind(null,gS)});var Iy=N((h4,Cy)=>{"use strict";var ES=_y(),vS=/[\/\?<>\\:\*\|"]/g,wS=/[\x00-\x1f\x80-\x9f]/g,xS=/^\.+$/,bS=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,SS=/[\. ]+$/;function Ay(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(vS,e).replace(wS,e).replace(xS,e).replace(bS,e).replace(SS,e);return ES(r,255)}Cy.exports=function(t,e){var r=e&&e.replacement||"",n=Ay(t,r);return r===""?n:Ay(n,"")}});var ie=N((d4,Ty)=>{Ty.exports={options:{usePureJavaScript:!1}}});var Dy=N((p4,Ny)=>{var hf={};Ny.exports=hf;var Ry={};hf.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=_S(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};hf.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=Ry[e];if(!r){r=Ry[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 _S(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((m4,Oy)=>{var Ly=ie(),Py=Dy(),w=Oy.exports=Ly.util=Ly.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 ro(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=df;function df(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 df||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=df;var AS=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>AS&&(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){ro(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){ro(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 CS(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=CS;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){ro(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 ro(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){ro(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],By="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:Py.encode,decode:Py.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,By,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,By,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 pf=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}},mf=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},IS=function(t,e,r,n){var i=mf(t,e);i===null&&(i={}),i[r]=n,pf(t,e,i)},TS=function(t,e,r){var n=mf(t,e);return n!==null&&(n=r in n?n[r]:null),n},RS=function(t,e,r){var n=mf(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),pf(t,e,n)}},NS=function(t,e){pf(t,e,null)},Ja=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){Ja(IS,arguments,i)};w.getItem=function(t,e,r,n){return Ja(TS,arguments,n)};w.removeItem=function(t,e,r,n){Ja(RS,arguments,n)};w.clearItems=function(t,e,r){Ja(NS,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 gf=N((y4,ky)=>{var lt=ie();De();ky.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 yf=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)};yf.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)};yf.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()};yf.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 vf=N((g4,Uy)=>{var ft=ie();De();ft.cipher=ft.cipher||{};var se=Uy.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=ec(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=ec(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=ec(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=ec(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}tc(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(Ef(n*8)))}this._inBlock=this._j0.slice(0),tc(this._inBlock),this._partialBytes=0,r=ft.util.createBuffer(r),this._aDataLength=Ef(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),tc(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),tc(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(Ef(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 ec(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 tc(t){t[t.length-1]=t[t.length-1]+1&4294967295}function Ef(t){return[t/4294967296|0,t&4294967295]}});var ts=N((E4,Vy)=>{var Le=ie();gf();vf();De();Vy.exports=Le.aes=Le.aes||{};Le.aes.startEncrypting=function(t,e,r,n){var i=rc({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};Le.aes.createEncryptionCipher=function(t,e){return rc({key:t,output:null,decrypt:!1,mode:e})};Le.aes.startDecrypting=function(t,e,r,n){var i=rc({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};Le.aes.createDecryptionCipher=function(t,e){return rc({key:t,output:null,decrypt:!0,mode:e})};Le.aes.Algorithm=function(t,e){bf||Fy();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return xf(r._w,n,i,!1)},decrypt:function(n,i){return xf(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=Ky(e,t.decrypt&&!o),this._init=!0}};Le.aes._expandKey=function(t,e){return bf||Fy(),Ky(t,e)};Le.aes._updateBlock=xf;es("AES-ECB",Le.cipher.modes.ecb);es("AES-CBC",Le.cipher.modes.cbc);es("AES-CFB",Le.cipher.modes.cfb);es("AES-OFB",Le.cipher.modes.ofb);es("AES-CTR",Le.cipher.modes.ctr);es("AES-GCM",Le.cipher.modes.gcm);function es(t,e){var r=function(){return new Le.aes.Algorithm(t,e)};Le.cipher.registerAlgorithm(t,r)}var bf=!1,Ji=4,vt,wf,My,si,sr;function Fy(){bf=!0,My=[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),wf=new Array(256),si=new Array(4),sr=new Array(4);for(var e=0;e<4;++e)si[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,wf[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)si[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 Ky(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=Ji*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]^My[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-Ji;c<a;c+=Ji,y-=Ji)if(c===0||c===a-Ji)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<Ji;++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 xf(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=wf):(s=si[0],o=si[1],a=si[2],c=si[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 rc(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 rs=N((v4,qy)=>{var no=ie();no.pki=no.pki||{};var Sf=qy.exports=no.pki.oids=no.oids=no.oids||{};function R(t,e){Sf[t]=e,Sf[e]=t}function Ee(t,e){Sf[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");Ee("2.5.29.1","authorityKeyIdentifier");Ee("2.5.29.2","keyAttributes");Ee("2.5.29.3","certificatePolicies");Ee("2.5.29.4","keyUsageRestriction");Ee("2.5.29.5","policyMapping");Ee("2.5.29.6","subtreesConstraint");Ee("2.5.29.7","subjectAltName");Ee("2.5.29.8","issuerAltName");Ee("2.5.29.9","subjectDirectoryAttributes");Ee("2.5.29.10","basicConstraints");Ee("2.5.29.11","nameConstraints");Ee("2.5.29.12","policyConstraints");Ee("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");Ee("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");Ee("2.5.29.20","cRLNumber");Ee("2.5.29.21","cRLReason");Ee("2.5.29.22","expirationDate");Ee("2.5.29.23","instructionCode");Ee("2.5.29.24","invalidityDate");Ee("2.5.29.25","cRLDistributionPoints");Ee("2.5.29.26","issuingDistributionPoint");Ee("2.5.29.27","deltaCRLIndicator");Ee("2.5.29.28","issuingDistributionPoint");Ee("2.5.29.29","certificateIssuer");Ee("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");Ee("2.5.29.33","policyMappings");Ee("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");Ee("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");Ee("2.5.29.46","freshestCRL");Ee("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((w4,zy)=>{var Be=ie();De();rs();var k=zy.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 io(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 DS=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;io(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=nc(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 nc(t,e,r,n){var i;io(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=DS(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(io(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(nc(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(nc(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&&(io(t,e,1),y=t.getByte(),e--),y===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},E=nc(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)io(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 Hy=/[^\\u0000-\\u00ff]/;k.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
|
|
28
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
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)eg.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:eg.test(t.value)?n+="0x"+Be.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var sc=R((k4,ng)=>{var Me=ie();vf();xf();De();ng.exports=Me.des=Me.des||{};Me.des.startEncrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createEncryptionCipher=function(t,e){return ic({key:t,output:null,decrypt:!1,mode:e})};Me.des.startDecrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createDecryptionCipher=function(t,e){return ic({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 rg(r._keys,n,i,!1)},decrypt:function(n,i){return rg(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=r_(e),this._init=!0}};Er("DES-ECB",Me.cipher.modes.ecb);Er("DES-CBC",Me.cipher.modes.cbc);Er("DES-CFB",Me.cipher.modes.cfb);Er("DES-OFB",Me.cipher.modes.ofb);Er("DES-CTR",Me.cipher.modes.ctr);Er("3DES-ECB",Me.cipher.modes.ecb);Er("3DES-CBC",Me.cipher.modes.cbc);Er("3DES-CFB",Me.cipher.modes.cfb);Er("3DES-OFB",Me.cipher.modes.ofb);Er("3DES-CTR",Me.cipher.modes.ctr);function Er(t,e){var r=function(){return new Me.des.Algorithm(t,e)};Me.cipher.registerAlgorithm(t,r)}var WS=[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],QS=[-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],XS=[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],jS=[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],ZS=[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],JS=[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],e_=[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],t_=[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 r_(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(),P=t.getInt32();_=(D>>>4^P)&252645135,P^=_,D^=_<<4,_=(P>>>-16^D)&65535,D^=_,P^=_<<-16,_=(D>>>2^P)&858993459,P^=_,D^=_<<2,_=(P>>>-16^D)&65535,D^=_,P^=_<<-16,_=(D>>>1^P)&1431655765,P^=_,D^=_<<1,_=(P>>>8^D)&16711935,D^=_,P^=_<<8,_=(D>>>1^P)&1431655765,P^=_,D^=_<<1,_=D<<8|P>>>20&240,D=P<<24|P<<8&16711680|P>>>8&65280|P>>>24&240,P=_;for(var te=0;te<E.length;++te){E[te]?(D=D<<2|D>>>26,P=P<<2|P>>>26):(D=D<<1|D>>>27,P=P<<1|P>>>27),D&=-15,P&=-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[P>>>28]|u[P>>>24&15]|l[P>>>20&15]|f[P>>>16&15]|h[P>>>12&15]|d[P>>>8&15]|p[P>>>4&15];_=(st>>>16^ae)&65535,g[x++]=ae^_,g[x++]=st^_<<16}}return g}function rg(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^(QS[d>>>24&63]|jS[d>>>16&63]|JS[d>>>8&63]|t_[d&63]|WS[p>>>24&63]|XS[p>>>16&63]|ZS[p>>>8&63]|e_[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 ic(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 cc=R((U4,sg)=>{var ac=ie();De();var ig=sg.exports=ac.pem=ac.pem||{};ig.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
|
|
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)Hy.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:Hy.test(t.value)?n+="0x"+Be.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var sc=N((x4,Gy)=>{var Me=ie();gf();vf();De();Gy.exports=Me.des=Me.des||{};Me.des.startEncrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createEncryptionCipher=function(t,e){return ic({key:t,output:null,decrypt:!1,mode:e})};Me.des.startDecrypting=function(t,e,r,n){var i=ic({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createDecryptionCipher=function(t,e){return ic({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 $y(r._keys,n,i,!1)},decrypt:function(n,i){return $y(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=KS(e),this._init=!0}};xr("DES-ECB",Me.cipher.modes.ecb);xr("DES-CBC",Me.cipher.modes.cbc);xr("DES-CFB",Me.cipher.modes.cfb);xr("DES-OFB",Me.cipher.modes.ofb);xr("DES-CTR",Me.cipher.modes.ctr);xr("3DES-ECB",Me.cipher.modes.ecb);xr("3DES-CBC",Me.cipher.modes.cbc);xr("3DES-CFB",Me.cipher.modes.cfb);xr("3DES-OFB",Me.cipher.modes.ofb);xr("3DES-CTR",Me.cipher.modes.ctr);function xr(t,e){var r=function(){return new Me.des.Algorithm(t,e)};Me.cipher.registerAlgorithm(t,r)}var LS=[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],PS=[-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],BS=[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],OS=[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],kS=[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],US=[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],MS=[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],FS=[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 KS(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(),P=t.getInt32();_=(D>>>4^P)&252645135,P^=_,D^=_<<4,_=(P>>>-16^D)&65535,D^=_,P^=_<<-16,_=(D>>>2^P)&858993459,P^=_,D^=_<<2,_=(P>>>-16^D)&65535,D^=_,P^=_<<-16,_=(D>>>1^P)&1431655765,P^=_,D^=_<<1,_=(P>>>8^D)&16711935,D^=_,P^=_<<8,_=(D>>>1^P)&1431655765,P^=_,D^=_<<1,_=D<<8|P>>>20&240,D=P<<24|P<<8&16711680|P>>>8&65280|P>>>24&240,P=_;for(var te=0;te<E.length;++te){E[te]?(D=D<<2|D>>>26,P=P<<2|P>>>26):(D=D<<1|D>>>27,P=P<<1|P>>>27),D&=-15,P&=-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[P>>>28]|u[P>>>24&15]|l[P>>>20&15]|f[P>>>16&15]|h[P>>>12&15]|d[P>>>8&15]|p[P>>>4&15];_=(st>>>16^ae)&65535,g[x++]=ae^_,g[x++]=st^_<<16}}return g}function $y(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^(PS[d>>>24&63]|OS[d>>>16&63]|US[d>>>8&63]|FS[d&63]|LS[p>>>24&63]|BS[p>>>16&63]|kS[p>>>8&63]|MS[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 ic(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 cc=N((b4,Wy)=>{var ac=ie();De();var Yy=Wy.exports=ac.pem=ac.pem||{};Yy.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
|
|
31
31
|
`,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=oc(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=oc(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=oc(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=oc(t.headers[i]);return t.procType&&(r+=`\r
|
|
32
32
|
`),r+=ac.util.encode64(t.body,e.maxline||64)+`\r
|
|
33
33
|
`,r+="-----END "+t.type+`-----\r
|
|
34
|
-
`,r};
|
|
34
|
+
`,r};Yy.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:ac.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(VS(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 oc(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
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
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 n_(t){return t.replace(/^\s+/,"")}});var ug=R((M4,cg)=>{var is=ie();_n();De();var U=is.asn1,ss=cg.exports=is.pkcs7asn1=is.pkcs7asn1||{};is.pkcs7=is.pkcs7||{};is.pkcs7.asn1=ss;var og={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"}]};ss.contentInfoValidator=og;var ag={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"}]};ss.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(ag)};ss.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(ag)};var i_={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"}]};ss.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"},og,{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:[i_]}]};ss.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 An=R((F4,lg)=>{var uc=ie();lg.exports=uc.md=uc.md||{};uc.md.algorithms=uc.md.algorithms||{}});var yg=R((K4,mg)=>{var vr=ie();An();De();var hg=mg.exports=vr.sha256=vr.sha256||{};vr.md.sha256=vr.md.algorithms.sha256=hg;hg.create=function(){dg||s_();var t=null,e=vr.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=vr.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=vr.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),fg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=vr.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Cf.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};fg(f,r,i);var h=vr.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 Cf=null,dg=!1,pg=null;function s_(){Cf=String.fromCharCode(128),Cf+=vr.util.fillString(String.fromCharCode(0),64),pg=[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],dg=!0}function fg(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+pg[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 Eg=R((V4,gg)=>{var wr=ie();De();var lc=null;wr.util.isNodejs&&!wr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(lc=Zn());var o_=gg.exports=wr.prng=wr.prng||{};o_.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=wr.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 wr.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)),wr.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=wr.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=wr.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(D){return h.getRandomValues(D)});var d=wr.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 lc?(e.seedFile=function(u,l){lc.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},e.seedFileSync=function(u){return lc.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 oi=R((q4,If)=>{var ht=ie();rs();yg();Eg();De();(function(){if(ht.random&&ht.random.getBytes){If.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,If.exports=ht.random})(typeof jQuery<"u"?jQuery:null)})()});var wg=R((H4,vg)=>{var ai=ie();De();ai.mgf=ai.mgf||{};var a_=vg.exports=ai.mgf.mgf1=ai.mgf1=ai.mgf1||{};a_.create=function(t){var e={generate:function(r,n){for(var i=new ai.util.ByteBuffer,s=Math.ceil(n/t.digestLength),o=0;o<s;o++){var a=new ai.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 bg=R((z4,xg)=>{var fc=ie();wg();xg.exports=fc.mgf=fc.mgf||{};fc.mgf.mgf1=fc.mgf1});var _g=R(($4,Sg)=>{var ci=ie();oi();De();var c_=Sg.exports=ci.pss=ci.pss||{};c_.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=ci.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||ci.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 ci.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 ci.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 P=65280>>8*h-f&255;return D=String.fromCharCode(D.charCodeAt(0)&~P)+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),P=new ci.util.ByteBuffer;P.fillWithByte(0,8),P.putBytes(c),P.putBytes(D),e.start(),e.update(P.getBytes());var te=e.digest().getBytes();return g===te},a}});var pc=R((G4,Lg)=>{var Tf=ie();Lg.exports=Tf.jsbn=Tf.jsbn||{};var Gr,u_=0xdeadbeefcafe,Ag=(u_&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))}Tf.jsbn.BigInteger=I;function pe(){return new I(null)}function l_(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 f_(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 Cg(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=Cg,Gr=28):Ag&&navigator.appName=="Microsoft Internet Explorer"?(I.prototype.am=f_,Gr=30):Ag&&navigator.appName!="Netscape"?(I.prototype.am=l_,Gr=26):(I.prototype.am=Cg,Gr=28);I.prototype.DB=Gr;I.prototype.DM=(1<<Gr)-1;I.prototype.DV=1<<Gr;var Rf=52;I.prototype.FV=Math.pow(2,Rf);I.prototype.F1=Rf-Gr;I.prototype.F2=2*Gr-Rf;var h_="0123456789abcdefghijklmnopqrstuvwxyz",hc=new Array,os,zt;os="0".charCodeAt(0);for(zt=0;zt<=9;++zt)hc[os++]=zt;os="a".charCodeAt(0);for(zt=10;zt<36;++zt)hc[os++]=zt;os="A".charCodeAt(0);for(zt=10;zt<36;++zt)hc[os++]=zt;function Ig(t){return h_.charAt(t)}function Tg(t,e){var r=hc[t.charCodeAt(e)];return r??-1}function d_(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 p_(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 Cn(t){var e=pe();return e.fromInt(t),e}function m_(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:Tg(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 y_(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function g_(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=Ig(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+=Ig(n));return i?s:"0"}function E_(){var t=pe();return I.ZERO.subTo(this,t),t}function v_(){return this.s<0?this.negate():this}function w_(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 dc(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 x_(){return this.t<=0?0:this.DB*(this.t-1)+dc(this.data[this.t-1]^this.s&this.DM)}function b_(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 S_(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 __(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 A_(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 C_(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 I_(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 T_(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 R_(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-dc(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 N_(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 ui(t){this.m=t}function D_(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function L_(t){return t}function P_(t){t.divRemTo(this.m,null,t)}function B_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function O_(t,e){t.squareTo(e),this.reduce(e)}ui.prototype.convert=D_;ui.prototype.revert=L_;ui.prototype.reduce=P_;ui.prototype.mulTo=B_;ui.prototype.sqrTo=O_;function k_(){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 li(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 U_(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 M_(t){var e=pe();return t.copyTo(e),this.reduce(e),e}function F_(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 K_(t,e){t.squareTo(e),this.reduce(e)}function V_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}li.prototype.convert=U_;li.prototype.revert=M_;li.prototype.reduce=F_;li.prototype.mulTo=V_;li.prototype.sqrTo=K_;function q_(){return(this.t>0?this.data[0]&1:this.s)==0}function H_(t,e){if(t>4294967295||t<1)return I.ONE;var r=pe(),n=pe(),i=e.convert(this),s=dc(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 z_(t,e){var r;return t<256||e.isEven()?r=new ui(e):r=new li(e),this.exp(t,r)}I.prototype.copyTo=d_;I.prototype.fromInt=p_;I.prototype.fromString=m_;I.prototype.clamp=y_;I.prototype.dlShiftTo=b_;I.prototype.drShiftTo=S_;I.prototype.lShiftTo=__;I.prototype.rShiftTo=A_;I.prototype.subTo=C_;I.prototype.multiplyTo=I_;I.prototype.squareTo=T_;I.prototype.divRemTo=R_;I.prototype.invDigit=k_;I.prototype.isEven=q_;I.prototype.exp=H_;I.prototype.toString=g_;I.prototype.negate=E_;I.prototype.abs=v_;I.prototype.compareTo=w_;I.prototype.bitLength=x_;I.prototype.mod=N_;I.prototype.modPowInt=z_;I.ZERO=Cn(0);I.ONE=Cn(1);function $_(){var t=pe();return this.copyTo(t),t}function G_(){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 Y_(){return this.t==0?this.s:this.data[0]<<24>>24}function W_(){return this.t==0?this.s:this.data[0]<<16>>16}function Q_(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function X_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function j_(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=Cn(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 Z_(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=Tg(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 J_(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),Nf,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 eA(){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 tA(t){return this.compareTo(t)==0}function rA(t){return this.compareTo(t)<0?this:t}function nA(t){return this.compareTo(t)>0?this:t}function iA(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 sA(t,e){return t&e}function oA(t){var e=pe();return this.bitwiseTo(t,sA,e),e}function Nf(t,e){return t|e}function aA(t){var e=pe();return this.bitwiseTo(t,Nf,e),e}function Rg(t,e){return t^e}function cA(t){var e=pe();return this.bitwiseTo(t,Rg,e),e}function Ng(t,e){return t&~e}function uA(t){var e=pe();return this.bitwiseTo(t,Ng,e),e}function lA(){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 fA(t){var e=pe();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function hA(t){var e=pe();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function dA(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 pA(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+dA(this.data[t]);return this.s<0?this.t*this.DB:-1}function mA(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function yA(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=mA(this.data[r]^e);return t}function gA(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function EA(t,e){var r=I.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function vA(t){return this.changeBit(t,Nf)}function wA(t){return this.changeBit(t,Ng)}function xA(t){return this.changeBit(t,Rg)}function bA(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 SA(t){var e=pe();return this.addTo(t,e),e}function _A(t){var e=pe();return this.subTo(t,e),e}function AA(t){var e=pe();return this.multiplyTo(t,e),e}function CA(t){var e=pe();return this.divRemTo(t,e,null),e}function IA(t){var e=pe();return this.divRemTo(t,null,e),e}function TA(t){var e=pe(),r=pe();return this.divRemTo(t,e,r),new Array(e,r)}function RA(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function NA(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 oo(){}function Dg(t){return t}function DA(t,e,r){t.multiplyTo(e,r)}function LA(t,e){t.squareTo(e)}oo.prototype.convert=Dg;oo.prototype.revert=Dg;oo.prototype.mulTo=DA;oo.prototype.sqrTo=LA;function PA(t){return this.exp(t,new oo)}function BA(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 OA(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 as(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 kA(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 UA(t){return t}function MA(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 FA(t,e){t.squareTo(e),this.reduce(e)}function KA(t,e,r){t.multiplyTo(e,r),this.reduce(r)}as.prototype.convert=kA;as.prototype.revert=UA;as.prototype.reduce=MA;as.prototype.mulTo=KA;as.prototype.sqrTo=FA;function VA(t,e){var r=t.bitLength(),n,i=Cn(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 ui(e):e.isEven()?s=new as(e):s=new li(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=dc(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 qA(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 HA(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 zA(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return I.ZERO;for(var r=t.clone(),n=this.clone(),i=Cn(1),s=Cn(0),o=Cn(0),a=Cn(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 nr=[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],$A=(1<<26)/nr[nr.length-1];function GA(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=nr[nr.length-1]){for(e=0;e<nr.length;++e)if(r.data[0]==nr[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<nr.length;){for(var n=nr[e],i=e+1;i<nr.length&&n<$A;)n*=nr[i++];for(n=r.modInt(n);e<i;)if(n%nr[e++]==0)return!1}return r.millerRabin(t)}function YA(t){var e=this.subtract(I.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=WA(),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 WA(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}I.prototype.chunkSize=Q_;I.prototype.toRadix=j_;I.prototype.fromRadix=Z_;I.prototype.fromNumber=J_;I.prototype.bitwiseTo=iA;I.prototype.changeBit=EA;I.prototype.addTo=bA;I.prototype.dMultiply=RA;I.prototype.dAddOffset=NA;I.prototype.multiplyLowerTo=BA;I.prototype.multiplyUpperTo=OA;I.prototype.modInt=HA;I.prototype.millerRabin=YA;I.prototype.clone=$_;I.prototype.intValue=G_;I.prototype.byteValue=Y_;I.prototype.shortValue=W_;I.prototype.signum=X_;I.prototype.toByteArray=eA;I.prototype.equals=tA;I.prototype.min=rA;I.prototype.max=nA;I.prototype.and=oA;I.prototype.or=aA;I.prototype.xor=cA;I.prototype.andNot=uA;I.prototype.not=lA;I.prototype.shiftLeft=fA;I.prototype.shiftRight=hA;I.prototype.getLowestSetBit=pA;I.prototype.bitCount=yA;I.prototype.testBit=gA;I.prototype.setBit=vA;I.prototype.clearBit=wA;I.prototype.flipBit=xA;I.prototype.add=SA;I.prototype.subtract=_A;I.prototype.multiply=AA;I.prototype.divide=CA;I.prototype.remainder=IA;I.prototype.divideAndRemainder=TA;I.prototype.modPow=VA;I.prototype.modInverse=zA;I.prototype.pow=PA;I.prototype.gcd=qA;I.prototype.isProbablePrime=GA});var Ug=R((Y4,kg)=>{var xr=ie();An();De();var Bg=kg.exports=xr.sha1=xr.sha1||{};xr.md.sha1=xr.md.algorithms.sha1=Bg;Bg.create=function(){Og||QA();var t=null,e=xr.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=xr.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=xr.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),Pg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=xr.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Df.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};Pg(f,r,i);var h=xr.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 Df=null,Og=!1;function QA(){Df=String.fromCharCode(128),Df+=xr.util.fillString(String.fromCharCode(0),64),Og=!0}function Pg(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 Kg=R((W4,Fg)=>{var br=ie();De();oi();Ug();var Mg=Fg.exports=br.pkcs1=br.pkcs1||{};Mg.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=br.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=br.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=mc(i,a-s.digestLength-1,o),g=br.util.xorBytes(p,y,p.length),E=mc(g,s.digestLength,o),x=br.util.xorBytes(i,E,i.length);return"\0"+x+g};Mg.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=br.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=mc(l,i.digestLength,s),h=br.util.xorBytes(u,f,u.length),d=mc(h,o-i.digestLength-1,s),p=br.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),P=D&1^1,te=x?65534:0;g|=D&te,x=x&P,_+=x}if(g||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function mc(t,e,r){r||(r=br.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 Vg=R((Q4,Lf)=>{var In=ie();De();pc();oi();(function(){if(In.prime){Lf.exports=In.prime;return}var t=Lf.exports=In.prime=In.prime||{},e=In.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||In.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);In.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 In.util.estimateCores(function(D,P){D&&(P=2),g=P-1,B()});B();function B(){g=Math.max(1,g);for(var D=[],P=0;P<g;++P)D[P]=new Worker(_);for(var te=g,P=0;P<g;++P)D[P].addEventListener("message",st);var ae=!1;function st(jt){if(!ae){--te;var Ct=jt.data;if(Ct.found){for(var gt=0;gt<D.length;++gt)D[gt].terminate();return ae=!0,p(null,new e(Ct.prime,16))}y.bitLength()>f&&(y=u(f,h));var Ci=y.toString(16);jt.target.postMessage({hex:Ci,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 ao=R((X4,Wg)=>{var z=ie();_n();pc();ns();Kg();Vg();oi();De();typeof ce>"u"&&(ce=z.jsbn.BigInteger);var ce,Pf=z.util.isNodejs?Zn():null,S=z.asn1,$t=z.util;z.pki=z.pki||{};Wg.exports=z.pki.rsa=z.rsa=z.rsa||{};var Z=z.pki,XA=[6,4,2,4,2,4,6,2],jA={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"}]},ZA={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"}]},JA={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"}]},eC=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"}]}]},tC={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"}]},rC=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()},Gg=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=Yg(t,e,r)):(i=z.util.createBuffer(),i.putBytes(t));for(var o=new ce(i.toHex(),16),a=Gg(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=Gg(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?yc(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(iC(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(XA[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(qg("generateKeyPair"))return Pf.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(Hg("generateKey")&&Hg("exportKey"))return $t.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:$g(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return $t.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(zg("generateKey")&&zg("exportKey")){var i=$t.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:$g(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=$t.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(qg("generateKeyPairSync")){var s=Pf.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;nC(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 Yg(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=yc(u,r,!0);var l=S.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!S.validate(l,tC,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=yc(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:yc};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:rC},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,jA,e,r)&&(t=S.fromDer(z.util.createBuffer(e.privateKey))),e={},r=[],!S.validate(t,ZA,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,Sr(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.e)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.d)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.p)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.q)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.dP)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.dQ)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.qInv))])};Z.publicKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,eC,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,JA,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,Sr(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Sr(t.e))])};function Yg(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 yc(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 nC(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 Sr(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 iC(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 qg(t){return z.util.isNodejs&&typeof Pf[t]=="function"}function Hg(t){return typeof $t.globalScope<"u"&&typeof $t.globalScope.crypto=="object"&&typeof $t.globalScope.crypto.subtle=="object"&&typeof $t.globalScope.crypto.subtle[t]=="function"}function zg(t){return typeof $t.globalScope<"u"&&typeof $t.globalScope.msCrypto=="object"&&typeof $t.globalScope.msCrypto.subtle=="object"&&typeof $t.globalScope.msCrypto.subtle[t]=="function"}function $g(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 Of=R((j4,Jg)=>{var $=ie();rs();_n();sc();An();bg();ns();cc();_g();ao();De();var m=$.asn1,L=Jg.exports=$.pki=$.pki||{},ue=L.oids,Ye={};Ye.CN=ue.commonName;Ye.commonName="CN";Ye.C=ue.countryName;Ye.countryName="C";Ye.L=ue.localityName;Ye.localityName="L";Ye.ST=ue.stateOrProvinceName;Ye.stateOrProvinceName="ST";Ye.O=ue.organizationName;Ye.organizationName="O";Ye.OU=ue.organizationalUnitName;Ye.organizationalUnitName="OU";Ye.E=ue.emailAddress;Ye.emailAddress="E";var Xg=$.pki.rsa.publicKeyValidator,sC={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"},Xg,{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"}]},oC={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"}]}]},aC={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"},Xg,{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}]}]}]},cC={name:"CertificationRequest",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[aC,{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"}]};L.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 Ye&&(s.shortName=Ye[s.name])),e&&(e.update(s.type),e.update(s.value)),r.push(s)}return r};L.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 Ye&&(a.shortName=Ye[a.name])),a.type===ue.extensionRequest){a.extensions=[];for(var c=0;c<a.value.length;++c)a.extensions.push(L.certificateExtensionFromAsn1(a.value[c]))}e.push(a)}return e};function Tn(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 gc=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,oC,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},Ec=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}},jg=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)};L.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 L.certificateFromAsn1(s,e)};L.certificateToPem=function(t,e){var r={type:"CERTIFICATE",body:m.toDer(L.certificateToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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 L.publicKeyFromAsn1(n)};L.publicKeyToPem=function(t,e){var r={type:"PUBLIC KEY",body:m.toDer(L.publicKeyToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.publicKeyToRSAPublicKeyPem=function(t,e){var r={type:"RSA PUBLIC KEY",body:m.toDer(L.publicKeyToRSAPublicKey(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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(L.publicKeyToRSAPublicKey(t)).getBytes();break;case"SubjectPublicKeyInfo":i=m.toDer(L.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};L.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 L.certificationRequestFromAsn1(s,e)};L.certificationRequestToPem=function(t,e){var r={type:"CERTIFICATE REQUEST",body:m.toDer(L.certificationRequestToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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 Tn(t.issuer,e)},t.issuer.addField=function(e){Gt([e]),t.issuer.attributes.push(e)},t.issuer.attributes=[],t.issuer.hash=null,t.subject={},t.subject.getField=function(e){return Tn(t.subject,e)},t.subject.addField=function(e){Gt([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){Gt(e),t.subject.attributes=e,delete t.subject.uniqueId,r&&(t.subject.uniqueId=r),t.subject.hash=null},t.setIssuer=function(e,r){Gt(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)Zg(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=L.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=Ec({signatureOid:e.signatureOid,type:"certificate"});var a=e.tbsCertificate||L.getTBSCertificate(e),c=m.toDer(a);o.update(c.getBytes())}return o!==null&&(r=jg({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 L.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};L.certificateFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,sC,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!==L.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=L.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=gc(o.signatureOid,r.certSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.certinfoSignatureOid),o.siginfo.parameters=gc(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=Ec({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 Tn(o.issuer,p)},o.issuer.addField=function(p){Gt([p]),o.issuer.attributes.push(p)},o.issuer.attributes=L.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 Tn(o.subject,p)},o.subject.addField=function(p){Gt([p]),o.subject.attributes.push(p)},o.subject.attributes=L.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(o.subject.uniqueId=r.certSubjectUniqueId),o.subject.hash=h.digest().toHex(),r.certExtensions?o.extensions=L.certificateExtensionsFromAsn1(r.certExtensions):o.extensions=[],o.publicKey=L.publicKeyFromAsn1(r.subjectPublicKeyInfo),o};L.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(L.certificateExtensionFromAsn1(n.value[i]));return e};L.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};L.certificationRequestFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,cC,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!==L.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=L.createCertificationRequest();if(o.version=r.csrVersion?r.csrVersion.charCodeAt(0):0,o.signatureOid=$.asn1.derToOid(r.csrSignatureOid),o.signatureParameters=gc(o.signatureOid,r.csrSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.csrSignatureOid),o.siginfo.parameters=gc(o.siginfo.algorithmOid,r.csrSignatureParams,!1),o.signature=r.csrSignature,o.certificationRequestInfo=r.certificationRequestInfo,e){o.md=Ec({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 Tn(o.subject,u)},o.subject.addField=function(u){Gt([u]),o.subject.attributes.push(u)},o.subject.attributes=L.RDNAttributesAsArray(r.certificationRequestInfoSubject,c),o.subject.hash=c.digest().toHex(),o.publicKey=L.publicKeyFromAsn1(r.subjectPublicKeyInfo),o.getAttribute=function(u){return Tn(o,u)},o.addAttribute=function(u){Gt([u]),o.attributes.push(u)},o.attributes=L.CRIAttributesAsArray(r.certificationRequestInfoAttributes||[]),o};L.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 Tn(t.subject,e)},t.subject.addField=function(e){Gt([e]),t.subject.attributes.push(e)},t.subject.attributes=[],t.subject.hash=null,t.publicKey=null,t.attributes=[],t.getAttribute=function(e){return Tn(t,e)},t.addAttribute=function(e){Gt([e]),t.attributes.push(e)},t.md=null,t.setSubject=function(e){Gt(e),t.subject.attributes=e,t.subject.hash=null},t.setAttributes=function(e){Gt(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=L.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=Ec({signatureOid:t.signatureOid,type:"certification request"});var n=t.certificationRequestInfo||L.getCertificationRequestInfo(t),i=m.toDer(n);r.update(i.getBytes())}return r!==null&&(e=jg({certificate:t,md:r,signature:t.signature})),e},t};function cs(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 Gt(t){for(var e,r=0;r<t.length;++r){if(e=t[r],typeof e.name>"u"&&(e.type&&e.type in L.oids?e.name=L.oids[e.type]:e.shortName&&e.shortName in Ye&&(e.name=L.oids[Ye[e.shortName]])),typeof e.type>"u")if(e.name&&e.name in L.oids)e.type=L.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 Ye&&(e.shortName=Ye[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(L.certificateExtensionToAsn1(Zg(e.extensions[i])))}if(typeof e.value>"u"){var n=new Error("Attribute value not specified.");throw n.attribute=e,n}}}function Zg(t,e){if(e=e||{},typeof t.name>"u"&&t.id&&t.id in L.oids&&(t.name=L.oids[t.id]),typeof t.id>"u")if(t.name&&t.name in L.oids)t.id=L.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,[cs(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 Bf(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 uC(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 lC=new Date("1950-01-01T00:00:00Z"),fC=new Date("2050-01-01T00:00:00Z");function Qg(t){return t>=lC&&t<fC?m.create(m.Class.UNIVERSAL,m.Type.UTCTIME,!1,m.dateToUtcTime(t)):m.create(m.Class.UNIVERSAL,m.Type.GENERALIZEDTIME,!1,m.dateToGeneralizedTime(t))}L.getTBSCertificate=function(t){var e=Qg(t.validity.notBefore),r=Qg(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()),Bf(t.siginfo.algorithmOid,t.siginfo.parameters)]),cs(t.issuer),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,r]),cs(t.subject),L.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(L.certificateExtensionsToAsn1(t.extensions)),n};L.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()),cs(t.subject),L.publicKeyToAsn1(t.publicKey),uC(t)]);return e};L.distinguishedNameToAsn1=function(t){return cs(t)};L.certificateToAsn1=function(t){var e=t.tbsCertificate||L.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()),Bf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};L.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(L.certificateExtensionToAsn1(t[n]));return e};L.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};L.certificationRequestToAsn1=function(t){var e=t.certificationRequestInfo||L.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()),Bf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};L.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(L.certificateToAsn1(o)).getBytes(),u=0;u<a.length;++u){var l=m.toDer(L.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(L.certificateToAsn1(o)).getBytes(),l=0;l<c.length;++l){var f=m.toDer(L.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=L.RDNAttributesAsArray(cs(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};L.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"};L.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:L.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:L.certificateError.bad_certificate})}o===null&&(!u||l)&&!t.hasCertificate(c)&&(o={message:"Certificate is not trusted.",error:L.certificateError.unknown_ca})}if(o===null&&u&&!c.isIssuer(u)&&(o={message:"Certificate issuer is invalid.",error:L.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:L.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:L.certificateError.bad_certificate}),o===null&&g!==null&&!g.cA&&(o={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:L.certificateError.bad_certificate}),o===null&&E!==null&&"pathLenConstraint"in g){var x=a-1;x>g.pathLenConstraint&&(o={message:"Certificate basicConstraints pathLenConstraint violated.",error:L.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:L.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 rE=R((Z4,tE)=>{var O=ie();rs();_n();sc();ns();cc();ug();oi();De();Of();var v=O.asn1,vt=tE.exports=O.pkcs7=O.pkcs7||{};vt.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 vt.messageFromAsn1(n)};vt.messageToPem=function(t,e){var r={type:"PKCS7",body:v.toDer(t.toAsn1()).getBytes()};return O.pem.encode(r,{maxline:e})};vt.messageFromAsn1=function(t){var e={},r=[];if(!v.validate(t,vt.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=vt.createEnvelopedData();break;case O.pki.oids.encryptedData:s=vt.createEncryptedData();break;case O.pki.oids.signedData:s=vt.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};vt.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(Uf(t,n,vt.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(kf(d)),l.authenticatedAttributesAsn1.value.push(kf(d))}o=v.toDer(f).getBytes(),l.md.start().update(o)}l.signature=l.key.sign(l.md,"RSASSA-PKCS1-V1_5")}t.signerInfos=gC(t.signers)}};vt.createEncryptedData=function(){var t=null;return t={type:O.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:O.pki.oids["aes256-CBC"]},fromAsn1:function(e){Uf(t,e,vt.asn1.encryptedDataValidator)},decrypt:function(e){e!==void 0&&(t.encryptedContent.key=e),eE(t)}},t};vt.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=Uf(t,e,vt.asn1.envelopedDataValidator);t.recipients=pC(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,mC(t.recipients)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,EC(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)}eE(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 hC(t){var e={},r=[];if(!v.validate(t,vt.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 dC(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 pC(t){for(var e=[],r=0;r<t.length;++r)e.push(hC(t[r]));return e}function mC(t){for(var e=[],r=0;r<t.length;++r)e.push(dC(t[r]));return e}function yC(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(kf(i))}e.value.push(r)}return e}function gC(t){for(var e=[],r=0;r<t.length;++r)e.push(yC(t[r]));return e}function kf(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 EC(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 Uf(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 eE(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 iE=R((J4,nE)=>{var Yr=ie();An();De();var vC=nE.exports=Yr.hmac=Yr.hmac||{};vC.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 Yr.md.algorithms)e=Yr.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=Yr.util.createBuffer(o);else if(Yr.util.isArray(o)){var a=o;o=Yr.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=Yr.util.createBuffer(),n=Yr.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 Mf=R((e8,sE)=>{var wt=ie();iE();An();De();var wC=wt.pkcs5=wt.pkcs5||{},Wr;wt.util.isNodejs&&!wt.options.usePureJavaScript&&(Wr=Zn());sE.exports=wt.pbkdf2=wC.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),wt.util.isNodejs&&!wt.options.usePureJavaScript&&Wr.pbkdf2&&(i===null||typeof i!="object")&&(Wr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Wr.pbkdf2Sync.length===4?Wr.pbkdf2(t,e,r,n,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Wr.pbkdf2(t,e,r,n,i,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Wr.pbkdf2Sync.length===4?Wr.pbkdf2Sync(t,e,r,n).toString("binary"):Wr.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in wt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=wt.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=wt.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(wt.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=wt.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(wt.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=wt.util.xorBytes(h,d,o),p=d,++g,wt.util.setImmediate(x);f+=y<c?h:h.substr(0,u),++y,E()}E()}});var uE=R((t8,cE)=>{var St=ie();De();var Ff=[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],oE=[1,2,3,5],xC=function(t,e){return t<<e&65535|(t&65535)>>16-e},bC=function(t,e){return(t&65535)>>e|t<<16-e&65535};cE.exports=St.rc2=St.rc2||{};St.rc2.expandKey=function(t,e){typeof t=="string"&&(t=St.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(Ff[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Ff[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Ff[r.at(a+1)^r.at(a+s)]);return r};var aE=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=St.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]=xC(p[u],oE[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]=bC(p[u],oE[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=St.util.createBuffer(p)),n=!1,i=St.util.createBuffer(),s=y||new St.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};St.rc2.startEncrypting=function(t,e,r){var n=St.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};St.rc2.createEncryptionCipher=function(t,e){return aE(t,e,!0)};St.rc2.startDecrypting=function(t,e,r){var n=St.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};St.rc2.createDecryptionCipher=function(t,e){return aE(t,e,!1)}});var Kf=R((r8,pE)=>{var F=ie();rs();_n();sc();An();ns();Mf();cc();oi();uE();ao();De();typeof lE>"u"&&(lE=F.jsbn.BigInteger);var lE,A=F.asn1,J=F.pki=F.pki||{};pE.exports=J.pbe=F.pbe=F.pbe||{};var fi=J.oids,SC={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"}]},_C={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"}]}]},AC={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=fi["aes128-CBC"],f=F.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=fi["aes192-CBC"],f=F.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=fi["aes256-CBC"],f=F.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=fi.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=dE(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=CC(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(fi.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(fi.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(fi["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,SC,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 P=new F.util.ByteBuffer;P.putBytes(p.bytes()),P.putBytes(_.bytes());for(var te=0;te<n;te++)s.start(),s.update(P.getBytes()),P=s.digest();var ae=new F.util.ByteBuffer;for(a=0;a<u;a++)ae.putByte(P.at(a%c));var st=Math.ceil(d/u)+Math.ceil(h/u),jt=new F.util.ByteBuffer;for(o=0;o<st;o++){var Ct=new F.util.ByteBuffer(_.getBytes(u)),gt=511;for(a=ae.length()-1;a>=0;a--)gt=gt>>8,gt+=ae.at(a)+Ct.at(a),Ct.setAt(a,gt&255);jt.putBuffer(Ct)}_=jt,l.putBuffer(P)}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,_C,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=hE(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,AC,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=hE(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=[fE(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(fE(n,i[o-1]+t+e));return i.join("").substr(0,r)};function fE(t,e){return t.start().update(e).digest().getBytes()}function hE(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 dE(e)}function dE(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 CC(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 TE=R((z8,IE)=>{var Oe=ie();An();De();var co=IE.exports=Oe.sha512=Oe.sha512||{};Oe.md.sha512=Oe.md.algorithms.sha512=co;var AE=Oe.sha384=Oe.sha512.sha384=Oe.sha512.sha384||{};AE.create=function(){return co.create("SHA-384")};Oe.md.sha384=Oe.md.algorithms.sha384=AE;Oe.sha512.sha256=Oe.sha512.sha256||{create:function(){return co.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 co.create("SHA-512/224")}};Oe.md["sha512/224"]=Oe.md.algorithms["sha512/224"]=Oe.sha512.sha224;co.create=function(t){if(CE||LC(),typeof t>"u"&&(t="SHA-512"),!(t in hi))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=hi[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),_E(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(Hf.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);_E(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 Hf=null,CE=!1,zf=null,hi=null;function LC(){Hf=String.fromCharCode(128),Hf+=Oe.util.fillString(String.fromCharCode(0),128),zf=[[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]],hi={},hi["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],hi["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],hi["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],hi["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],CE=!0}function _E(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,d,p,y,g,E,x,_,B,D,P,te,ae,st,jt,Ct,gt,Ci,jo,Je,bt,Y,Su,_u,Au,Cu,yd=r.length();yd>=128;){for(Je=0;Je<16;++Je)e[Je][0]=r.getInt32()>>>0,e[Je][1]=r.getInt32()>>>0;for(;Je<80;++Je)Su=e[Je-2],bt=Su[0],Y=Su[1],n=((bt>>>19|Y<<13)^(Y>>>29|bt<<3)^bt>>>6)>>>0,i=((bt<<13|Y>>>19)^(Y<<3|bt>>>29)^(bt<<26|Y>>>6))>>>0,Au=e[Je-15],bt=Au[0],Y=Au[1],s=((bt>>>1|Y<<31)^(bt>>>8|Y<<24)^bt>>>7)>>>0,o=((bt<<31|Y>>>1)^(bt<<24|Y>>>8)^(bt<<25|Y>>>7))>>>0,_u=e[Je-7],Cu=e[Je-16],Y=i+_u[1]+o+Cu[1],e[Je][0]=n+_u[0]+s+Cu[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],P=t[3][1],te=t[4][0],ae=t[4][1],st=t[5][0],jt=t[5][1],Ct=t[6][0],gt=t[6][1],Ci=t[7][0],jo=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=(Ct^te&(st^Ct))>>>0,h=(gt^ae&(jt^gt))>>>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=jo+l+h+zf[Je][1]+e[Je][1],n=Ci+u+f+zf[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,Ci=Ct,jo=gt,Ct=st,gt=jt,st=te,jt=ae,Y=P+i,te=D+n+(Y/4294967296>>>0)>>>0,ae=Y>>>0,D=_,P=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]+P,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]+jt,t[5][0]=t[5][0]+st+(Y/4294967296>>>0)>>>0,t[5][1]=Y>>>0,Y=t[6][1]+gt,t[6][0]=t[6][0]+Ct+(Y/4294967296>>>0)>>>0,t[6][1]=Y>>>0,Y=t[7][1]+jo,t[7][0]=t[7][0]+Ci+(Y/4294967296>>>0)>>>0,t[7][1]=Y>>>0,yd-=128}}});var aw=R((w6,ow)=>{function $I(){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)}ow.exports=$I});var xw=R((v5,kh)=>{"use strict";var QI=Object.prototype.hasOwnProperty,xt="~";function Vo(){}Object.create&&(Vo.prototype=Object.create(null),new Vo().__proto__||(xt=!1));function XI(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function ww(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new XI(r,n||t,i),o=xt?xt+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 iu(t,e){--t._eventsCount===0?t._events=new Vo:delete t._events[e]}function yt(){this._events=new Vo,this._eventsCount=0}yt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)QI.call(r,n)&&e.push(xt?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};yt.prototype.listeners=function(e){var r=xt?xt+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};yt.prototype.listenerCount=function(e){var r=xt?xt+e:e,n=this._events[r];return n?n.fn?1:n.length:0};yt.prototype.emit=function(e,r,n,i,s,o){var a=xt?xt+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};yt.prototype.on=function(e,r,n){return ww(this,e,r,n,!1)};yt.prototype.once=function(e,r,n){return ww(this,e,r,n,!0)};yt.prototype.removeListener=function(e,r,n,i){var s=xt?xt+e:e;if(!this._events[s])return this;if(!r)return iu(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&iu(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:iu(this,s)}return this};yt.prototype.removeAllListeners=function(e){var r;return e?(r=xt?xt+e:e,this._events[r]&&iu(this,r)):(this._events=new Vo,this._eventsCount=0),this};yt.prototype.off=yt.prototype.removeListener;yt.prototype.addListener=yt.prototype.on;yt.prefixed=xt;yt.EventEmitter=yt;typeof kh<"u"&&(kh.exports=yt)});var Vw=R((uU,Kw)=>{"use strict";Kw.exports=Fw;var tT=Iu(),Fn=Fw.prototype,rT=new Date%1e9;function nT(){return(Math.random()*1e9>>>0)+rT++}function Fw(t){t=t||{},this.id=t.id||nT(),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)}Fn.has=function(t){return t in this._lookup};Fn.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};Fn.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Fn.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};Fn.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};Fn.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=tT(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};Fn.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Fn.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 hd=R((HU,fd)=>{function jw(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}fd.exports=jw;fd.exports.anySignal=jw});var Jw=R(($U,Zw)=>{Zw.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 r1=R((YU,t1)=>{var e1=Jw();t1.exports=class{constructor(e){this.hwm=e||16,this.head=new e1(this.hwm),this.tail=this.head}push(e){if(!this.head.push(e)){let r=this.head;this.head=r.next=new e1(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 i1=R((WU,n1)=>{"use strict";var hT=()=>{let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t};n1.exports=hT});var c1=R((XU,a1)=>{var s1=r1(),o1=i1();a1.exports=class{constructor(){this._buffer=new s1,this._waitingConsumers=new s1}push(e){let{promise:r,resolve:n}=o1();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}=o1();return this._waitingConsumers.push({resolve:r}),this._consume(),e}isEmpty(){return this._buffer.isEmpty()}}});var yT={};pt(yT,{createLibp2p:()=>mT});var ur=C(Tu(),1);var Pu={};pt(Pu,{base58btc:()=>We,base58flickr:()=>F1});function B1(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],P=0,te=_-1;(D!==0||P<g)&&te!==-1;te--,P++)D+=256*B[te]>>>0,B[te]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");g=P,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,P=x-1;(B!==0||D<E)&&P!==-1;P--,D++)B+=a*_[P]>>>0,_[P]=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 O1=B1,k1=O1,xd=k1;var xT=new Uint8Array(0);var bd=(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},Nr=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 Sd=t=>new TextEncoder().encode(t),_d=t=>new TextDecoder().decode(t);var Ru=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")}},Nu=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 Cd(this,e)}},Du=class{constructor(e){this.decoders=e}or(e){return Cd(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`)}},Cd=(t,e)=>new Du({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Lu=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ru(e,r,n),this.decoder=new Nu(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Ni=({name:t,prefix:e,encode:r,decode:n})=>new Lu(t,e,r,n),ln=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=xd(r,e);return Ni({prefix:t,name:e,encode:n,decode:s=>Nr(i(s))})},U1=(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},M1=(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},ze=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Ni({prefix:e,name:t,encode(i){return M1(i,n,r)},decode(i){return U1(i,n,r,t)}});var We=ln({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),F1=ln({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bu={};pt(Bu,{base32:()=>Tt,base32hex:()=>H1,base32hexpad:()=>$1,base32hexpadupper:()=>G1,base32hexupper:()=>z1,base32pad:()=>V1,base32padupper:()=>q1,base32upper:()=>K1,base32z:()=>Y1});var Tt=ze({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),K1=ze({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),V1=ze({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),q1=ze({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),H1=ze({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),z1=ze({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),$1=ze({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),G1=ze({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Y1=ze({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ou={};pt(Ou,{base64:()=>Vn,base64pad:()=>W1,base64url:()=>Q1,base64urlpad:()=>X1});var Vn=ze({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),W1=ze({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Q1=ze({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),X1=ze({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ur.default.formatters.b=t=>t==null?"undefined":We.baseEncode(t);ur.default.formatters.t=t=>t==null?"undefined":Tt.baseEncode(t);ur.default.formatters.m=t=>t==null?"undefined":Vn.baseEncode(t);ur.default.formatters.p=t=>t==null?"undefined":t.toString();ur.default.formatters.c=t=>t==null?"undefined":t.toString();ur.default.formatters.k=t=>t==null?"undefined":t.toString();function M(t){return Object.assign((0,ur.default)(t),{error:(0,ur.default)(`${t}:error`),trace:(0,ur.default)(`${t}:trace`)})}var qn=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)},Dr,Ue=class extends EventTarget{constructor(){super(...arguments),Dr.set(this,new Map)}listenerCount(e){let r=qn(this,Dr,"f").get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=qn(this,Dr,"f").get(e);i==null&&(i=[],qn(this,Dr,"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=qn(this,Dr,"f").get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),qn(this,Dr,"f").set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=qn(this,Dr,"f").get(e.type);return n==null||(n=n.filter(({once:i})=>!i),qn(this,Dr,"f").set(e.type,n)),r}};Dr=new WeakMap;var ku=class extends Event{constructor(e,r){super(e,r),this.detail=r?.detail}},X=globalThis.CustomEvent??ku;function Lr(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var Rd=C(Td(),1),Uu=(t,e)=>async function*(){yield*(await(0,Rd.default)(t)).sort(e)}();var Mu=C(Dd(),1),Hn=C(Pd(),1),Fu=C(Od(),1),ta=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(0,Mu.default)(this.putMany(e,n)),e=[],await(0,Mu.default)(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=(0,Hn.default)(n,i=>i.key.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>(0,Hn.default)(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Uu(i,s),n)),e.offset!=null){let i=0;n=(0,Hn.default)(n,()=>i++>=e.offset)}return e.limit!=null&&(n=(0,Fu.default)(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null&&(n=(0,Hn.default)(n,i=>i.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>(0,Hn.default)(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Uu(i,s),n)),e.offset!=null){let i=0;n=(0,Hn.default)(n,()=>i++>=e.offset)}return e.limit!=null&&(n=(0,Fu.default)(n,e.limit)),n}};var ra=(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 Ku={};pt(Ku,{identity:()=>tx});var tx=Ni({prefix:"\0",name:"identity",encode:t=>_d(t),decode:t=>Sd(t)});var Vu={};pt(Vu,{base2:()=>rx});var rx=ze({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var qu={};pt(qu,{base8:()=>nx});var nx=ze({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Hu={};pt(Hu,{base10:()=>ix});var ix=ln({prefix:"9",name:"base10",alphabet:"0123456789"});var zu={};pt(zu,{base16:()=>sx,base16upper:()=>ox});var sx=ze({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ox=ze({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var $u={};pt($u,{base36:()=>ax,base36upper:()=>cx});var ax=ln({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),cx=ln({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Gu={};pt(Gu,{base256emoji:()=>dx});var kd=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}"),ux=kd.reduce((t,e,r)=>(t[r]=e,t),[]),lx=kd.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function fx(t){return t.reduce((e,r)=>(e+=ux[r],e),"")}function hx(t){let e=[];for(let r of t){let n=lx[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var dx=Ni({prefix:"\u{1F680}",name:"base256emoji",encode:fx,decode:hx});var Xu={};pt(Xu,{sha256:()=>ot,sha512:()=>Lx});var px=Fd,Ud=128,mx=127,yx=~mx,gx=Math.pow(2,31);function Fd(t,e,r){e=e||[],r=r||0;for(var n=r;t>=gx;)e[r++]=t&255|Ud,t/=128;for(;t&yx;)e[r++]=t&255|Ud,t>>>=7;return e[r]=t|0,Fd.bytes=r-n+1,e}var Ex=Yu,vx=128,Md=127;function Yu(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Yu.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Md)<<i:(o&Md)*Math.pow(2,i),i+=7}while(o>=vx);return Yu.bytes=s-n,r}var wx=Math.pow(2,7),xx=Math.pow(2,14),bx=Math.pow(2,21),Sx=Math.pow(2,28),_x=Math.pow(2,35),Ax=Math.pow(2,42),Cx=Math.pow(2,49),Ix=Math.pow(2,56),Tx=Math.pow(2,63),Rx=function(t){return t<wx?1:t<xx?2:t<bx?3:t<Sx?4:t<_x?5:t<Ax?6:t<Cx?7:t<Ix?8:t<Tx?9:10},Nx={encode:px,decode:Ex,encodingLength:Rx},Dx=Nx,Rs=Dx;var Ns=(t,e=0)=>[Rs.decode(t,e),Rs.decode.bytes],Di=(t,e,r=0)=>(Rs.encode(t,e,r),e),Li=t=>Rs.encodingLength(t);var lr=(t,e)=>{let r=e.byteLength,n=Li(t),i=n+Li(r),s=new Uint8Array(i+r);return Di(t,s,0),Di(r,s,n),s.set(e,i),new Pi(t,r,e,s)},zn=t=>{let e=Nr(t),[r,n]=Ns(e),[i,s]=Ns(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Pi(r,i,o,e)},Kd=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&bd(t.bytes,r.bytes)}},Pi=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var Qu=({name:t,code:e,encode:r})=>new Wu(t,e,r),Wu=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?lr(this.code,r):r.then(n=>lr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var qd=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ot=Qu({name:"sha2-256",code:18,encode:qd("SHA-256")}),Lx=Qu({name:"sha2-512",code:19,encode:qd("SHA-512")});var ju={};pt(ju,{identity:()=>fn});var Hd=0,Px="identity",zd=Nr,Bx=t=>lr(Hd,zd(t)),fn={code:Hd,name:Px,encode:zd,digest:Bx};var rR=new TextEncoder,nR=new TextDecoder;var Ux=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Fx(r,Zu(t),e||We.encoder);default:return Kx(r,Zu(t),e||Tt.encoder)}},$d=new WeakMap,Zu=t=>{let e=$d.get(t);if(e==null){let r=new Map;return $d.set(t,r),r}return e},ve=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!==Ds)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Vx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return ve.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=lr(e,r);return ve.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 ve.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Kd(e.multihash,n.multihash)}toString(e){return Ux(this,e)}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}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 ve)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new ve(n,i,s,o||Gd(n,i,s.bytes))}else if(r[qx]===!0){let{version:n,multihash:i,code:s}=r,o=zn(i);return ve.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!==Ds)throw new Error(`Version 0 CID must use dag-pb (code: ${Ds}) block encoding`);return new ve(e,r,n,n.bytes)}case 1:{let i=Gd(e,r,n.bytes);return new ve(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return ve.create(0,Ds,e)}static createV1(e,r){return ve.create(1,e,r)}static decode(e){let[r,n]=ve.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=ve.inspectBytes(e),n=r.size-r.multihashSize,i=Nr(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 Pi(r.multihashCode,r.digestSize,s,i);return[r.version===0?ve.createV0(o):ve.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,h]=Ns(e.subarray(r));return r+=h,f},i=n(),s=Ds;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]=Mx(e,r),s=ve.decode(i);return Zu(s).set(n,e),s}},Mx=(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 Tt.prefix:{let r=e||Tt;return[Tt.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)]}}},Fx=(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},Kx=(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},Ds=112,Vx=18,Gd=(t,e,r)=>{let n=Li(t),i=n+Li(e),s=new Uint8Array(i+r.byteLength);return Di(t,s,0),Di(e,s,n),s.set(r,i),s},qx=Symbol.for("@ipld/js-cid/CID");var hn={...Ku,...Vu,...qu,...Hu,...zu,...Bu,...$u,...Pu,...Ou,...Gu},dR={...Xu,...ju};function Gn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Pr(t=0){return globalThis.Buffer?.alloc!=null?Gn(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Br(t=0){return globalThis.Buffer?.allocUnsafe!=null?Gn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Wd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Yd=Wd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Ju=Wd("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=Br(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Hx={utf8:Yd,"utf-8":Yd,hex:hn.base16,latin1:Ju,ascii:Ju,binary:Ju,...hn},ia=Hx;function Q(t,e="utf8"){let r=ia[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=ia[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Gn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Or="/",Qd=new TextEncoder().encode(Or),sa=Qd[0],$e=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]!==sa)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 $e(e.join(Or))}static random(){return new $e(ra().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new $e(e):typeof e.uint8Array=="function"?new $e(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Qd),this._buf[0]!==sa){let e=new Uint8Array(this._buf.byteLength+1);e.fill(sa,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===sa;)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 $e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Or).slice(1)}type(){return zx(this.baseNamespace())}name(){return $x(this.baseNamespace())}instance(e){return new $e(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Or)||(e+=Or),e+=this.type(),new $e(e)}parent(){let e=this.list();return e.length===1?new $e(Or):new $e(e.slice(0,-1).join(Or))}child(e){return this.toString()===Or?e:e.toString()===Or?this:new $e(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 $e.withNamespaces([...this.namespaces(),...Gx(e.map(r=>r.namespaces()))])}};function zx(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function $x(t){let e=t.split(":");return e[e.length-1]}function Gx(t){return[].concat(...t)}var Zd=C(G(),1);function Jd(t){return t=t||new Error("Not Found"),(0,Zd.default)(t,"ERR_NOT_FOUND")}var oa=class extends ta{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 Jd();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 $e(e),value:r}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>new $e(e))}};var Os=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 ep=C(G(),1);async function*kr(t,e){for await(let r of t)await e(r)&&(yield r)}async function*Ls(t,e){for await(let r of t)yield e(r)}async function*Ps(t,e){yield*Ls(t,async r=>(await e.addressBook.add(r.id,r.multiaddrs),r))}function aa(t){let e=new Set;return kr(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*ca(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw(0,ep.default)(new Error("not found"),"NOT_FOUND")}var vp=C(Ur(),1);var la=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}},Bi=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new la(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 la(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 Yn(t={}){return jx(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 jx(t,e){e=e??{};let r=e.onEnd,n=new Bi,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 Bi,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 Bi,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*Mr(...t){let e=Yn({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 Zx=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},op=t=>t!=null&&(typeof t[Symbol.asyncIterator]=="function"||typeof t[Symbol.iterator]=="function"||typeof t.next=="function"),rl=t=>t!=null&&typeof t.sink=="function"&&op(t.source),Jx=t=>e=>{let r=t.sink(e);if(r.then!=null){let n=Yn({objectMode:!0});return r.then(()=>{n.end()},s=>{n.end(s)}),Mr(n,async function*(){yield*t.source,n.end()}())}return t.source};function Ce(t,...e){if(rl(t)){let n=t;t=()=>n.source}else if(op(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&rl(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++)rl(r[n])&&(r[n]=Jx(r[n]));return Zx(...r)}async function Rt(t){for await(let e of t)return e}async function dn(t){for await(let e of t);}var pa=C(nl(),1),wp=C(fr(),1),Ep=M("libp2p:peer-routing"),da=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,pa.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new vp.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,wp.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await dn(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(e){Ep.error(e)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,pa.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(e,r){if(this.routers.length===0)throw(0,Os.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw(0,Os.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Ce(Mr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(s){Ep.error(s)}}())),i=>kr(i,Boolean),i=>Ps(i,this.components.peerStore),async i=>await Rt(i));if(n!=null)return n;throw(0,Os.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw(0,Os.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ce(Mr(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>Ps(n,this.components.peerStore),n=>aa(n),n=>ca(n))}};var pn=C(G(),1);var ma=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(Mr(...this.routers.map(n=>n.findProviders(e,r))),n=>Ps(n,this.components.peerStore),n=>aa(n),n=>ca(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 dn(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 bp=C(G(),1);var sl=Symbol.for("@libp2p/peer-id");function Wn(t){return t!=null&&Boolean(t[sl])}var lb=Symbol.for("nodejs.util.inspect.custom"),xp=Object.values(hn).map(t=>t.decoder).reduce((t,e)=>t.or(e),hn.identity.decoder),Sp=114,ol=36,al=37,ks=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[sl](){return!0}toString(){return this.string==null&&(this.string=We.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return ve.createV1(Sp,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 me(e).equals(this);if(e?.multihash?.bytes!=null)return _e(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[lb](){return`PeerId(${this.toString()})`}},Qn=class extends ks{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Xn=class extends ks{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},jn=class extends ks{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Qe(t){if(t.type==="RSA")return new Qn(t);if(t.type==="Ed25519")return new Xn(t);if(t.type==="secp256k1")return new jn(t);throw(0,bp.default)(new Error("Not a PeerId"),"ERR_INVALID_PARAMETERS")}function me(t,e){if(e=e??xp,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=zn(We.decode(`z${t}`));return t.startsWith("12D")?new Xn({multihash:r}):t.startsWith("16U")?new jn({multihash:r}):new Qn({multihash:r})}return mn(xp.decode(t))}function mn(t){try{let e=zn(t);if(e.code===fn.code){if(e.digest.length===ol)return new Xn({multihash:e});if(e.digest.length===al)return new jn({multihash:e})}if(e.code===ot.code)return new Qn({multihash:e})}catch{return fb(ve.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function fb(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==Sp)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===ot.code)return new Qn({multihash:t.multihash});if(e.code===fn.code){if(e.digest.length===ol)return new Xn({multihash:t.multihash});if(e.digest.length===al)return new jn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Ui(t,e){return t.length===ol?new Xn({multihash:lr(fn.code,t),privateKey:e}):t.length===al?new jn({multihash:lr(fn.code,t),privateKey:e}):new Qn({multihash:await ot.digest(t),publicKey:t,privateKey:e})}var ya=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 _p=45,hb=15,Mi=new ya;function Ap(t){if(!(t.length>hb))return Mi.new(t).parseWith(()=>Mi.readIPv4Addr())}function Cp(t){if(!(t.length>_p))return Mi.new(t).parseWith(()=>Mi.readIPv6Addr())}function Ip(t){if(!(t.length>_p))return Mi.new(t).parseWith(()=>Mi.readIPAddr())}function Tp(t){return Boolean(Ap(t))}function Rp(t){return Boolean(Cp(t))}function Fi(t){return Boolean(Ip(t))}var Np=Tp,db=Rp,cl=function(t){let e=0;if(t=t.toString().trim(),Np(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(db(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Np(r[n]),o;s&&(o=cl(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")},Dp=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 Us={},ul={},mb=[[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"]];mb.forEach(t=>{let e=yb(...t);ul[e.code]=e,Us[e.name]=e});function yb(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(ul[t]!=null)return ul[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Us[t]!=null)return Us[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var hr=C(ga(),1);function Xe(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Br(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Gn(r)}function Hp(t,e){switch(Ie(t).code){case 4:case 41:return Db(e);case 6:case 273:case 33:case 132:return $p(e).toString();case 53:case 54:case 55:case 56:case 400:case 777:return Pb(e);case 421:return Ub(e);case 444:return qp(e);case 445:return qp(e);case 466:return kb(e);default:return Q(e,"base16")}}function zp(t,e){switch(Ie(t).code){case 4:return Vp(e);case 41:return Vp(e);case 6:case 273:case 33:case 132:return dl(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 777:return Lb(e);case 421:return Bb(e);case 444:return Mb(e);case 445:return Fb(e);case 466:return Ob(e);default:return q(e,"base16")}}var hl=Object.values(hn).map(t=>t.decoder),Nb=function(){let t=hl[0].or(hl[1]);return hl.slice(2).forEach(e=>t=t.or(e)),t}();function Vp(t){if(!Fi(t))throw new Error("invalid ip address");return cl(t)}function Db(t){let e=Dp(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Fi(e))throw new Error("invalid ip address");return e}function dl(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function $p(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Lb(t){let e=q(t),r=Uint8Array.from(hr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function Pb(t){let e=hr.default.decode(t);if(t=t.slice(hr.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return Q(t)}function Bb(t){let e;t[0]==="Q"||t[0]==="1"?e=zn(We.decode(`z${t}`)).bytes:e=ve.parse(t).multihash.bytes;let r=Uint8Array.from(hr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function Ob(t){let e=Nb.decode(t),r=Uint8Array.from(hr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function kb(t){let e=hr.default.decode(t),r=t.slice(hr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+Q(r,"base64url")}function Ub(t){let e=hr.default.decode(t),r=t.slice(hr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return Q(r,"base58btc")}function Mb(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=Tt.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=dl(n);return Xe([r,i],r.length+i.length)}function Fb(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=Tt.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=dl(n);return Xe([r,i],r.length+i.length)}function qp(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=Q(e,"base32"),i=$p(r);return`${n}:${i}`}var Ki=C(ga(),1);function Kb(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 Yp("invalid address: "+t);if(s.path===!0){e.push([i,El(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function Vb(t){let e=[];return t.map(r=>{let n=wa(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),El(e.join("/"))}function qb(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=wa(e);return e.length>1?[r.code,zp(r.code,e[1])]:[r.code]})}function pl(t){return t.map(e=>{let r=wa(e);return e[1]!=null?[r.code,Hp(r.code,e[1])]:[r.code]})}function ml(t){return va(Xe(t.map(e=>{let r=wa(e),n=Uint8Array.from(Ki.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=Xe([n,e[1]])),n})))}function yl(t,e){return t.size>0?t.size/8:t.size===0?0:Ki.default.decode(e)+(Ki.default.decode.bytes??0)}function Ea(t){let e=[],r=0;for(;r<t.length;){let n=Ki.default.decode(t,r),i=Ki.default.decode.bytes??0,s=Ie(n),o=yl(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 Yp("Invalid address Uint8Array: "+Q(t,"base16"));e.push([n,a])}return e}function gl(t){let e=Ea(t),r=pl(e);return Vb(r)}function Hb(t){t=El(t);let e=Kb(t),r=qb(e);return ml(r)}function Gp(t){return Hb(t)}function va(t){let e=zb(t);if(e!=null)throw e;return Uint8Array.from(t)}function zb(t){try{Ea(t)}catch(e){return e}}function El(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Yp(t){return new Error("Error parsing address: "+t)}function wa(t){return Ie(t[0])}var wl=C(ga(),1);var Xp=C(G(),1);var Vi=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)},vl=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},Ms,Fs,Ks,Wp,Gb=Symbol.for("nodejs.util.inspect.custom"),Qp=[Ie("dns").code,Ie("dns4").code,Ie("dns6").code,Ie("dnsaddr").code],Yb=[Ie("p2p").code,Ie("ipfs").code],xl=new Map,jp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Zp(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 dr("/"+[r,t.address,e,t.port].join("/"))}function Fr(t){return Boolean(t?.[jp])}var dr=class{constructor(e){if(Ms.set(this,void 0),Fs.set(this,void 0),Ks.set(this,void 0),this[Wp]=!0,e==null&&(e=""),e instanceof Uint8Array)this.bytes=va(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=Gp(e)}else if(Fr(e))this.bytes=va(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return Vi(this,Ms,"f")==null&&vl(this,Ms,gl(this.bytes),"f"),Vi(this,Ms,"f")}toJSON(){return this.toString()}toOptions(){let e=this.protoCodes(),r=this.toString().split("/").slice(1),n,i;if(r.length>2)Qp.includes(e[0])&&Yb.includes(e[1])?(n=Ie("tcp").name,i=443):(n=Ie(r[2]).name,i=parseInt(r[3]));else if(Qp.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=wl.default.decode(r,n),s=wl.default.decode.bytes??0,o=Ie(i),a=yl(o,r.slice(n+s));n+=a+s,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return Vi(this,Fs,"f")==null&&vl(this,Fs,Ea(this.bytes),"f"),Vi(this,Fs,"f")}stringTuples(){return Vi(this,Ks,"f")==null&&vl(this,Ks,pl(this.tuples()),"f"),Vi(this,Ks,"f")}encapsulate(e){return e=new dr(e),new dr(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 dr(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 dr(ml(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Us.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(ve.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=xl.get(r.name);if(n==null)throw(0,Xp.default)(new Error(`no available resolver for ${r.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new dr(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)}[(Ms=new WeakMap,Fs=new WeakMap,Ks=new WeakMap,Wp=jp,Gb)](){return`Multiaddr(${gl(this.bytes)})`}};function oe(t){return new dr(t)}var bl=C(G(),1);function Wb(t){let e=t.getPeerId();if(e==null)throw(0,bl.default)(new Error(`${t.toString()} does not have a valid peer type`),b.ERR_INVALID_MULTIADDR);try{return me(e)}catch{throw(0,bl.default)(new Error(`${t.toString()} is not a valid peer type`),b.ERR_INVALID_MULTIADDR)}}function Kr(t){if(Wn(t))return{id:t,multiaddrs:[],protocols:[]};let e;return Fr(t)&&(e=t,t=Wb(t)),{id:t,multiaddrs:e!=null?[e]:[],protocols:[]}}var Qb=t=>t,xa=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??Qb}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&&me(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 Ra=C(G(),1);var a0=C(o0(),1),pr=a0.default;var c0=M("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),_a=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"?c0("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;c0(e?"Page Visible":"Page Hidden"),this.dispatchEvent(new X("visibilityChange",{detail:e}))}};var Vr=M("libp2p:connection-manager:latency-monitor"),Aa=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,Vr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?Vr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):Vr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(Vr("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?(Vr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(Vr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){t2()&&(this.visibilityChangeEmitter=new _a,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(),Vr.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,Vr.trace("MS: %s Data: %O",i,this.latencyData)};Vr.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 t2(){return typeof globalThis.window<"u"}var Na=C(fr(),1);var Ca="OPEN",_l="CLOSING",Ia="CLOSED";function qr(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 Vs=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 qr(this.map.entries(),e=>[me(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,me(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 qr(this.map.keys(),e=>me(e))}values(){return this.map.values()}get size(){return this.map.size}};var Hr=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 qr(this.set.entries(),e=>{let r=me(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=me(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return qr(this.set.values(),e=>me(e))}intersection(e){let r=new Hr;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new Hr;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new Hr;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var zi=class{constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return qr(this.list.entries(),e=>me(e[1]))}concat(e){let r=new zi(this);for(let n of e)r.push(n);return r}entries(){return qr(this.list.entries(),e=>[e[0],me(e[1])])}every(e){return this.list.every((r,n)=>e(me(r),n,this))}filter(e){let r=new zi;return this.list.forEach((n,i)=>{let s=me(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(me(n),i,this));if(r!=null)return me(r)}findIndex(e){return this.list.findIndex((r,n)=>e(me(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(me(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 me(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return me(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 Ml=C(Ur(),1);var u0="keep-alive";var sm=C(im(),1);var et=M("libp2p:connection-manager"),M2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},F2=6e4,Da=class extends Ue{constructor(e,r){if(super(),this.opts=pr.call({ignoreUndefined:!0},M2,r),this.opts.maxConnections<this.opts.minConnections)throw(0,Ra.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,this.latencyMonitor=new Aa({latencyCheckIntervalMs:r.pollInterval,dataEmitIntervalMs:r.pollInterval});try{(0,Na.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=r.startupReconnectTimeout??F2,this.dialTimeout=r.dialTimeout??3e4,this.allow=(r.allow??[]).map(n=>oe(n)),this.deny=(r.deny??[]).map(n=>oe(n)),this.inboundConnectionRateLimiter=new sm.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===u0).length>0&&e.push(r.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Ml.TimeoutController(this.startupReconnectTimeout);try{(0,Na.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(Wn(e))n=e;else if(Fr(e))n=Kr(e).id;else throw(0,Ra.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 Ml.TimeoutController(this.dialTimeout),r.signal=s.signal;try{(0,Na.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(!Wn(e))throw(0,Ra.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===Ca):[]}_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 Vs;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;return c>u?1:c<u?-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 Fl=C(tl(),1);async function zr(t){let e=[];for await(let r of t)e.push(r);return e}async function*zs(t,e){yield*(await zr(t)).sort(e)}var yn=M("libp2p:connection-manager:auto-dialler"),K2={enabled:!0,minConnections:0,autoDialInterval:1e4},La=class{constructor(e,r){this.components=e,this.options=pr.call({ignoreUndefined:!0},K2,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,Fl.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=>kr(i,s=>!s.id.equals(this.components.peerId)),i=>zs(i,(s,o)=>o.protocols.length>s.protocols.length||o.id.publicKey!=null&&s.id.publicKey==null?1:-1),async i=>await zr(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,Fl.default)(this._autoDial,this.options.autoDialInterval))}};var gy=C(G(),1);var V2=W("dns4"),q2=W("dns6"),H2=W("dnsaddr"),Qi=mt(W("dns"),H2,V2,q2),Pa=mt(W("ip4"),W("ip6")),Ws=mt(ee(Pa,W("tcp")),ee(Qi,W("tcp"))),am=ee(Pa,W("udp")),z2=ee(am,W("utp")),$2=ee(am,W("quic")),$s=mt(ee(Ws,W("ws")),ee(Qi,W("ws"))),Gs=mt(ee(Ws,W("wss")),ee(Qi,W("wss"))),Kl=mt(ee(Ws,W("http")),ee(Pa,W("http")),ee(Qi,W("http"))),Vl=mt(ee(Ws,W("https")),ee(Pa,W("https")),ee(Qi,W("https"))),cm=mt(ee($s,W("p2p-webrtc-star"),W("p2p")),ee(Gs,W("p2p-webrtc-star"),W("p2p")),ee($s,W("p2p-webrtc-star")),ee(Gs,W("p2p-webrtc-star"))),HL=mt(ee($s,W("p2p-websocket-star"),W("p2p")),ee(Gs,W("p2p-websocket-star"),W("p2p")),ee($s,W("p2p-websocket-star")),ee(Gs,W("p2p-websocket-star"))),um=mt(ee(Kl,W("p2p-webrtc-direct"),W("p2p")),ee(Vl,W("p2p-webrtc-direct"),W("p2p")),ee(Kl,W("p2p-webrtc-direct")),ee(Vl,W("p2p-webrtc-direct"))),Ys=mt($s,Gs,Kl,Vl,cm,um,Ws,z2,$2,Qi),zL=mt(ee(Ys,W("p2p-stardust"),W("p2p")),ee(Ys,W("p2p-stardust"))),gn=mt(ee(Ys,W("p2p")),cm,um,W("p2p")),om=mt(ee(gn,W("p2p-circuit"),gn),ee(gn,W("p2p-circuit")),ee(W("p2p-circuit"),gn),ee(Ys,W("p2p-circuit")),ee(W("p2p-circuit"),Ys),W("p2p-circuit")),lm=()=>mt(ee(om,lm),om),Jn=lm(),$L=mt(ee(Jn,gn,Jn),ee(gn,Jn),ee(Jn,gn),Jn,gn);function fm(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:fm(e),partialMatch:e}}function mt(...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:fm(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 ef=C(Gl(),1),Zm=C(zm(),1),tf=C(Jl(),1),Jm=C(jm(),1),ey=C(ti(),1);function tS(){ey.default._configure(),ef.default._configure(Zm.default),tf.default._configure(Jm.default)}tS();var ty=["uint64","int64","sint64","fixed64","sfixed64"];function rS(t){for(let e of ty){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function rf(t){return rS(new ef.default(t))}function nS(t){for(let e of ty){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function nf(){return nS(tf.default.create())}function Te(t,e){let r=rf(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Re(t,e){let r=nf();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var ji;(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"})(ji||(ji={}));function Ma(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 Ma("enum",ji.VARINT,r,n)}function Ne(t,e){return Ma("message",ji.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 js=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ry(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 ni(t,e,r){let n=r??{},i=ry(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 js(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:d}=n;f(new js(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 iS(t,e,r){return n=>t(ni(n,e,r))}function Dt(t,e,r){return{sink:iS(t.sink,e,{...r,onAbort:void 0}),source:ni(t.source,e,r)}}var sS=M("libp2p:stream:converter");function sf(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=ni(u,e.signal));try{await i(u),await c()}catch(l){l.type!=="aborted"&&sS(l)}},source:e.signal!=null?ni(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 gr="/libp2p/circuit/relay/0.1.0";function ny(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=me(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 uf=C(G(),1);function iy(t,e){t.write({type:j.Type.STATUS,code:e})}function Fa(t,e){try{t.dstPeer?.addrs!=null&&t.dstPeer.addrs.forEach(r=>oe(r))}catch(r){throw iy(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 iy(e,t.type===j.Type.HOP?j.Status.HOP_SRC_MULTIADDR_INVALID:j.Status.STOP_SRC_MULTIADDR_INVALID),r}}var oy=Symbol.for("@achingbrain/uint8arraylist");function sy(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 Ka(t){return Boolean(t?.[oy])}var Ge=class{constructor(...e){Object.defineProperty(this,oy,{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(Ka(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(Ka(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=sy(this.bufs,e);return r.buf[r.index]}set(e,r){let n=sy(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(Ka(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 Ge;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(!Ka(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=Br(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=Pr(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=Pr(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=Pr(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=Br(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=Pr(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=Pr(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=Pr(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=Pr(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=Pr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof Ge)||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 Ge;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};function Va(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 ay=4294967296,Lt=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 Lt(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 Lt(r,n)}toBytes(e,r=0){let n=Va(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 Lt;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>ay&&(i=0,++n>ay&&(n=0))),new Lt(n,i)}static fromNumber(e){if(e===0)return new Lt;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 Lt(i,n)}static fromBytes(e,r=0){let n=Va(e),i=new Lt,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 oS=Math.pow(2,7),aS=Math.pow(2,14),cS=Math.pow(2,21),uS=Math.pow(2,28),lS=Math.pow(2,35),fS=Math.pow(2,42),hS=Math.pow(2,49),dS=Math.pow(2,56),pS=Math.pow(2,63),er={encodingLength(t){return t<oS?1:t<aS?2:t<cS?3:t<uS?4:t<lS?5:t<fS?6:t<hS?7:t<dS?8:t<pS?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=Br(er.encodingLength(t))),Lt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return Lt.fromBytes(t,e).toNumber(!0)}};function cy(t){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}var qa=t=>{let e=er.encodingLength(t),r=cy(e);return er.encode(t,r),qa.bytes=e,r};qa.bytes=0;function Vt(t){t=t??{};let e=t.lengthEncoder??qa;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}}}Vt.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??qa;return new Ge(r(t.byteLength),t)};var Zs=C(G(),1),mS=8,yS=1024*1024*4,ii;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(ii||(ii={}));var of=t=>{let e=er.decode(t);return of.bytes=er.encodingLength(e),e};of.bytes=0;function Pt(t){return async function*(r){let n=new Ge,i=ii.LENGTH,s=-1,o=t?.lengthDecoder??of,a=t?.maxLengthLength??mS,c=t?.maxDataLength??yS;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===ii.LENGTH)try{if(s=o(n),s<0)throw(0,Zs.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(s>c)throw(0,Zs.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=ii.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Zs.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===ii.DATA){if(n.byteLength<s)break;let l=n.sublist(0,s);n.consume(s),t?.onData!=null&&t.onData(l),yield l,i=ii.LENGTH}}if(n.byteLength>0)throw(0,Zs.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Pt.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 Pt({...e??{},onLength:s=>{r=s}})(n)};function af(t){let e=async function*(){let r=yield,n=new Ge;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new Ge;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 Ge);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 cf(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function Zi(t){let e=Yn(),r=af(t.source),n=cf(),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 Js=M("libp2p:circuit:stream-handler"),$r=class{constructor(e){let{stream:r,maxLength:n=4096}=e;this.stream=r,this.shake=Zi(this.stream),this.decoder=Pt.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 Js("read message type",r.type),r}Js("read received no value, closing stream"),this.close()}write(e){Js("write message type %s",e.type),this.shake.write(Vt.single(j.encode(e)))}rest(){return this.shake.rest(),this.shake.stream}end(e){this.write(e),this.close()}close(){Js("closing the stream"),this.rest().sink([]).catch(e=>{Js.error(e)})}};var eo=M("libp2p:circuit:stop");function uy(t){let{connection:e,request:r,streamHandler:n}=t;try{Fa(r,n)}catch(i){eo.error("invalid stop request via peer %p %o",e.remotePeer,i);return}return eo("stop request is valid"),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS}),n.rest()}async function ly(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(gr,{signal:n});eo("starting stop request to %p",e.remotePeer);let s=new $r({stream:i});s.write(r);let o=await s.read();if(o==null){s.close();return}if(o.code===j.Status.SUCCESS)return eo("stop request to %p was successful",e.remotePeer),s.rest();eo("stop request failed with code %d",o.code),s.close()}var qt=M("libp2p:circuit:hop");async function fy(t){let{connection:e,request:r,streamHandler:n,circuit:i,connectionManager:s}=t;if(!i.hopEnabled())return qt("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{Fa(r,n)}catch(f){qt.error("invalid hop request via peer %p %o",e.remotePeer,f);return}if(r.dstPeer==null){qt("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 qt("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 qt("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{qt("performing STOP request");let f=await ly({connection:a[0],request:c});if(f==null)throw new Error("Could not stop");u=f}catch(f){qt.error(f);return}qt("hop request from %p is valid",e.remotePeer),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS});let l=n.rest();return qt("creating related connections"),await Ce(l,u,l)}async function hy(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(gr,{signal:n}),s=new $r({stream:i});s.write(r);let o=await s.read();if(o==null)throw(0,uf.default)(new Error("HOP request had no response"),b.ERR_HOP_REQUEST_FAILED);if(o.code===j.Status.SUCCESS)return qt("hop request was successful"),s.rest();throw qt("hop request failed with code %d, closing stream",o.code),s.close(),(0,uf.default)(new Error(`HOP request failed with code "${o.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function dy(t){let{connection:e,signal:r}=t,n=await e.newStream(gr,{signal:r}),i=new $r({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 py(t){let{connection:e,streamHandler:r,circuit:n}=t,i=n.hopEnabled();qt("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 yy=Symbol.for("@libp2p/transport");var my;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(my||(my={}));var Ey=C(Ur(),1),vy=C(fr(),1),Ht=M("libp2p:circuit"),za=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(gr,e=>{this._onProtocol(e).catch(r=>{Ht.error(r)})}).catch(e=>{Ht.error(e)}))}async stop(){await this.components.registrar.unhandle(gr)}hopEnabled(){return!0}hopActive(){return!0}get[yy](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(e){let{connection:r,stream:n}=e,i=new Ey.TimeoutController(this._init.hop.timeout);try{(0,vy.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=Dt(n,i.signal),o=new $r({stream:{...n,...s}}),a=await o.read();if(a==null){Ht("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:{Ht("received CAN_HOP request from %p",r.remotePeer),await py({circuit:this,connection:r,streamHandler:o});break}case j.Type.HOP:{Ht("received HOP request from %p",r.remotePeer),await fy({connection:r,request:a,streamHandler:o,circuit:this,connectionManager:this.components.connectionManager});break}case j.Type.STOP:{Ht("received STOP request from %p",r.remotePeer),c=await uy({connection:r,request:a,streamHandler:o});break}default:{Ht("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=sf({stream:c,remoteAddr:u,localAddr:l}),h=a.type===j.Type.HOP?"relay":"inbound";Ht("new %s connection %s",h,f.remoteAddr);let d=await this.components.upgrader.upgradeInbound(f);Ht("%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 Ht.error(d),(0,gy.default)(new Error(d),b.ERR_RELAYED_DIAL)}let c=me(o),u=me(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 hy({...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=sf({stream:d,remoteAddr:e,localAddr:p});return Ht("new outbound connection %s",y.remoteAddr),await this.components.upgrader.upgradeOutbound(y)}catch(d){throw Ht.error("Circuit relay dial failed",d),l&&await h.close(),d}}createListener(e){return this.handler=e.handler,ny({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(e){return e=Array.isArray(e)?e:[e],e.filter(r=>Jn.matches(r))}};var Za=C(nl(),1);async function $a(t){let e=new TextEncoder().encode(t),r=await ot.digest(e);return ve.createV0(r)}var lf="hop_relay",ff="true",Ga="/libp2p/relay";var Cy=C(wy(),1);var xy="[a-fA-F\\d:]",xn=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${xy})|(?<=${xy})(?=\\s|$))`:"",tr="(?: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}",Ya=`
|
|
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 VS(t){return t.replace(/^\s+/,"")}});var Zy=N((S4,jy)=>{var ns=ie();An();De();var U=ns.asn1,is=jy.exports=ns.pkcs7asn1=ns.pkcs7asn1||{};ns.pkcs7=ns.pkcs7||{};ns.pkcs7.asn1=is;var Qy={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"}]};is.contentInfoValidator=Qy;var Xy={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"}]};is.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(Xy)};is.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(Xy)};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"}]};is.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"},Qy,{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]}]};is.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((_4,Jy)=>{var uc=ie();Jy.exports=uc.md=uc.md||{};uc.md.algorithms=uc.md.algorithms||{}});var sg=N((A4,ig)=>{var br=ie();Cn();De();var tg=ig.exports=br.sha256=br.sha256||{};br.md.sha256=br.md.algorithms.sha256=tg;tg.create=function(){rg||HS();var t=null,e=br.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=br.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=br.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),eg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=br.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(_f.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};eg(f,r,i);var h=br.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 _f=null,rg=!1,ng=null;function HS(){_f=String.fromCharCode(128),_f+=br.util.fillString(String.fromCharCode(0),64),ng=[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],rg=!0}function eg(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+ng[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 ag=N((C4,og)=>{var Sr=ie();De();var lc=null;Sr.util.isNodejs&&!Sr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(lc=Zn());var zS=og.exports=Sr.prng=Sr.prng||{};zS.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=Sr.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 Sr.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)),Sr.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=Sr.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=Sr.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(D){return h.getRandomValues(D)});var d=Sr.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 lc?(e.seedFile=function(u,l){lc.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},e.seedFileSync=function(u){return lc.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 oi=N((I4,Af)=>{var ht=ie();ts();sg();ag();De();(function(){if(ht.random&&ht.random.getBytes){Af.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,Af.exports=ht.random})(typeof jQuery<"u"?jQuery:null)})()});var ug=N((T4,cg)=>{var ai=ie();De();ai.mgf=ai.mgf||{};var $S=cg.exports=ai.mgf.mgf1=ai.mgf1=ai.mgf1||{};$S.create=function(t){var e={generate:function(r,n){for(var i=new ai.util.ByteBuffer,s=Math.ceil(n/t.digestLength),o=0;o<s;o++){var a=new ai.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 fg=N((R4,lg)=>{var fc=ie();ug();lg.exports=fc.mgf=fc.mgf||{};fc.mgf.mgf1=fc.mgf1});var dg=N((N4,hg)=>{var ci=ie();oi();De();var GS=hg.exports=ci.pss=ci.pss||{};GS.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=ci.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||ci.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 ci.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 ci.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 P=65280>>8*h-f&255;return D=String.fromCharCode(D.charCodeAt(0)&~P)+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),P=new ci.util.ByteBuffer;P.fillWithByte(0,8),P.putBytes(c),P.putBytes(D),e.start(),e.update(P.getBytes());var te=e.digest().getBytes();return g===te},a}});var pc=N((D4,xg)=>{var Cf=ie();xg.exports=Cf.jsbn=Cf.jsbn||{};var Yr,YS=0xdeadbeefcafe,pg=(YS&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))}Cf.jsbn.BigInteger=I;function pe(){return new I(null)}function WS(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 QS(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 mg(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=mg,Yr=28):pg&&navigator.appName=="Microsoft Internet Explorer"?(I.prototype.am=QS,Yr=30):pg&&navigator.appName!="Netscape"?(I.prototype.am=WS,Yr=26):(I.prototype.am=mg,Yr=28);I.prototype.DB=Yr;I.prototype.DM=(1<<Yr)-1;I.prototype.DV=1<<Yr;var If=52;I.prototype.FV=Math.pow(2,If);I.prototype.F1=If-Yr;I.prototype.F2=2*Yr-If;var XS="0123456789abcdefghijklmnopqrstuvwxyz",hc=new Array,ss,$t;ss="0".charCodeAt(0);for($t=0;$t<=9;++$t)hc[ss++]=$t;ss="a".charCodeAt(0);for($t=10;$t<36;++$t)hc[ss++]=$t;ss="A".charCodeAt(0);for($t=10;$t<36;++$t)hc[ss++]=$t;function yg(t){return XS.charAt(t)}function gg(t,e){var r=hc[t.charCodeAt(e)];return r??-1}function jS(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 ZS(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 JS(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:gg(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 e_(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function t_(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=yg(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+=yg(n));return i?s:"0"}function r_(){var t=pe();return I.ZERO.subTo(this,t),t}function n_(){return this.s<0?this.negate():this}function i_(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 dc(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 s_(){return this.t<=0?0:this.DB*(this.t-1)+dc(this.data[this.t-1]^this.s&this.DM)}function o_(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 a_(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 c_(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 u_(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 l_(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 f_(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 h_(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 d_(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-dc(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 p_(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 ui(t){this.m=t}function m_(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function y_(t){return t}function g_(t){t.divRemTo(this.m,null,t)}function E_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function v_(t,e){t.squareTo(e),this.reduce(e)}ui.prototype.convert=m_;ui.prototype.revert=y_;ui.prototype.reduce=g_;ui.prototype.mulTo=E_;ui.prototype.sqrTo=v_;function w_(){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 li(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 x_(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 b_(t){var e=pe();return t.copyTo(e),this.reduce(e),e}function S_(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 __(t,e){t.squareTo(e),this.reduce(e)}function A_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}li.prototype.convert=x_;li.prototype.revert=b_;li.prototype.reduce=S_;li.prototype.mulTo=A_;li.prototype.sqrTo=__;function C_(){return(this.t>0?this.data[0]&1:this.s)==0}function I_(t,e){if(t>4294967295||t<1)return I.ONE;var r=pe(),n=pe(),i=e.convert(this),s=dc(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 T_(t,e){var r;return t<256||e.isEven()?r=new ui(e):r=new li(e),this.exp(t,r)}I.prototype.copyTo=jS;I.prototype.fromInt=ZS;I.prototype.fromString=JS;I.prototype.clamp=e_;I.prototype.dlShiftTo=o_;I.prototype.drShiftTo=a_;I.prototype.lShiftTo=c_;I.prototype.rShiftTo=u_;I.prototype.subTo=l_;I.prototype.multiplyTo=f_;I.prototype.squareTo=h_;I.prototype.divRemTo=d_;I.prototype.invDigit=w_;I.prototype.isEven=C_;I.prototype.exp=I_;I.prototype.toString=t_;I.prototype.negate=r_;I.prototype.abs=n_;I.prototype.compareTo=i_;I.prototype.bitLength=s_;I.prototype.mod=p_;I.prototype.modPowInt=T_;I.ZERO=In(0);I.ONE=In(1);function R_(){var t=pe();return this.copyTo(t),t}function N_(){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 D_(){return this.t==0?this.s:this.data[0]<<24>>24}function L_(){return this.t==0?this.s:this.data[0]<<16>>16}function P_(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function B_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function O_(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 k_(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=gg(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 U_(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),Tf,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 M_(){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 F_(t){return this.compareTo(t)==0}function K_(t){return this.compareTo(t)<0?this:t}function V_(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 H_(t,e){return t&e}function z_(t){var e=pe();return this.bitwiseTo(t,H_,e),e}function Tf(t,e){return t|e}function $_(t){var e=pe();return this.bitwiseTo(t,Tf,e),e}function Eg(t,e){return t^e}function G_(t){var e=pe();return this.bitwiseTo(t,Eg,e),e}function vg(t,e){return t&~e}function Y_(t){var e=pe();return this.bitwiseTo(t,vg,e),e}function W_(){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 Q_(t){var e=pe();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function X_(t){var e=pe();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function j_(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 Z_(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+j_(this.data[t]);return this.s<0?this.t*this.DB:-1}function J_(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function eA(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=J_(this.data[r]^e);return t}function tA(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function rA(t,e){var r=I.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function nA(t){return this.changeBit(t,Tf)}function iA(t){return this.changeBit(t,vg)}function sA(t){return this.changeBit(t,Eg)}function oA(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 aA(t){var e=pe();return this.addTo(t,e),e}function cA(t){var e=pe();return this.subTo(t,e),e}function uA(t){var e=pe();return this.multiplyTo(t,e),e}function lA(t){var e=pe();return this.divRemTo(t,e,null),e}function fA(t){var e=pe();return this.divRemTo(t,null,e),e}function hA(t){var e=pe(),r=pe();return this.divRemTo(t,e,r),new Array(e,r)}function dA(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function pA(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 so(){}function wg(t){return t}function mA(t,e,r){t.multiplyTo(e,r)}function yA(t,e){t.squareTo(e)}so.prototype.convert=wg;so.prototype.revert=wg;so.prototype.mulTo=mA;so.prototype.sqrTo=yA;function gA(t){return this.exp(t,new so)}function EA(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 vA(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 os(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 wA(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 xA(t){return t}function bA(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 SA(t,e){t.squareTo(e),this.reduce(e)}function _A(t,e,r){t.multiplyTo(e,r),this.reduce(r)}os.prototype.convert=wA;os.prototype.revert=xA;os.prototype.reduce=bA;os.prototype.mulTo=_A;os.prototype.sqrTo=SA;function AA(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 ui(e):e.isEven()?s=new os(e):s=new li(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=dc(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 CA(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 IA(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 TA(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],RA=(1<<26)/or[or.length-1];function NA(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<RA;)n*=or[i++];for(n=r.modInt(n);e<i;)if(n%or[e++]==0)return!1}return r.millerRabin(t)}function DA(t){var e=this.subtract(I.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=LA(),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 LA(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}I.prototype.chunkSize=P_;I.prototype.toRadix=O_;I.prototype.fromRadix=k_;I.prototype.fromNumber=U_;I.prototype.bitwiseTo=q_;I.prototype.changeBit=rA;I.prototype.addTo=oA;I.prototype.dMultiply=dA;I.prototype.dAddOffset=pA;I.prototype.multiplyLowerTo=EA;I.prototype.multiplyUpperTo=vA;I.prototype.modInt=IA;I.prototype.millerRabin=DA;I.prototype.clone=R_;I.prototype.intValue=N_;I.prototype.byteValue=D_;I.prototype.shortValue=L_;I.prototype.signum=B_;I.prototype.toByteArray=M_;I.prototype.equals=F_;I.prototype.min=K_;I.prototype.max=V_;I.prototype.and=z_;I.prototype.or=$_;I.prototype.xor=G_;I.prototype.andNot=Y_;I.prototype.not=W_;I.prototype.shiftLeft=Q_;I.prototype.shiftRight=X_;I.prototype.getLowestSetBit=Z_;I.prototype.bitCount=eA;I.prototype.testBit=tA;I.prototype.setBit=nA;I.prototype.clearBit=iA;I.prototype.flipBit=sA;I.prototype.add=aA;I.prototype.subtract=cA;I.prototype.multiply=uA;I.prototype.divide=lA;I.prototype.remainder=fA;I.prototype.divideAndRemainder=hA;I.prototype.modPow=AA;I.prototype.modInverse=TA;I.prototype.pow=gA;I.prototype.gcd=CA;I.prototype.isProbablePrime=NA});var Cg=N((L4,Ag)=>{var _r=ie();Cn();De();var Sg=Ag.exports=_r.sha1=_r.sha1||{};_r.md.sha1=_r.md.algorithms.sha1=Sg;Sg.create=function(){_g||PA();var t=null,e=_r.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=_r.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=_r.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),bg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=_r.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Rf.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};bg(f,r,i);var h=_r.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 Rf=null,_g=!1;function PA(){Rf=String.fromCharCode(128),Rf+=_r.util.fillString(String.fromCharCode(0),64),_g=!0}function bg(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 Rg=N((P4,Tg)=>{var Ar=ie();De();oi();Cg();var Ig=Tg.exports=Ar.pkcs1=Ar.pkcs1||{};Ig.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=Ar.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=Ar.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=mc(i,a-s.digestLength-1,o),g=Ar.util.xorBytes(p,y,p.length),E=mc(g,s.digestLength,o),x=Ar.util.xorBytes(i,E,i.length);return"\0"+x+g};Ig.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=Ar.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=mc(l,i.digestLength,s),h=Ar.util.xorBytes(u,f,u.length),d=mc(h,o-i.digestLength-1,s),p=Ar.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),P=D&1^1,te=x?65534:0;g|=D&te,x=x&P,_+=x}if(g||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function mc(t,e,r){r||(r=Ar.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 Ng=N((B4,Nf)=>{var Tn=ie();De();pc();oi();(function(){if(Tn.prime){Nf.exports=Tn.prime;return}var t=Nf.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,P){D&&(P=2),g=P-1,B()});B();function B(){g=Math.max(1,g);for(var D=[],P=0;P<g;++P)D[P]=new Worker(_);for(var te=g,P=0;P<g;++P)D[P].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 Ai=y.toString(16);Zt.target.postMessage({hex:Ai,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 oo=N((O4,Ug)=>{var z=ie();An();pc();rs();Rg();Ng();oi();De();typeof ce>"u"&&(ce=z.jsbn.BigInteger);var ce,Df=z.util.isNodejs?Zn():null,S=z.asn1,Gt=z.util;z.pki=z.pki||{};Ug.exports=z.pki.rsa=z.rsa=z.rsa||{};var Z=z.pki,BA=[6,4,2,4,2,4,6,2],OA={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"}]},kA={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"}]},UA={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"}]},MA=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"}]}]},FA={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"}]},KA=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()},Og=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=kg(t,e,r)):(i=z.util.createBuffer(),i.putBytes(t));for(var o=new ce(i.toHex(),16),a=Og(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=Og(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?yc(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(BA[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(Dg("generateKeyPair"))return Df.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(Lg("generateKey")&&Lg("exportKey"))return Gt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Bg(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(Pg("generateKey")&&Pg("exportKey")){var i=Gt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Bg(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(Dg("generateKeyPairSync")){var s=Df.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;VA(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 kg(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=yc(u,r,!0);var l=S.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!S.validate(l,FA,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=yc(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:yc};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:KA},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,OA,e,r)&&(t=S.fromDer(z.util.createBuffer(e.privateKey))),e={},r=[],!S.validate(t,kA,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,Cr(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.e)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.d)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.p)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.q)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.dP)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.dQ)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.qInv))])};Z.publicKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,MA,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,UA,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,Cr(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Cr(t.e))])};function kg(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 yc(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 VA(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 Cr(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 Dg(t){return z.util.isNodejs&&typeof Df[t]=="function"}function Lg(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 Pg(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 Bg(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 Pf=N((k4,qg)=>{var $=ie();ts();An();sc();Cn();fg();rs();cc();dg();oo();De();var m=$.asn1,L=qg.exports=$.pki=$.pki||{},ue=L.oids,Ye={};Ye.CN=ue.commonName;Ye.commonName="CN";Ye.C=ue.countryName;Ye.countryName="C";Ye.L=ue.localityName;Ye.localityName="L";Ye.ST=ue.stateOrProvinceName;Ye.stateOrProvinceName="ST";Ye.O=ue.organizationName;Ye.organizationName="O";Ye.OU=ue.organizationalUnitName;Ye.organizationalUnitName="OU";Ye.E=ue.emailAddress;Ye.emailAddress="E";var Fg=$.pki.rsa.publicKeyValidator,HA={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"},Fg,{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"}]},zA={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"}]}]},$A={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"},Fg,{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}]}]}]},GA={name:"CertificationRequest",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[$A,{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"}]};L.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 Ye&&(s.shortName=Ye[s.name])),e&&(e.update(s.type),e.update(s.value)),r.push(s)}return r};L.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 Ye&&(a.shortName=Ye[a.name])),a.type===ue.extensionRequest){a.extensions=[];for(var c=0;c<a.value.length;++c)a.extensions.push(L.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 gc=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,zA,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},Ec=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}},Kg=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)};L.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 L.certificateFromAsn1(s,e)};L.certificateToPem=function(t,e){var r={type:"CERTIFICATE",body:m.toDer(L.certificateToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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 L.publicKeyFromAsn1(n)};L.publicKeyToPem=function(t,e){var r={type:"PUBLIC KEY",body:m.toDer(L.publicKeyToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.publicKeyToRSAPublicKeyPem=function(t,e){var r={type:"RSA PUBLIC KEY",body:m.toDer(L.publicKeyToRSAPublicKey(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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(L.publicKeyToRSAPublicKey(t)).getBytes();break;case"SubjectPublicKeyInfo":i=m.toDer(L.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};L.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 L.certificationRequestFromAsn1(s,e)};L.certificationRequestToPem=function(t,e){var r={type:"CERTIFICATE REQUEST",body:m.toDer(L.certificationRequestToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};L.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)Vg(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=L.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=Ec({signatureOid:e.signatureOid,type:"certificate"});var a=e.tbsCertificate||L.getTBSCertificate(e),c=m.toDer(a);o.update(c.getBytes())}return o!==null&&(r=Kg({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 L.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};L.certificateFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,HA,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!==L.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=L.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=gc(o.signatureOid,r.certSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.certinfoSignatureOid),o.siginfo.parameters=gc(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=Ec({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=L.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=L.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(o.subject.uniqueId=r.certSubjectUniqueId),o.subject.hash=h.digest().toHex(),r.certExtensions?o.extensions=L.certificateExtensionsFromAsn1(r.certExtensions):o.extensions=[],o.publicKey=L.publicKeyFromAsn1(r.subjectPublicKeyInfo),o};L.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(L.certificateExtensionFromAsn1(n.value[i]));return e};L.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};L.certificationRequestFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,GA,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!==L.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=L.createCertificationRequest();if(o.version=r.csrVersion?r.csrVersion.charCodeAt(0):0,o.signatureOid=$.asn1.derToOid(r.csrSignatureOid),o.signatureParameters=gc(o.signatureOid,r.csrSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.csrSignatureOid),o.siginfo.parameters=gc(o.siginfo.algorithmOid,r.csrSignatureParams,!1),o.signature=r.csrSignature,o.certificationRequestInfo=r.certificationRequestInfo,e){o.md=Ec({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=L.RDNAttributesAsArray(r.certificationRequestInfoSubject,c),o.subject.hash=c.digest().toHex(),o.publicKey=L.publicKeyFromAsn1(r.subjectPublicKeyInfo),o.getAttribute=function(u){return Rn(o,u)},o.addAttribute=function(u){Yt([u]),o.attributes.push(u)},o.attributes=L.CRIAttributesAsArray(r.certificationRequestInfoAttributes||[]),o};L.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=L.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=Ec({signatureOid:t.signatureOid,type:"certification request"});var n=t.certificationRequestInfo||L.getCertificationRequestInfo(t),i=m.toDer(n);r.update(i.getBytes())}return r!==null&&(e=Kg({certificate:t,md:r,signature:t.signature})),e},t};function as(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 L.oids?e.name=L.oids[e.type]:e.shortName&&e.shortName in Ye&&(e.name=L.oids[Ye[e.shortName]])),typeof e.type>"u")if(e.name&&e.name in L.oids)e.type=L.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 Ye&&(e.shortName=Ye[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(L.certificateExtensionToAsn1(Vg(e.extensions[i])))}if(typeof e.value>"u"){var n=new Error("Attribute value not specified.");throw n.attribute=e,n}}}function Vg(t,e){if(e=e||{},typeof t.name>"u"&&t.id&&t.id in L.oids&&(t.name=L.oids[t.id]),typeof t.id>"u")if(t.name&&t.name in L.oids)t.id=L.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,[as(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 Lf(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 YA(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 WA=new Date("1950-01-01T00:00:00Z"),QA=new Date("2050-01-01T00:00:00Z");function Mg(t){return t>=WA&&t<QA?m.create(m.Class.UNIVERSAL,m.Type.UTCTIME,!1,m.dateToUtcTime(t)):m.create(m.Class.UNIVERSAL,m.Type.GENERALIZEDTIME,!1,m.dateToGeneralizedTime(t))}L.getTBSCertificate=function(t){var e=Mg(t.validity.notBefore),r=Mg(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()),Lf(t.siginfo.algorithmOid,t.siginfo.parameters)]),as(t.issuer),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,r]),as(t.subject),L.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(L.certificateExtensionsToAsn1(t.extensions)),n};L.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()),as(t.subject),L.publicKeyToAsn1(t.publicKey),YA(t)]);return e};L.distinguishedNameToAsn1=function(t){return as(t)};L.certificateToAsn1=function(t){var e=t.tbsCertificate||L.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()),Lf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};L.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(L.certificateExtensionToAsn1(t[n]));return e};L.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};L.certificationRequestToAsn1=function(t){var e=t.certificationRequestInfo||L.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()),Lf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};L.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(L.certificateToAsn1(o)).getBytes(),u=0;u<a.length;++u){var l=m.toDer(L.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(L.certificateToAsn1(o)).getBytes(),l=0;l<c.length;++l){var f=m.toDer(L.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=L.RDNAttributesAsArray(as(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};L.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"};L.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:L.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:L.certificateError.bad_certificate})}o===null&&(!u||l)&&!t.hasCertificate(c)&&(o={message:"Certificate is not trusted.",error:L.certificateError.unknown_ca})}if(o===null&&u&&!c.isIssuer(u)&&(o={message:"Certificate issuer is invalid.",error:L.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:L.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:L.certificateError.bad_certificate}),o===null&&g!==null&&!g.cA&&(o={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:L.certificateError.bad_certificate}),o===null&&E!==null&&"pathLenConstraint"in g){var x=a-1;x>g.pathLenConstraint&&(o={message:"Certificate basicConstraints pathLenConstraint violated.",error:L.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:L.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 $g=N((U4,zg)=>{var O=ie();ts();An();sc();rs();cc();Zy();oi();De();Pf();var v=O.asn1,wt=zg.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(Of(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(Bf(d)),l.authenticatedAttributesAsn1.value.push(Bf(d))}o=v.toDer(f).getBytes(),l.md.start().update(o)}l.signature=l.key.sign(l.md,"RSASSA-PKCS1-V1_5")}t.signerInfos=tC(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){Of(t,e,wt.asn1.encryptedDataValidator)},decrypt:function(e){e!==void 0&&(t.encryptedContent.key=e),Hg(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=Of(t,e,wt.asn1.envelopedDataValidator);t.recipients=ZA(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,JA(t.recipients)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,rC(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)}Hg(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 XA(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 jA(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 ZA(t){for(var e=[],r=0;r<t.length;++r)e.push(XA(t[r]));return e}function JA(t){for(var e=[],r=0;r<t.length;++r)e.push(jA(t[r]));return e}function eC(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(Bf(i))}e.value.push(r)}return e}function tC(t){for(var e=[],r=0;r<t.length;++r)e.push(eC(t[r]));return e}function Bf(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 rC(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 Of(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 Hg(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 Yg=N((M4,Gg)=>{var Wr=ie();Cn();De();var nC=Gg.exports=Wr.hmac=Wr.hmac||{};nC.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 Wr.md.algorithms)e=Wr.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=Wr.util.createBuffer(o);else if(Wr.util.isArray(o)){var a=o;o=Wr.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=Wr.util.createBuffer(),n=Wr.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((F4,Wg)=>{var xt=ie();Yg();Cn();De();var iC=xt.pkcs5=xt.pkcs5||{},Qr;xt.util.isNodejs&&!xt.options.usePureJavaScript&&(Qr=Zn());Wg.exports=xt.pbkdf2=iC.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),xt.util.isNodejs&&!xt.options.usePureJavaScript&&Qr.pbkdf2&&(i===null||typeof i!="object")&&(Qr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Qr.pbkdf2Sync.length===4?Qr.pbkdf2(t,e,r,n,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Qr.pbkdf2(t,e,r,n,i,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Qr.pbkdf2Sync.length===4?Qr.pbkdf2Sync(t,e,r,n).toString("binary"):Qr.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 Zg=N((K4,jg)=>{var _t=ie();De();var Uf=[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],Qg=[1,2,3,5],sC=function(t,e){return t<<e&65535|(t&65535)>>16-e},oC=function(t,e){return(t&65535)>>e|t<<16-e&65535};jg.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(Uf[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Uf[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Uf[r.at(a+1)^r.at(a+s)]);return r};var Xg=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]=sC(p[u],Qg[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]=oC(p[u],Qg[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 Xg(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 Xg(t,e,!1)}});var Mf=N((V4,nE)=>{var F=ie();ts();An();sc();Cn();rs();kf();cc();oi();Zg();oo();De();typeof Jg>"u"&&(Jg=F.jsbn.BigInteger);var Jg,A=F.asn1,J=F.pki=F.pki||{};nE.exports=J.pbe=F.pbe=F.pbe||{};var fi=J.oids,aC={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"}]},cC={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"}]}]},uC={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=fi["aes128-CBC"],f=F.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=fi["aes192-CBC"],f=F.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=fi["aes256-CBC"],f=F.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=fi.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=rE(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=lC(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(fi.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(fi.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(fi["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,aC,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 P=new F.util.ByteBuffer;P.putBytes(p.bytes()),P.putBytes(_.bytes());for(var te=0;te<n;te++)s.start(),s.update(P.getBytes()),P=s.digest();var ae=new F.util.ByteBuffer;for(a=0;a<u;a++)ae.putByte(P.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(P)}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,cC,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=tE(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,uC,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=tE(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=[eE(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(eE(n,i[o-1]+t+e));return i.join("").substr(0,r)};function eE(t,e){return t.start().update(e).digest().getBytes()}function tE(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 rE(e)}function rE(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 lC(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 gE=N((R8,yE)=>{var Oe=ie();Cn();De();var ao=yE.exports=Oe.sha512=Oe.sha512||{};Oe.md.sha512=Oe.md.algorithms.sha512=ao;var pE=Oe.sha384=Oe.sha512.sha384=Oe.sha512.sha384||{};pE.create=function(){return ao.create("SHA-384")};Oe.md.sha384=Oe.md.algorithms.sha384=pE;Oe.sha512.sha256=Oe.sha512.sha256||{create:function(){return ao.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 ao.create("SHA-512/224")}};Oe.md["sha512/224"]=Oe.md.algorithms["sha512/224"]=Oe.sha512.sha224;ao.create=function(t){if(mE||yC(),typeof t>"u"&&(t="SHA-512"),!(t in hi))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=hi[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),dE(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(Vf.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);dE(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 Vf=null,mE=!1,qf=null,hi=null;function yC(){Vf=String.fromCharCode(128),Vf+=Oe.util.fillString(String.fromCharCode(0),128),qf=[[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]],hi={},hi["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],hi["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],hi["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],hi["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],mE=!0}function dE(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,d,p,y,g,E,x,_,B,D,P,te,ae,st,Zt,It,Et,Ai,Xo,Je,St,Y,Su,_u,Au,Cu,pd=r.length();pd>=128;){for(Je=0;Je<16;++Je)e[Je][0]=r.getInt32()>>>0,e[Je][1]=r.getInt32()>>>0;for(;Je<80;++Je)Su=e[Je-2],St=Su[0],Y=Su[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,Au=e[Je-15],St=Au[0],Y=Au[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,_u=e[Je-7],Cu=e[Je-16],Y=i+_u[1]+o+Cu[1],e[Je][0]=n+_u[0]+s+Cu[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],P=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],Ai=t[7][0],Xo=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=Xo+l+h+qf[Je][1]+e[Je][1],n=Ai+u+f+qf[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,Ai=It,Xo=Et,It=st,Et=Zt,st=te,Zt=ae,Y=P+i,te=D+n+(Y/4294967296>>>0)>>>0,ae=Y>>>0,D=_,P=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]+P,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]+Xo,t[7][0]=t[7][0]+Ai+(Y/4294967296>>>0)>>>0,t[7][1]=Y>>>0,pd-=128}}});var Xv=N((o6,Qv)=>{function RI(){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)}Qv.exports=RI});var lw=N((s5,Bh)=>{"use strict";var PI=Object.prototype.hasOwnProperty,bt="~";function Ko(){}Object.create&&(Ko.prototype=Object.create(null),new Ko().__proto__||(bt=!1));function BI(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function uw(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new BI(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 iu(t,e){--t._eventsCount===0?t._events=new Ko:delete t._events[e]}function gt(){this._events=new Ko,this._eventsCount=0}gt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)PI.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 uw(this,e,r,n,!1)};gt.prototype.once=function(e,r,n){return uw(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 iu(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&iu(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:iu(this,s)}return this};gt.prototype.removeAllListeners=function(e){var r;return e?(r=bt?bt+e:e,this._events[r]&&iu(this,r)):(this._events=new Ko,this._eventsCount=0),this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.addListener=gt.prototype.on;gt.prefixed=bt;gt.EventEmitter=gt;typeof Bh<"u"&&(Bh.exports=gt)});var Nw=N((Q5,Rw)=>{"use strict";Rw.exports=Tw;var FI=Iu(),Kn=Tw.prototype,KI=new Date%1e9;function VI(){return(Math.random()*1e9>>>0)+KI++}function Tw(t){t=t||{},this.id=t.id||VI(),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)}Kn.has=function(t){return t in this._lookup};Kn.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};Kn.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Kn.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};Kn.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};Kn.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=FI(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};Kn.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Kn.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 ld=N((RU,ud)=>{function Kw(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}ud.exports=Kw;ud.exports.anySignal=Kw});var qw=N((DU,Vw)=>{Vw.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 $w=N((PU,zw)=>{var Hw=qw();zw.exports=class{constructor(e){this.hwm=e||16,this.head=new Hw(this.hwm),this.tail=this.head}push(e){if(!this.head.push(e)){let r=this.head;this.head=r.next=new Hw(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 Yw=N((BU,Gw)=>{"use strict";var XI=()=>{let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t};Gw.exports=XI});var jw=N((kU,Xw)=>{var Ww=$w(),Qw=Yw();Xw.exports=class{constructor(){this._buffer=new Ww,this._waitingConsumers=new Ww}push(e){let{promise:r,resolve:n}=Qw();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}=Qw();return this._waitingConsumers.push({resolve:r}),this._consume(),e}isEmpty(){return this._buffer.isEmpty()}}});var eT={};pt(eT,{createLibp2p:()=>JI});var hr=C(Tu(),1);var Pu={};pt(Pu,{base58btc:()=>We,base58flickr:()=>T1});function S1(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],P=0,te=_-1;(D!==0||P<g)&&te!==-1;te--,P++)D+=256*B[te]>>>0,B[te]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");g=P,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,P=x-1;(B!==0||D<E)&&P!==-1;P--,D++)B+=a*_[P]>>>0,_[P]=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 _1=S1,A1=_1,vd=A1;var sT=new Uint8Array(0);var wd=(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},Pr=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 xd=t=>new TextEncoder().encode(t),bd=t=>new TextDecoder().decode(t);var Ru=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")}},Nu=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 _d(this,e)}},Du=class{constructor(e){this.decoders=e}or(e){return _d(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`)}},_d=(t,e)=>new Du({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Lu=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ru(e,r,n),this.decoder=new Nu(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Ri=({name:t,prefix:e,encode:r,decode:n})=>new Lu(t,e,r,n),fn=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=vd(r,e);return Ri({prefix:t,name:e,encode:n,decode:s=>Pr(i(s))})},C1=(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},I1=(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},ze=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Ri({prefix:e,name:t,encode(i){return I1(i,n,r)},decode(i){return C1(i,n,r,t)}});var We=fn({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),T1=fn({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bu={};pt(Bu,{base32:()=>Rt,base32hex:()=>L1,base32hexpad:()=>B1,base32hexpadupper:()=>O1,base32hexupper:()=>P1,base32pad:()=>N1,base32padupper:()=>D1,base32upper:()=>R1,base32z:()=>k1});var Rt=ze({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),R1=ze({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),N1=ze({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),D1=ze({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),L1=ze({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),P1=ze({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),B1=ze({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),O1=ze({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),k1=ze({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ou={};pt(Ou,{base64:()=>qn,base64pad:()=>U1,base64url:()=>M1,base64urlpad:()=>F1});var qn=ze({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),U1=ze({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),M1=ze({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),F1=ze({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});hr.default.formatters.b=t=>t==null?"undefined":We.baseEncode(t);hr.default.formatters.t=t=>t==null?"undefined":Rt.baseEncode(t);hr.default.formatters.m=t=>t==null?"undefined":qn.baseEncode(t);hr.default.formatters.p=t=>t==null?"undefined":t.toString();hr.default.formatters.c=t=>t==null?"undefined":t.toString();hr.default.formatters.k=t=>t==null?"undefined":t.toString();function M(t){return Object.assign((0,hr.default)(t),{error:(0,hr.default)(`${t}:error`),trace:(0,hr.default)(`${t}:trace`)})}var Hn=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)},Br,Ue=class extends EventTarget{constructor(){super(...arguments),Br.set(this,new Map)}listenerCount(e){let r=Hn(this,Br,"f").get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=Hn(this,Br,"f").get(e);i==null&&(i=[],Hn(this,Br,"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=Hn(this,Br,"f").get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),Hn(this,Br,"f").set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=Hn(this,Br,"f").get(e.type);return n==null||(n=n.filter(({once:i})=>!i),Hn(this,Br,"f").set(e.type,n)),r}};Br=new WeakMap;var ku=class extends Event{constructor(e,r){super(e,r),this.detail=r?.detail}},X=globalThis.CustomEvent??ku;function Or(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 Uu=(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*ea(t,e){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}var ta=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)=>Uu(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ea(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)=>Uu(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ea(n,e.limit)),n}};var ra=(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 Mu={};pt(Mu,{identity:()=>K1});var K1=Ri({prefix:"\0",name:"identity",encode:t=>bd(t),decode:t=>xd(t)});var Fu={};pt(Fu,{base2:()=>V1});var V1=ze({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ku={};pt(Ku,{base8:()=>q1});var q1=ze({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Vu={};pt(Vu,{base10:()=>H1});var H1=fn({prefix:"9",name:"base10",alphabet:"0123456789"});var qu={};pt(qu,{base16:()=>z1,base16upper:()=>$1});var z1=ze({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),$1=ze({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Hu={};pt(Hu,{base36:()=>G1,base36upper:()=>Y1});var G1=fn({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Y1=fn({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var zu={};pt(zu,{base256emoji:()=>Z1});var Ad=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}"),W1=Ad.reduce((t,e,r)=>(t[r]=e,t),[]),Q1=Ad.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function X1(t){return t.reduce((e,r)=>(e+=W1[r],e),"")}function j1(t){let e=[];for(let r of t){let n=Q1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Z1=Ri({prefix:"\u{1F680}",name:"base256emoji",encode:X1,decode:j1});var Wu={};pt(Wu,{sha256:()=>ot,sha512:()=>gx});var J1=Td,Cd=128,ex=127,tx=~ex,rx=Math.pow(2,31);function Td(t,e,r){e=e||[],r=r||0;for(var n=r;t>=rx;)e[r++]=t&255|Cd,t/=128;for(;t&tx;)e[r++]=t&255|Cd,t>>>=7;return e[r]=t|0,Td.bytes=r-n+1,e}var nx=$u,ix=128,Id=127;function $u(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw $u.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Id)<<i:(o&Id)*Math.pow(2,i),i+=7}while(o>=ix);return $u.bytes=s-n,r}var sx=Math.pow(2,7),ox=Math.pow(2,14),ax=Math.pow(2,21),cx=Math.pow(2,28),ux=Math.pow(2,35),lx=Math.pow(2,42),fx=Math.pow(2,49),hx=Math.pow(2,56),dx=Math.pow(2,63),px=function(t){return t<sx?1:t<ox?2:t<ax?3:t<cx?4:t<ux?5:t<lx?6:t<fx?7:t<hx?8:t<dx?9:10},mx={encode:J1,decode:nx,encodingLength:px},yx=mx,Ts=yx;var Rs=(t,e=0)=>[Ts.decode(t,e),Ts.decode.bytes],Ni=(t,e,r=0)=>(Ts.encode(t,e,r),e),Di=t=>Ts.encodingLength(t);var dr=(t,e)=>{let r=e.byteLength,n=Di(t),i=n+Di(r),s=new Uint8Array(i+r);return Ni(t,s,0),Ni(r,s,n),s.set(e,i),new Li(t,r,e,s)},zn=t=>{let e=Pr(t),[r,n]=Rs(e),[i,s]=Rs(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Li(r,i,o,e)},Rd=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&wd(t.bytes,r.bytes)}},Li=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var Yu=({name:t,code:e,encode:r})=>new Gu(t,e,r),Gu=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?dr(this.code,r):r.then(n=>dr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Dd=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ot=Yu({name:"sha2-256",code:18,encode:Dd("SHA-256")}),gx=Yu({name:"sha2-512",code:19,encode:Dd("SHA-512")});var Qu={};pt(Qu,{identity:()=>hn});var Ld=0,Ex="identity",Pd=Pr,vx=t=>dr(Ld,Pd(t)),hn={code:Ld,name:Ex,encode:Pd,digest:vx};var zT=new TextEncoder,$T=new TextDecoder;var Bd=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Sx(r,Xu(t),e||We.encoder);default:return _x(r,Xu(t),e||Rt.encoder)}};var Od=new WeakMap,Xu=t=>{let e=Od.get(t);if(e==null){let r=new Map;return Od.set(t,r),r}return e},ve=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!==Ns)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Ax)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return ve.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=dr(e,r);return ve.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 ve.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Rd(e.multihash,n.multihash)}toString(e){return Bd(this,e)}toJSON(){return{"/":Bd(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 ve)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new ve(n,i,s,o||kd(n,i,s.bytes))}else if(r[Cx]===!0){let{version:n,multihash:i,code:s}=r,o=zn(i);return ve.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!==Ns)throw new Error(`Version 0 CID must use dag-pb (code: ${Ns}) block encoding`);return new ve(e,r,n,n.bytes)}case 1:{let i=kd(e,r,n.bytes);return new ve(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return ve.create(0,Ns,e)}static createV1(e,r){return ve.create(1,e,r)}static decode(e){let[r,n]=ve.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=ve.inspectBytes(e),n=r.size-r.multihashSize,i=Pr(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 Li(r.multihashCode,r.digestSize,s,i);return[r.version===0?ve.createV0(o):ve.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,h]=Rs(e.subarray(r));return r+=h,f},i=n(),s=Ns;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]=bx(e,r),s=ve.decode(i);return Xu(s).set(n,e),s}},bx=(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)]}}},Sx=(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},_x=(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},Ns=112,Ax=18,kd=(t,e,r)=>{let n=Di(t),i=n+Di(e),s=new Uint8Array(i+r.byteLength);return Ni(t,s,0),Ni(e,s,n),s.set(r,i),s},Cx=Symbol.for("@ipld/js-cid/CID");var dn={...Mu,...Fu,...Ku,...Vu,...qu,...Bu,...Hu,...Pu,...Ou,...zu},tR={...Wu,...Qu};function Gn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function kr(t=0){return globalThis.Buffer?.alloc!=null?Gn(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Ur(t=0){return globalThis.Buffer?.allocUnsafe!=null?Gn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Md(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Ud=Md("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ju=Md("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=Ur(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Ix={utf8:Ud,"utf-8":Ud,hex:dn.base16,latin1:ju,ascii:ju,binary:ju,...dn},ia=Ix;function Q(t,e="utf8"){let r=ia[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=ia[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Gn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Mr="/",Fd=new TextEncoder().encode(Mr),sa=Fd[0],$e=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]!==sa)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 $e(e.join(Mr))}static random(){return new $e(ra().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new $e(e):typeof e.uint8Array=="function"?new $e(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Fd),this._buf[0]!==sa){let e=new Uint8Array(this._buf.byteLength+1);e.fill(sa,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===sa;)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 $e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Mr).slice(1)}type(){return Tx(this.baseNamespace())}name(){return Rx(this.baseNamespace())}instance(e){return new $e(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Mr)||(e+=Mr),e+=this.type(),new $e(e)}parent(){let e=this.list();return e.length===1?new $e(Mr):new $e(e.slice(0,-1).join(Mr))}child(e){return this.toString()===Mr?e:e.toString()===Mr?this:new $e(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 $e.withNamespaces([...this.namespaces(),...Nx(e.map(r=>r.namespaces()))])}};function Tx(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Rx(t){let e=t.split(":");return e[e.length-1]}function Nx(t){return[].concat(...t)}var qd=C(G(),1);function Hd(t){return t=t||new Error("Not Found"),(0,qd.default)(t,"ERR_NOT_FOUND")}var oa=class extends ta{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 Hd();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 $e(e),value:r}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>new $e(e))}};var Bs=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 zd=C(G(),1);async function*Ds(t,e){for await(let r of t)yield e(r)}async function*Ls(t,e){yield*Ds(t,async r=>(await e.addressBook.add(r.id,r.multiaddrs),r))}function aa(t){let e=new Set;return mt(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*ca(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw(0,zd.default)(new Error("not found"),"NOT_FOUND")}var up=C(Fr(),1);var la=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}},Pi=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new la(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 la(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 Yn(t={}){return Ox(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 Ox(t,e){e=e??{};let r=e.onEnd,n=new Pi,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 Pi,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 Pi,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*Kr(...t){let e=Yn({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 kx=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Xd=t=>t!=null&&(typeof t[Symbol.asyncIterator]=="function"||typeof t[Symbol.iterator]=="function"||typeof t.next=="function"),el=t=>t!=null&&typeof t.sink=="function"&&Xd(t.source),Ux=t=>e=>{let r=t.sink(e);if(r.then!=null){let n=Yn({objectMode:!0});return r.then(()=>{n.end()},s=>{n.end(s)}),Kr(n,async function*(){yield*t.source,n.end()}())}return t.source};function Ce(t,...e){if(el(t)){let n=t;t=()=>n.source}else if(Xd(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&el(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++)el(r[n])&&(r[n]=Ux(r[n]));return kx(...r)}async function Nt(t){for await(let e of t)return e}var pa=C(tl(),1),lp=C(pr(),1),cp=M("libp2p:peer-routing"),da=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,pa.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new up.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,lp.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await er(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(e){cp.error(e)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,pa.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(e,r){if(this.routers.length===0)throw(0,Bs.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw(0,Bs.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Ce(Kr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(s){cp.error(s)}}())),i=>mt(i,Boolean),i=>Ls(i,this.components.peerStore),async i=>await Nt(i));if(n!=null)return n;throw(0,Bs.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw(0,Bs.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ce(Kr(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>Ls(n,this.components.peerStore),n=>aa(n),n=>ca(n))}};var pn=C(G(),1);var ma=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(Kr(...this.routers.map(n=>n.findProviders(e,r))),n=>Ls(n,this.components.peerStore),n=>aa(n),n=>ca(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 hp=C(G(),1);var nl=Symbol.for("@libp2p/peer-id");function Wn(t){return t!=null&&Boolean(t[nl])}var Wx=Symbol.for("nodejs.util.inspect.custom"),fp=Object.values(dn).map(t=>t.decoder).reduce((t,e)=>t.or(e),dn.identity.decoder),dp=114,il=36,sl=37,Os=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[nl](){return!0}toString(){return this.string==null&&(this.string=We.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return ve.createV1(dp,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 me(e).equals(this);if(e?.multihash?.bytes!=null)return _e(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[Wx](){return`PeerId(${this.toString()})`}},Qn=class extends Os{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Xn=class extends Os{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},jn=class extends Os{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Qe(t){if(t.type==="RSA")return new Qn(t);if(t.type==="Ed25519")return new Xn(t);if(t.type==="secp256k1")return new jn(t);throw(0,hp.default)(new Error("Not a PeerId"),"ERR_INVALID_PARAMETERS")}function me(t,e){if(e=e??fp,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=zn(We.decode(`z${t}`));return t.startsWith("12D")?new Xn({multihash:r}):t.startsWith("16U")?new jn({multihash:r}):new Qn({multihash:r})}return mn(fp.decode(t))}function mn(t){try{let e=zn(t);if(e.code===hn.code){if(e.digest.length===il)return new Xn({multihash:e});if(e.digest.length===sl)return new jn({multihash:e})}if(e.code===ot.code)return new Qn({multihash:e})}catch{return Qx(ve.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function Qx(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==dp)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===ot.code)return new Qn({multihash:t.multihash});if(e.code===hn.code){if(e.digest.length===il)return new Xn({multihash:t.multihash});if(e.digest.length===sl)return new jn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function ki(t,e){return t.length===il?new Xn({multihash:dr(hn.code,t),privateKey:e}):t.length===sl?new jn({multihash:dr(hn.code,t),privateKey:e}):new Qn({multihash:await ot.digest(t),publicKey:t,privateKey:e})}var ya=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 pp=45,Xx=15,Ui=new ya;function mp(t){if(!(t.length>Xx))return Ui.new(t).parseWith(()=>Ui.readIPv4Addr())}function yp(t){if(!(t.length>pp))return Ui.new(t).parseWith(()=>Ui.readIPv6Addr())}function gp(t){if(!(t.length>pp))return Ui.new(t).parseWith(()=>Ui.readIPAddr())}function Ep(t){return Boolean(mp(t))}function vp(t){return Boolean(yp(t))}function Mi(t){return Boolean(gp(t))}var wp=Ep,jx=vp,ol=function(t){let e=0;if(t=t.toString().trim(),wp(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(jx(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=wp(r[n]),o;s&&(o=ol(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")},xp=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 ks={},al={},Jx=[[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"]];Jx.forEach(t=>{let e=eb(...t);al[e.code]=e,ks[e.name]=e});function eb(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(al[t]!=null)return al[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(ks[t]!=null)return ks[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var mr=C(ga(),1);function Xe(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Ur(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Gn(r)}function Pp(t,e){switch(Ie(t).code){case 4:case 41:return mb(e);case 6:case 273:case 33:case 132:return Op(e).toString();case 53:case 54:case 55:case 56:case 400:case 777:return gb(e);case 421:return xb(e);case 444:return Lp(e);case 445:return Lp(e);case 466:return wb(e);default:return Q(e,"base16")}}function Bp(t,e){switch(Ie(t).code){case 4:return Dp(e);case 41:return Dp(e);case 6:case 273:case 33:case 132:return fl(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 777:return yb(e);case 421:return Eb(e);case 444:return bb(e);case 445:return Sb(e);case 466:return vb(e);default:return q(e,"base16")}}var ll=Object.values(dn).map(t=>t.decoder),pb=function(){let t=ll[0].or(ll[1]);return ll.slice(2).forEach(e=>t=t.or(e)),t}();function Dp(t){if(!Mi(t))throw new Error("invalid ip address");return ol(t)}function mb(t){let e=xp(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Mi(e))throw new Error("invalid ip address");return e}function fl(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Op(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function yb(t){let e=q(t),r=Uint8Array.from(mr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function gb(t){let e=mr.default.decode(t);if(t=t.slice(mr.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return Q(t)}function Eb(t){let e;t[0]==="Q"||t[0]==="1"?e=zn(We.decode(`z${t}`)).bytes:e=ve.parse(t).multihash.bytes;let r=Uint8Array.from(mr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function vb(t){let e=pb.decode(t),r=Uint8Array.from(mr.default.encode(e.length));return Xe([r,e],r.length+e.length)}function wb(t){let e=mr.default.decode(t),r=t.slice(mr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+Q(r,"base64url")}function xb(t){let e=mr.default.decode(t),r=t.slice(mr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return Q(r,"base58btc")}function bb(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=fl(n);return Xe([r,i],r.length+i.length)}function Sb(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=fl(n);return Xe([r,i],r.length+i.length)}function Lp(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=Q(e,"base32"),i=Op(r);return`${n}:${i}`}var Fi=C(ga(),1);function _b(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 Up("invalid address: "+t);if(s.path===!0){e.push([i,yl(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function Ab(t){let e=[];return t.map(r=>{let n=wa(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),yl(e.join("/"))}function Cb(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=wa(e);return e.length>1?[r.code,Bp(r.code,e[1])]:[r.code]})}function hl(t){return t.map(e=>{let r=wa(e);return e[1]!=null?[r.code,Pp(r.code,e[1])]:[r.code]})}function dl(t){return va(Xe(t.map(e=>{let r=wa(e),n=Uint8Array.from(Fi.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=Xe([n,e[1]])),n})))}function pl(t,e){return t.size>0?t.size/8:t.size===0?0:Fi.default.decode(e)+(Fi.default.decode.bytes??0)}function Ea(t){let e=[],r=0;for(;r<t.length;){let n=Fi.default.decode(t,r),i=Fi.default.decode.bytes??0,s=Ie(n),o=pl(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 Up("Invalid address Uint8Array: "+Q(t,"base16"));e.push([n,a])}return e}function ml(t){let e=Ea(t),r=hl(e);return Ab(r)}function Ib(t){t=yl(t);let e=_b(t),r=Cb(e);return dl(r)}function kp(t){return Ib(t)}function va(t){let e=Tb(t);if(e!=null)throw e;return Uint8Array.from(t)}function Tb(t){try{Ea(t)}catch(e){return e}}function yl(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Up(t){return new Error("Error parsing address: "+t)}function wa(t){return Ie(t[0])}var El=C(ga(),1);var Kp=C(G(),1);var Ki=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)},gl=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},Us,Ms,Fs,Mp,Nb=Symbol.for("nodejs.util.inspect.custom"),Fp=[Ie("dns").code,Ie("dns4").code,Ie("dns6").code,Ie("dnsaddr").code],Db=[Ie("p2p").code,Ie("ipfs").code],vl=new Map,Vp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function qp(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 yr("/"+[r,t.address,e,t.port].join("/"))}function Vr(t){return Boolean(t?.[Vp])}var yr=class{constructor(e){if(Us.set(this,void 0),Ms.set(this,void 0),Fs.set(this,void 0),this[Mp]=!0,e==null&&(e=""),e instanceof Uint8Array)this.bytes=va(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=kp(e)}else if(Vr(e))this.bytes=va(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return Ki(this,Us,"f")==null&&gl(this,Us,ml(this.bytes),"f"),Ki(this,Us,"f")}toJSON(){return this.toString()}toOptions(){let e=this.protoCodes(),r=this.toString().split("/").slice(1),n,i;if(r.length>2)Fp.includes(e[0])&&Db.includes(e[1])?(n=Ie("tcp").name,i=443):(n=Ie(r[2]).name,i=parseInt(r[3]));else if(Fp.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=El.default.decode(r,n),s=El.default.decode.bytes??0,o=Ie(i),a=pl(o,r.slice(n+s));n+=a+s,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return Ki(this,Ms,"f")==null&&gl(this,Ms,Ea(this.bytes),"f"),Ki(this,Ms,"f")}stringTuples(){return Ki(this,Fs,"f")==null&&gl(this,Fs,hl(this.tuples()),"f"),Ki(this,Fs,"f")}encapsulate(e){return e=new yr(e),new yr(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 yr(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 yr(dl(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===ks.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(ve.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=vl.get(r.name);if(n==null)throw(0,Kp.default)(new Error(`no available resolver for ${r.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new yr(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)}[(Us=new WeakMap,Ms=new WeakMap,Fs=new WeakMap,Mp=Vp,Nb)](){return`Multiaddr(${ml(this.bytes)})`}};function oe(t){return new yr(t)}var wl=C(G(),1);function Lb(t){let e=t.getPeerId();if(e==null)throw(0,wl.default)(new Error(`${t.toString()} does not have a valid peer type`),b.ERR_INVALID_MULTIADDR);try{return me(e)}catch{throw(0,wl.default)(new Error(`${t.toString()} is not a valid peer type`),b.ERR_INVALID_MULTIADDR)}}function qr(t){if(Wn(t))return{id:t,multiaddrs:[],protocols:[]};let e;return Vr(t)&&(e=t,t=Lb(t)),{id:t,multiaddrs:e!=null?[e]:[],protocols:[]}}var Pb=t=>t,xa=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??Pb}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&&me(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 Ra=C(G(),1);var jp=C(Xp(),1),gr=jp.default;var Zp=M("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),_a=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"?Zp("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;Zp(e?"Page Visible":"Page Hidden"),this.dispatchEvent(new X("visibilityChange",{detail:e}))}};var Hr=M("libp2p:connection-manager:latency-monitor"),Aa=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,Hr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?Hr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):Hr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(Hr("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?(Hr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(Hr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){Fb()&&(this.visibilityChangeEmitter=new _a,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(),Hr.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,Hr.trace("MS: %s Data: %O",i,this.latencyData)};Hr.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 Fb(){return typeof globalThis.window<"u"}var Na=C(pr(),1);var Ca="OPEN",bl="CLOSING",Ia="CLOSED";function zr(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 Ks=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 zr(this.map.entries(),e=>[me(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,me(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 zr(this.map.keys(),e=>me(e))}values(){return this.map.values()}get size(){return this.map.size}};var $r=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 zr(this.set.entries(),e=>{let r=me(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=me(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return zr(this.set.values(),e=>me(e))}intersection(e){let r=new $r;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new $r;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new $r;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var Hi=class{constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return zr(this.list.entries(),e=>me(e[1]))}concat(e){let r=new Hi(this);for(let n of e)r.push(n);return r}entries(){return zr(this.list.entries(),e=>[e[0],me(e[1])])}every(e){return this.list.every((r,n)=>e(me(r),n,this))}filter(e){let r=new Hi;return this.list.forEach((n,i)=>{let s=me(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(me(n),i,this));if(r!=null)return me(r)}findIndex(e){return this.list.findIndex((r,n)=>e(me(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(me(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 me(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return me(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(Fr(),1);var Jp="keep-alive";var Q0=C(W0(),1);var et=M("libp2p:connection-manager"),b2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},S2=6e4,Da=class extends Ue{constructor(e,r){if(super(),this.opts=gr.call({ignoreUndefined:!0},b2,r),this.opts.maxConnections<this.opts.minConnections)throw(0,Ra.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 Aa({latencyCheckIntervalMs:r.pollInterval,dataEmitIntervalMs:r.pollInterval}));try{(0,Na.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=r.startupReconnectTimeout??S2,this.dialTimeout=r.dialTimeout??3e4,this.allow=(r.allow??[]).map(n=>oe(n)),this.deny=(r.deny??[]).map(n=>oe(n)),this.inboundConnectionRateLimiter=new Q0.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===Jp).length>0&&e.push(r.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new kl.TimeoutController(this.startupReconnectTimeout);try{(0,Na.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(Wn(e))n=e;else if(Vr(e))n=qr(e).id;else throw(0,Ra.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,Na.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(!Wn(e))throw(0,Ra.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===Ca):[]}_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 Ks;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 Ul=C(Ju(),1);async function*Hs(t,e){yield*(await Jt(t)).sort(e)}var yn=M("libp2p:connection-manager:auto-dialler"),_2={enabled:!0,minConnections:0,autoDialInterval:1e4},La=class{constructor(e,r){this.components=e,this.options=gr.call({ignoreUndefined:!0},_2,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,Ul.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=>Hs(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,Ul.default)(this._autoDial,this.options.autoDialInterval))}};var oy=C(G(),1);var A2=W("dns4"),C2=W("dns6"),I2=W("dnsaddr"),Wi=yt(W("dns"),I2,A2,C2),Pa=yt(W("ip4"),W("ip6")),Ys=yt(ee(Pa,W("tcp")),ee(Wi,W("tcp"))),j0=ee(Pa,W("udp")),T2=ee(j0,W("utp")),R2=ee(j0,W("quic")),zs=yt(ee(Ys,W("ws")),ee(Wi,W("ws"))),$s=yt(ee(Ys,W("wss")),ee(Wi,W("wss"))),Ml=yt(ee(Ys,W("http")),ee(Pa,W("http")),ee(Wi,W("http"))),Fl=yt(ee(Ys,W("https")),ee(Pa,W("https")),ee(Wi,W("https"))),Z0=yt(ee(zs,W("p2p-webrtc-star"),W("p2p")),ee($s,W("p2p-webrtc-star"),W("p2p")),ee(zs,W("p2p-webrtc-star")),ee($s,W("p2p-webrtc-star"))),TL=yt(ee(zs,W("p2p-websocket-star"),W("p2p")),ee($s,W("p2p-websocket-star"),W("p2p")),ee(zs,W("p2p-websocket-star")),ee($s,W("p2p-websocket-star"))),J0=yt(ee(Ml,W("p2p-webrtc-direct"),W("p2p")),ee(Fl,W("p2p-webrtc-direct"),W("p2p")),ee(Ml,W("p2p-webrtc-direct")),ee(Fl,W("p2p-webrtc-direct"))),Gs=yt(zs,$s,Ml,Fl,Z0,J0,Ys,T2,R2,Wi),RL=yt(ee(Gs,W("p2p-stardust"),W("p2p")),ee(Gs,W("p2p-stardust"))),gn=yt(ee(Gs,W("p2p")),Z0,J0,W("p2p")),X0=yt(ee(gn,W("p2p-circuit"),gn),ee(gn,W("p2p-circuit")),ee(W("p2p-circuit"),gn),ee(Gs,W("p2p-circuit")),ee(W("p2p-circuit"),Gs),W("p2p-circuit")),em=()=>yt(ee(X0,em),X0),Jn=em(),NL=yt(ee(Jn,gn,Jn),ee(gn,Jn),ee(Jn,gn),Jn,gn);function tm(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:tm(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:tm(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 Zl=C(zl(),1),qm=C(Bm(),1),Jl=C(jl(),1),Hm=C(Vm(),1),zm=C(ti(),1);function F2(){zm.default._configure(),Zl.default._configure(qm.default),Jl.default._configure(Hm.default)}F2();var $m=["uint64","int64","sint64","fixed64","sfixed64"];function K2(t){for(let e of $m){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function ef(t){return K2(new Zl.default(t))}function V2(t){for(let e of $m){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function tf(){return V2(Jl.default.create())}function Te(t,e){let r=ef(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Re(t,e){let r=tf();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Xi;(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"})(Xi||(Xi={}));function Ma(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 Ma("enum",Xi.VARINT,r,n)}function Ne(t,e){return Ma("message",Xi.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 Xs=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Gm(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 ni(t,e,r){let n=r??{},i=Gm(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 Xs(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:d}=n;f(new Xs(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(ni(n,e,r))}function Lt(t,e,r){return{sink:q2(t.sink,e,{...r,onAbort:void 0}),source:ni(t.source,e,r)}}var H2=M("libp2p:stream:converter");function rf(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=ni(u,e.signal));try{await i(u),await c()}catch(l){l.type!=="aborted"&&H2(l)}},source:e.signal!=null?ni(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 wr="/libp2p/circuit/relay/0.1.0";function Ym(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=me(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 af=C(G(),1);function Wm(t,e){t.write({type:j.Type.STATUS,code:e})}function Fa(t,e){try{t.dstPeer?.addrs!=null&&t.dstPeer.addrs.forEach(r=>oe(r))}catch(r){throw Wm(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 Wm(e,t.type===j.Type.HOP?j.Status.HOP_SRC_MULTIADDR_INVALID:j.Status.STOP_SRC_MULTIADDR_INVALID),r}}var Xm=Symbol.for("@achingbrain/uint8arraylist");function Qm(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 Ka(t){return Boolean(t?.[Xm])}var Ge=class{constructor(...e){Object.defineProperty(this,Xm,{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(Ka(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(Ka(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=Qm(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Qm(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(Ka(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 Ge;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(!Ka(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=Ur(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=kr(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=kr(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=kr(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=Ur(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=kr(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=kr(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=kr(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=kr(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=kr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof Ge)||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 Ge;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};function Va(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 jm=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=Va(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>jm&&(i=0,++n>jm&&(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=Va(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 z2=Math.pow(2,7),$2=Math.pow(2,14),G2=Math.pow(2,21),Y2=Math.pow(2,28),W2=Math.pow(2,35),Q2=Math.pow(2,42),X2=Math.pow(2,49),j2=Math.pow(2,56),Z2=Math.pow(2,63),nr={encodingLength(t){return t<z2?1:t<$2?2:t<G2?3:t<Y2?4:t<W2?5:t<Q2?6:t<X2?7:t<j2?8:t<Z2?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=Ur(nr.encodingLength(t))),Pt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return Pt.fromBytes(t,e).toNumber(!0)}};function Zm(t){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}var qa=t=>{let e=nr.encodingLength(t),r=Zm(e);return nr.encode(t,r),qa.bytes=e,r};qa.bytes=0;function qt(t){t=t??{};let e=t.lengthEncoder??qa;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??qa;return new Ge(r(t.byteLength),t)};var js=C(G(),1),J2=8,eS=1024*1024*4,ii;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(ii||(ii={}));var nf=t=>{let e=nr.decode(t);return nf.bytes=nr.encodingLength(e),e};nf.bytes=0;function Bt(t){return async function*(r){let n=new Ge,i=ii.LENGTH,s=-1,o=t?.lengthDecoder??nf,a=t?.maxLengthLength??J2,c=t?.maxDataLength??eS;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===ii.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=ii.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===ii.DATA){if(n.byteLength<s)break;let l=n.sublist(0,s);n.consume(s),t?.onData!=null&&t.onData(l),yield l,i=ii.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 sf(t){let e=async function*(){let r=yield,n=new Ge;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new Ge;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 Ge);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 of(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function ji(t){let e=Yn(),r=sf(t.source),n=of(),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 Zs=M("libp2p:circuit:stream-handler"),Gr=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 Zs("read message type",r.type),r}Zs("read received no value, closing stream"),this.close()}write(e){Zs("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(){Zs("closing the stream"),this.rest().sink([]).catch(e=>{Zs.error(e)})}};var Js=M("libp2p:circuit:stop");function Jm(t){let{connection:e,request:r,streamHandler:n}=t;try{Fa(r,n)}catch(i){Js.error("invalid stop request via peer %p %o",e.remotePeer,i);return}return Js("stop request is valid"),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS}),n.rest()}async function ey(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(wr,{signal:n});Js("starting stop request to %p",e.remotePeer);let s=new Gr({stream:i});s.write(r);let o=await s.read();if(o==null){s.close();return}if(o.code===j.Status.SUCCESS)return Js("stop request to %p was successful",e.remotePeer),s.rest();Js("stop request failed with code %d",o.code),s.close()}var Ht=M("libp2p:circuit:hop");async function ty(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{Fa(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 ey({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 ry(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(wr,{signal:n}),s=new Gr({stream:i});s.write(r);let o=await s.read();if(o==null)throw(0,af.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,af.default)(new Error(`HOP request failed with code "${o.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function ny(t){let{connection:e,signal:r}=t,n=await e.newStream(wr,{signal:r}),i=new Gr({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 iy(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 sy=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 ay=C(Fr(),1),cy=C(pr(),1),zt=M("libp2p:circuit"),za=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(wr,e=>{this._onProtocol(e).catch(r=>{zt.error(r)})}).catch(e=>{zt.error(e)}))}async stop(){await this.components.registrar.unhandle(wr)}hopEnabled(){return!0}hopActive(){return!0}get[sy](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(e){let{connection:r,stream:n}=e,i=new ay.TimeoutController(this._init.hop.timeout);try{(0,cy.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=Lt(n,i.signal),o=new Gr({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 iy({circuit:this,connection:r,streamHandler:o});break}case j.Type.HOP:{zt("received HOP request from %p",r.remotePeer),await ty({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 Jm({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=rf({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,oy.default)(new Error(d),b.ERR_RELAYED_DIAL)}let c=me(o),u=me(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 ry({...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=rf({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,Ym({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(e){return e=Array.isArray(e)?e:[e],e.filter(r=>Jn.matches(r))}};var Za=C(tl(),1);async function $a(t){let e=new TextEncoder().encode(t),r=await ot.digest(e);return ve.createV0(r)}var cf="hop_relay",uf="true",Ga="/libp2p/relay";var my=C(uy(),1);var ly="[a-fA-F\\d:]",bn=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${ly})|(?<=${ly})(?=\\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}",Ya=`
|
|
38
38
|
(?:
|
|
39
39
|
(?:${tt}:){7}(?:${tt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
40
|
-
(?:${tt}:){6}(?:${
|
|
41
|
-
(?:${tt}:){5}(?::${
|
|
42
|
-
(?:${tt}:){4}(?:(?::${tt}){0,1}:${
|
|
43
|
-
(?:${tt}:){3}(?:(?::${tt}){0,2}:${
|
|
44
|
-
(?:${tt}:){2}(?:(?::${tt}){0,3}:${
|
|
45
|
-
(?:${tt}:){1}(?:(?::${tt}){0,4}:${
|
|
46
|
-
(?::(?:(?::${tt}){0,5}:${
|
|
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
47
|
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
|
|
48
|
-
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),ES=new RegExp(`(?:^${tr}$)|(?:^${Ya}$)`),vS=new RegExp(`^${tr}$`),wS=new RegExp(`^${Ya}$`),hf=t=>t&&t.exact?ES:new RegExp(`(?:${xn(t)}${tr}${xn(t)})|(?:${xn(t)}${Ya}${xn(t)})`,"g");hf.v4=t=>t&&t.exact?vS:new RegExp(`${xn(t)}${tr}${xn(t)}`,"g");hf.v6=t=>t&&t.exact?wS:new RegExp(`${xn(t)}${Ya}${xn(t)}`,"g");var by=hf;var Iy=C(_y(),1),{isValid:xS,parse:bS}=Iy.default,SS=["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"],_S=SS.map(t=>new Cy.Netmask(t));function AS(t){for(let e of _S)if(e.contains(t))return!0;return!1}function Ay(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 Ty=t=>{if(xS(t)){let e=bS(t);if(e.kind()==="ipv4")return AS(e.toNormalizedString());if(e.kind()==="ipv6")return Ay(t)}else if(Fi(t)&&by.v6().test(t))return Ay(t)};var Qa=Ty;function df(t){let{address:e}=t.nodeAddress();return Boolean(Qa(e))}function Ji(t,e){let r=df(t.multiaddr),n=df(e.multiaddr);return r&&!n?1:!r&&n||t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}var ro=M("libp2p:auto-relay"),IS=()=>{},Xa=class{constructor(e,r){this.components=e,this.addressSorter=r.addressSorter??Ji,this.maxListeners=r.maxListeners??1,this.listenRelays=new Set,this.onError=r.onError??IS,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{ro.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===gr)==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)){ro(`relayed connection to ${i} will not be used to hop on`);return}await dy({connection:a})&&(await this.components.peerStore.metadataBook.setValue(r,lf,q(ff)),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=>{ro.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=>zs(s,this.addressSorter),async s=>await zr(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){ro.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(lf);if(a==null||Q(a)!==ff)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 $a(Ga);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){ro.error("Could not use %p as relay",e,r),this.onError(r,`could not connect and listen on known hop relay ${e.toString()}`)}}};var Ry=M("libp2p:relay"),ja=class{constructor(e,r){this.components=e,this.autoRelay=r.autoRelay?.enabled!==!1?new Xa(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,Za.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,Za.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let e=await $a(Ga);await this.components.contentRouting.provide(e)}catch(e){e.code===b.ERR_NO_ROUTERS_AVAILABLE?(Ry.error("a content router, such as a DHT, must be provided in order to advertise the relay service",e),await this.stop()):Ry.error(e)}}};var Cv=C(My(),1);var s8=C(rE(),1),o8=C(Kf(),1),Qr=C(ie(),1);var n8=C(Of(),1),yE=C(ie(),1),mE=yE.default.pki,gE=(t,e)=>{let r=mE.rsa.setPublicKey(e.n,e.e),n=mE.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 EE(t,e){let r=t.map(e),i=(await Promise.all(r)).findIndex(s=>s);return t[i]}var Xr=C(G(),1);var IC=M("libp2p:keychain:cms"),Vf=new WeakMap,vc=class{constructor(e,r){if(e==null)throw(0,Xr.default)(new Error("keychain is required"),b.ERR_KEYCHAIN_REQUIRED);this.keychain=e,Vf.set(this,{dek:r})}async encrypt(e,r){if(!(r instanceof Uint8Array))throw(0,Xr.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=Vf.get(this);if(s==null)throw(0,Xr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let o=s.dek,a=Qr.default.pki.decryptRsaPrivateKey(i,o),c=await gE(n,a),u=Qr.default.pkcs7.createEnvelopedData();u.addRecipient(c),u.content=Qr.default.util.createBuffer(r),u.encrypt();let l=Qr.default.asn1.toDer(u.toAsn1()).getBytes();return q(l,"ascii")}async decrypt(e){if(!(e instanceof Uint8Array))throw(0,Xr.default)(new Error("CMS data is required"),b.ERR_INVALID_PARAMETERS);let r;try{let l=Qr.default.util.createBuffer(Q(e,"ascii")),f=Qr.default.asn1.fromDer(l);r=Qr.default.pkcs7.messageFromAsn1(f)}catch(l){throw IC.error(l),(0,Xr.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 EE(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,Xr.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,Xr.default)(new Error("No key available to decrypto"),b.ERR_NO_KEY);let o=await this.keychain.getPrivateKey(s.name),a=Vf.get(this);if(a==null)throw(0,Xr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let c=a.dek,u=Qr.default.pki.decryptRsaPrivateKey(o,c);return r.decrypt(i.recipient,u),q(r.content.getBytes(),"ascii")}};var ye=C(G(),1);var Fe;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Fe||(Fe={}));var qf;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(qf||(qf={}));(function(t){t.codec=()=>wn(qf)})(Fe||(Fe={}));var _r;(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())})(_r||(_r={}));var Ar;(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())})(Ar||(Ar={}));var CO=C(_n(),1),IO=C(Kf(),1),Lc=C(ie(),1),dh=C(G(),1);var TC=C(G(),1);var _t={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 RC=C(G(),1);var S8=C(De(),1),_8=C(pc(),1),wE=C(ie(),1);function ir(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 Bt(t){let e=xE(t);return new wE.default.jsbn.BigInteger(Q(e,"base16"),16)}function xE(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 NC={"P-256":256,"P-384":384,"P-521":521},DC=Object.keys(NC),B8=DC.join(" / ");function xc(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=_t.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 SE(t,e){let r=Vn.decode(t);return await xc().decrypt(r,e)}var eh={};pt(eh,{RsaPrivateKey:()=>ys,RsaPublicKey:()=>mo,fromJwk:()=>rI,generateKeyPair:()=>nI,unmarshalRsaPrivateKey:()=>eI,unmarshalRsaPublicKey:()=>tI});var Jf=C(G(),1);var fO=C(TE(),1),po=C(ie(),1);var PC=C(Zn(),1);var le=BigInt(0),ke=BigInt(1),Rn=BigInt(2),lo=BigInt(3),BC=BigInt(8),Ke=Object.freeze({a:le,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:ke,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")});function RE(t){let{a:e,b:r}=Ke,n=K(t*t),i=K(n*t);return K(i+e*t+r)}var bc=Ke.a===le,_c=class extends Error{constructor(e){super(e)}},ge=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof we))throw new TypeError("JacobianPoint#fromAffine: expected Point");return new ge(e.x,e.y,ke)}static toAffineBatch(e){let r=FC(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return ge.toAffineBatch(e).map(ge.fromAffine)}equals(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint expected");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 ge(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(Rn*(K(a*a)-i-o)),u=K(lo*i),l=K(u*u),f=K(l-Rn*c),h=K(u*(c-f)-BC*o),d=K(Rn*r*n);return new ge(f,h,d)}add(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint expected");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():ge.ZERO;let g=K(p*p),E=K(p*g),x=K(l*g),_=K(y*y-E-Rn*x),B=K(y*(x-_)-h*E),D=K(i*a*p);return new ge(_,B,D)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=ge.ZERO;if(typeof e=="bigint"&&e===le)return r;let n=LE(e);if(n===ke)return this;if(!bc){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}=BE(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 ge(K(u.x*Ke.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=bc?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(ge.BASE)&&(r=we.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&&Gf.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ge.normalizeZ(i),Gf.set(r,i)));let s=ge.ZERO,o=ge.ZERO,a=1+(bc?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);if(e>>=f,p>c&&(p-=l,e+=ke),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{p:s,f:o}}multiply(e,r){let n=LE(e),i,s;if(bc){let{k1neg:o,k1:a,k2neg:c,k2:u}=BE(n),{p:l,f}=this.wNAF(a,r),{p:h,f:d}=this.wNAF(u,r);o&&(l=l.negate()),c&&(h=h.negate()),h=new ge(K(h.x*Ke.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 ge.normalizeZ([i,s])[0]}toAffine(e=ps(this.z)){let{x:r,y:n,z:i}=this,s=e,o=K(s*s),a=K(o*s),c=K(r*o),u=K(n*a);if(K(i*s)!==ke)throw new Error("invZ was invalid");return new we(c,u)}};ge.BASE=new ge(Ke.Gx,Ke.Gy,ke);ge.ZERO=new ge(le,ke,le);var Gf=new WeakMap,we=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,Gf.delete(this)}hasEvenY(){return this.y%Rn===le}static fromCompressedHex(e){let r=e.length===32,n=jr(r?e:e.subarray(1));if(!$f(n))throw new Error("Point is not on curve");let i=RE(n),s=MC(i),o=(s&ke)===ke;r?o&&(s=K(-s)):(e[0]&1)===1!==o&&(s=K(-s));let a=new we(n,s);return a.assertValidity(),a}static fromUncompressedHex(e){let r=jr(e.subarray(1,33)),n=jr(e.subarray(33,65)),i=new we(r,n);return i.assertValidity(),i}static fromHex(e){let r=ds(e),n=r.length,i=r[0];if(n===32||n===33&&(i===2||i===3))return this.fromCompressedHex(r);if(n===65&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return we.BASE.multiply(Cc(e))}static fromSignature(e,r,n){e=ds(e);let i=OE(e),{r:s,s:o}=kE(r);if(n!==0&&n!==1)throw new Error("Cannot recover signature: invalid recovery bit");let a=n&1?"03":"02",c=we.fromHex(a+ls(s)),{n:u}=Ke,l=ps(s,u),f=K(-i*l,u),h=K(o*l,u),d=we.BASE.multiplyAndAddUnsafe(c,f,h);if(!d)throw new Error("Cannot recover signature: point at infinify");return d.assertValidity(),d}toRawBytes(e=!1){return di(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(!$f(r)||!$f(n))throw new Error(e);let i=K(n*n),s=RE(r);if(K(i-s)!==le)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new we(this.x,K(-this.y))}double(){return ge.fromAffine(this).double().toAffine()}add(e){return ge.fromAffine(this).add(ge.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ge.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=ge.fromAffine(this),s=r===le||r===ke||this!==we.BASE?i.multiplyUnsafe(r):i.multiply(r),o=ge.fromAffine(e).multiplyUnsafe(n),a=s.add(o);return a.equals(ge.ZERO)?void 0:a.toAffine()}};we.BASE=new we(Ke.Gx,Ke.Gy);we.ZERO=new we(le,le);function NE(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function DE(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${hs(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:jr(r),left:t.subarray(e+2)}}function OC(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${hs(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=DE(t.subarray(2)),{data:n,left:i}=DE(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${hs(i)}`);return{r:e,s:n}}var Cr=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?hs(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new Cr(Ac(i.slice(0,64)),Ac(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}=OC(r?e:di(e));return new Cr(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!ho(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!ho(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=Ke.n>>ke;return this.s>e}normalizeS(){return this.hasHighS()?new Cr(this.r,Ke.n-this.s):this}toDERRawBytes(e=!1){return di(this.toDERHex(e))}toDERHex(e=!1){let r=NE(uo(this.s));if(e)return r;let n=NE(uo(this.r)),i=uo(n.length/2),s=uo(r.length/2);return`30${uo(n.length/2+r.length/2+4)}02${i}${n}02${s}${r}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return di(this.toCompactHex())}toCompactHex(){return ls(this.r)+ls(this.s)}};function us(...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 kC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function hs(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=kC[t[r]];return e}var UC=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function ls(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(le<=t&&t<UC))throw new Error("Expected number < 2^256");return t.toString(16).padStart(64,"0")}function Yf(t){let e=di(ls(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function uo(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ac(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function di(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 jr(t){return Ac(hs(t))}function ds(t){return t instanceof Uint8Array?Uint8Array.from(t):di(t)}function LE(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&ho(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function K(t,e=Ke.P){let r=t%e;return r>=le?r:e+r}function Yt(t,e){let{P:r}=Ke,n=t;for(;e-- >le;)n*=n,n%=r;return n}function MC(t){let{P:e}=Ke,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=Yt(u,lo)*u%e,f=Yt(l,lo)*u%e,h=Yt(f,Rn)*c%e,d=Yt(h,n)*h%e,p=Yt(d,i)*d%e,y=Yt(p,o)*p%e,g=Yt(y,a)*y%e,E=Yt(g,o)*p%e,x=Yt(E,lo)*u%e,_=Yt(x,s)*d%e,B=Yt(_,r)*c%e;return Yt(B,Rn)}function ps(t,e=Ke.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 FC(t,e=Ke.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=ps(n,e);return t.reduceRight((s,o,a)=>o===le?s:(r[a]=K(s*r[a],e),K(s*o,e)),i),r}var PE=(t,e)=>(t+e/Rn)/e,KC={a1:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),b1:-ke*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),a2:BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),b2:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),POW_2_128:BigInt("0x100000000000000000000000000000000")};function BE(t){let{n:e}=Ke,{a1:r,b1:n,a2:i,b2:s,POW_2_128:o}=KC,a=PE(s*t,e),c=PE(-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}}function OE(t){let{n:e}=Ke,n=t.length*8-256,i=jr(t);return n>0&&(i=i>>BigInt(n)),i>=e&&(i-=e),i}var fs,fo,Wf=class{constructor(){this.v=new Uint8Array(32).fill(1),this.k=new Uint8Array(32).fill(0),this.counter=0}hmac(...e){return sr.hmacSha256(this.k,...e)}hmacSync(...e){return fo(this.k,...e)}checkSync(){if(typeof fo!="function")throw new _c("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(){return this.incr(),this.v=await this.hmac(this.v),this.v}generateSync(){return this.checkSync(),this.incr(),this.v=this.hmacSync(this.v),this.v}};function ho(t){return le<t&&t<Ke.n}function $f(t){return le<t&&t<Ke.P}function VC(t,e,r){let n=jr(t);if(!ho(n))return;let{n:i}=Ke,s=we.BASE.multiply(n),o=K(s.x,i);if(o===le)return;let a=K(ps(n,i)*K(e+r*o,i),i);if(a===le)return;let c=new Cr(o,a),u=(s.x===c.r?0:2)|Number(s.y&ke);return{sig:c,recovery:u}}function Cc(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!==64)throw new Error("Expected 32 bytes of private key");e=Ac(t)}else if(t instanceof Uint8Array){if(t.length!==32)throw new Error("Expected 32 bytes of private key");e=jr(t)}else throw new TypeError("Expected valid private key");if(!ho(e))throw new Error("Expected private key: 0 < key < n");return e}function qC(t){return t instanceof we?(t.assertValidity(),t):we.fromHex(t)}function kE(t){if(t instanceof Cr)return t.assertValidity(),t;try{return Cr.fromDER(t)}catch{return Cr.fromCompact(t)}}function Qf(t,e=!1){return we.fromPrivateKey(t).toRawBytes(e)}function UE(t){let e=t.length>32?t.slice(0,32):t;return jr(e)}function HC(t){let e=UE(t),r=K(e,Ke.n);return ME(r<le?e:r)}function ME(t){return Yf(t)}function zC(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ds(t),i=Cc(e),s=[ME(i),HC(n)];if(r!=null){r===!0&&(r=sr.randomBytes(32));let c=ds(r);if(c.length!==32)throw new Error("sign: Expected 32 bytes of extra data");s.push(c)}let o=us(...s),a=UE(n);return{seed:o,m:a,d:i}}function $C(t,e){let{sig:r,recovery:n}=t,{canonical:i,der:s,recovered:o}=Object.assign({canonical:!0,der:!0},e);i&&r.hasHighS()&&(r=r.normalizeS(),n^=1);let a=s?r.toDERRawBytes():r.toCompactRawBytes();return o?[a,n]:a}async function FE(t,e,r={}){let{seed:n,m:i,d:s}=zC(t,e,r.extraEntropy),o,a=new Wf;for(await a.reseed(n);!(o=VC(await a.generate(),i,s));)await a.reseed();return $C(o,r)}var GC={strict:!0};function KE(t,e,r,n=GC){let i;try{i=kE(t),e=ds(e)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=OE(e),c;try{c=qC(r)}catch{return!1}let{n:u}=Ke,l=ps(o,u),f=K(a*l,u),h=K(s*l,u),d=we.BASE.multiplyAndAddUnsafe(c,f,h);return d?K(d.x,u)===s:!1}we.BASE._setWindowSize(8);var Ot={node:PC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Sc={},sr={bytesToHex:hs,hexToBytes:di,concatBytes:us,mod:K,invert:ps,isValidPrivateKey(t){try{return Cc(t),!0}catch{return!1}},_bigintTo32Bytes:Yf,_normalizePrivateKey:Cc,hashToPrivateKey:t=>{if(t=ds(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");let e=K(jr(t),Ke.n-ke)+ke;return Yf(e)},randomBytes:(t=32)=>{if(Ot.web)return Ot.web.getRandomValues(new Uint8Array(t));if(Ot.node){let{randomBytes:e}=Ot.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>sr.hashToPrivateKey(sr.randomBytes(40)),sha256:async(...t)=>{if(Ot.web){let e=await Ot.web.subtle.digest("SHA-256",us(...t));return new Uint8Array(e)}else if(Ot.node){let{createHash:e}=Ot.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(Ot.web){let r=await Ot.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=us(...e),i=await Ot.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(Ot.node){let{createHmac:r}=Ot.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=Sc[t];if(r===void 0){let n=await sr.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=us(n,n),Sc[t]=r}return sr.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof fs!="function")throw new _c("sha256Sync is undefined, you need to set it");let r=Sc[t];if(r===void 0){let n=fs(Uint8Array.from(t,i=>i.charCodeAt(0)));r=us(n,n),Sc[t]=r}return fs(r,...e)},precompute(t=8,e=we.BASE){let r=e===we.BASE?e:new we(e.x,e.y);return r._setWindowSize(t),r.multiply(lo),r}};Object.defineProperties(sr,{sha256Sync:{configurable:!1,get(){return fs},set(t){fs||(fs=t)}},hmacSha256Sync:{configurable:!1,get(){return fo},set(t){fo||(fo=t)}}});var VE=C(G(),1);function Zr(t){if(isNaN(t)||t<=0)throw(0,VE.default)(new Error("random bytes length must be a Number bigger than 0"),"ERR_INVALID_LENGTH");return sr.randomBytes(t)}var pi={};pt(pi,{jwkToPkcs1:()=>QC,jwkToPkix:()=>jC,pkcs1ToJwk:()=>WC,pkixToJwk:()=>XC});var Y8=C(_n(),1),W8=C(ao(),1),Jr=C(ie(),1);var Xf=C(G(),1);function WC(t){let e=Jr.default.asn1.fromDer(Q(t,"ascii")),r=Jr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:ir(r.n),e:ir(r.e),d:ir(r.d),p:ir(r.p),q:ir(r.q),dp:ir(r.dP),dq:ir(r.dQ),qi:ir(r.qInv),alg:"RS256"}}function QC(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,Xf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=Jr.default.pki.privateKeyToAsn1({n:Bt(t.n),e:Bt(t.e),d:Bt(t.d),p:Bt(t.p),q:Bt(t.q),dP:Bt(t.dp),dQ:Bt(t.dq),qInv:Bt(t.qi)});return q(Jr.default.asn1.toDer(e).getBytes(),"ascii")}function XC(t){let e=Jr.default.asn1.fromDer(Q(t,"ascii")),r=Jr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:ir(r.n),e:ir(r.e)}}function jC(t){if(t.n==null||t.e==null)throw(0,Xf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=Jr.default.pki.publicKeyToAsn1({n:Bt(t.n),e:Bt(t.e)});return q(Jr.default.asn1.toDer(e).getBytes(),"ascii")}var Z8=C(ao(),1),jf=C(ie(),1);function qE(t,e){return e.map(r=>Bt(t[r]))}function HE(t){return jf.default.pki.setRsaPrivateKey(...qE(t,["n","e","d","p","q","dp","dq","qi"]))}function zE(t){return jf.default.pki.setRsaPublicKey(...qE(t,["n","e"]))}var $E=C(G(),1);async function GE(t){let e=await _t.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 QE(e);return{privateKey:r[0],publicKey:r[1]}}async function Zf(t){let r=[await _t.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await ZC(t)],n=await QE({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function YE(t,e){let r=await _t.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await _t.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(e));return new Uint8Array(n,0,n.byteLength)}async function WE(t,e,r){let n=await _t.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await _t.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r)}async function QE(t){if(t.privateKey==null||t.publicKey==null)throw(0,$E.default)(new Error("Private and public key are required"),"ERR_INVALID_PARAMETERS");return await Promise.all([_t.get().subtle.exportKey("jwk",t.privateKey),_t.get().subtle.exportKey("jwk",t.publicKey)])}async function ZC(t){return await _t.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 XE(t,e,r,n){let i=e?zE(t):HE(t),s=Q(Uint8Array.from(r),"ascii"),o=n(s,i);return q(o,"ascii")}function jE(t,e){return XE(t,!0,e,(r,n)=>n.encrypt(r))}function ZE(t,e){return XE(t,!1,e,(r,n)=>n.decrypt(r))}async function ms(t,e){let n=await xc().encrypt(t,e);return Vn.encode(n)}var mo=class{constructor(e){this._key=e}async verify(e,r){return await WE(this._key,r,e)}marshal(){return pi.jwkToPkix(this._key)}get bytes(){return _r.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}encrypt(e){return jE(this._key,e)}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},ys=class{constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Zr(16)}async sign(e){return await YE(this._key,e)}get public(){if(this._publicKey==null)throw(0,Jf.default)(new Error("public key not provided"),"ERR_PUBKEY_NOT_PROVIDED");return new mo(this._publicKey)}decrypt(e){return ZE(this._key,e)}marshal(){return pi.jwkToPkcs1(this._key)}get bytes(){return Ar.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 po.default.util.ByteBuffer(this.marshal()),i=po.default.asn1.fromDer(n),s=po.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return po.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return await ms(this.bytes,e);throw(0,Jf.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}}};async function eI(t){let e=pi.pkcs1ToJwk(t),r=await Zf(e);return new ys(r.privateKey,r.publicKey)}function tI(t){let e=pi.pkixToJwk(t);return new mo(e)}async function rI(t){let e=await Zf(t);return new ys(e.privateKey,e.publicKey)}async function nI(t){let e=await GE(t);return new ys(e.privateKey,e.publicKey)}var lh={};pt(lh,{Ed25519PrivateKey:()=>yi,Ed25519PublicKey:()=>wo,generateKeyPair:()=>SI,generateKeyPairFromSeed:()=>hv,unmarshalEd25519PrivateKey:()=>xI,unmarshalEd25519PublicKey:()=>bI});var uh=C(G(),1);var iI=C(Zn(),1);var dt=BigInt(0),he=BigInt(1),gs=BigInt(2),JE=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Ve=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:JE,n:JE,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var nv=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),yo=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),dO=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),sI=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),oI=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),aI=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),cI=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 qe))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(qe.ZERO)?fe.ZERO:new fe(e.x,e.y,he,T(e.x*e.y))}static toAffineBatch(e){let r=fI(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){ev(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}=Ve,s=T(e*e),o=T(r*r),a=T(gs*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){ev(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*gs*u),p=T(s*gs*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=qe.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&&sh.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=fe.normalizeZ(i),sh.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(Tc(e,Ve.l),r)}multiplyUnsafe(e){let r=Tc(e,Ve.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(Ve.h).equals(fe.ZERO)}isTorsionFree(){return this.multiplyUnsafe(Ve.l).equals(fe.ZERO)}toAffine(e=Rc(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 qe(s,o)}fromRistrettoBytes(){rh()}toRistrettoBytes(){rh()}fromRistrettoHash(){rh()}};fe.BASE=new fe(Ve.Gx,Ve.Gy,he,T(Ve.Gx*Ve.Gy));fe.ZERO=new fe(dt,he,he,dt);function ev(t){if(!(t instanceof fe))throw new TypeError("ExtendedPoint expected")}function th(t){if(!(t instanceof At))throw new TypeError("RistrettoPoint expected")}function rh(){throw new Error("Legacy method: switch to RistrettoPoint")}var At=class{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){let{d:r}=Ve,n=T(yo*e*e),i=T((n+he)*aI),s=BigInt(-1),o=T((s-r*n)*T(n+r)),{isValid:a,value:c}=ah(i,o),u=T(c*e);Dn(u)||(u=T(-u)),a||(c=u),a||(s=n);let l=T(s*(n-he)*cI-o),f=c*c,h=T((c+c)*o),d=T(l*sI),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=Ln(e,64);let r=nh(e.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=nh(e.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new At(n.add(s))}static fromHex(e){e=Ln(e,32);let{a:r,d:n}=Ve,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=nh(e);if(!dI(go(s),e)||Dn(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}=rv(T(f*l)),p=T(d*c),y=T(d*p*f),g=T((s+s)*p);Dn(g)&&(g=T(-g));let E=T(a*y),x=T(g*E);if(!h||Dn(x)||E===dt)throw new Error(i);return new At(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}=rv(T(s*a)),u=T(c*s),l=T(c*o),f=T(u*l*i),h;if(Dn(i*f)){let p=T(r*yo),y=T(e*yo);e=p,r=y,h=T(u*oI)}else h=l;Dn(e*f)&&(r=T(-r));let d=T((n-r)*h);return Dn(d)&&(d=T(-d)),go(d)}toHex(){return Eo(this.toRawBytes())}toString(){return this.toHex()}equals(e){th(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 th(e),new At(this.ep.add(e.ep))}subtract(e){return th(e),new At(this.ep.subtract(e.ep))}multiply(e){return new At(this.ep.multiply(e))}multiplyUnsafe(e){return new At(this.ep.multiplyUnsafe(e))}};At.BASE=new At(fe.BASE);At.ZERO=new At(fe.ZERO);var sh=new WeakMap,qe=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,sh.delete(this)}static fromHex(e,r=!0){let{d:n,P:i}=Ve;e=Ln(e,32);let s=e.slice();s[31]=e[31]&-129;let o=vo(s);if(r&&o>=i)throw new Error("Expected 0 < hex < P");if(!r&&o>=nv)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}=ah(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 qe(f,o)}static async fromPrivateKey(e){return(await Nc(e)).point}toRawBytes(){let e=go(this.y);return e[31]|=this.x&he?128:0,e}toHex(){return Eo(this.toRawBytes())}toX25519(){let{y:e}=this,r=T((he+e)*Rc(he-e));return go(r)}isTorsionFree(){return fe.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new qe(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()}};qe.BASE=new qe(Ve.Gx,Ve.Gy);qe.ZERO=new qe(dt,he);var mi=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromHex(e){let r=Ln(e,64),n=qe.fromHex(r.slice(0,32),!1),i=vo(r.slice(32,64));return new mi(n,i)}assertValidity(){let{r:e,s:r}=this;if(!(e instanceof qe))throw new Error("Expected Point instance");return Tc(r,Ve.l,!1),this}toRawBytes(){let e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(go(this.s),32),e}toHex(){return Eo(this.toRawBytes())}};function tv(...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 uI=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Eo(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=uI[t[r]];return e}function oh(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 iv(t){let r=t.toString(16).padStart(64,"0");return oh(r)}function go(t){return iv(t).reverse()}function Dn(t){return(T(t)&he)===he}function vo(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Eo(Uint8Array.from(t).reverse()))}var lI=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function nh(t){return T(vo(t)&lI)}function T(t,e=Ve.P){let r=t%e;return r>=dt?r:e+r}function Rc(t,e=Ve.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 fI(t,e=Ve.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=Rc(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 Ir(t,e){let{P:r}=Ve,n=t;for(;e-- >dt;)n*=n,n%=r;return n}function hI(t){let{P:e}=Ve,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=t*t%e*t%e,u=Ir(c,gs)*c%e,l=Ir(u,he)*t%e,f=Ir(l,r)*l%e,h=Ir(f,n)*f%e,d=Ir(h,i)*h%e,p=Ir(d,s)*d%e,y=Ir(p,o)*p%e,g=Ir(y,o)*p%e,E=Ir(g,n)*f%e;return{pow_p_5_8:Ir(E,gs)*t%e,b2:c}}function ah(t,e){let r=T(e*e*e),n=T(r*r*e),i=hI(t*n).pow_p_5_8,s=T(t*r*i),o=T(e*s*s),a=s,c=T(s*yo),u=o===t,l=o===T(-t),f=o===T(-t*yo);return u&&(s=a),(l||f)&&(s=c),Dn(s)&&(s=T(-s)),{isValid:u||l,value:s}}function rv(t){return ah(he,t)}function Ic(t){return T(vo(t),Ve.l)}function dI(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 Ln(t,e){let r=t instanceof Uint8Array?Uint8Array.from(t):oh(t);if(typeof e=="number"&&r.length!==e)throw new Error(`Expected ${e} bytes`);return r}function Tc(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 pI(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function mI(t){if(t=typeof t=="bigint"||typeof t=="number"?iv(Tc(t,nv)):Ln(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function yI(t){let e=pI(t.slice(0,32)),r=t.slice(32,64),n=Ic(e),i=qe.BASE.multiply(n),s=i.toRawBytes();return{head:e,prefix:r,scalar:n,point:i,pointBytes:s}}var ih;async function Nc(t){return yI(await Pn.sha512(mI(t)))}async function ch(t){return(await Nc(t)).pointBytes}async function sv(t,e){t=Ln(t);let{prefix:r,scalar:n,pointBytes:i}=await Nc(e),s=Ic(await Pn.sha512(r,t)),o=qe.BASE.multiply(s),a=Ic(await Pn.sha512(o.toRawBytes(),i,t)),c=T(s+a*n,Ve.l);return new mi(o,c).toRawBytes()}function gI(t,e,r){e=Ln(e),r instanceof qe||(r=qe.fromHex(r,!1));let{r:n,s:i}=t instanceof mi?t.assertValidity():mi.fromHex(t),s=fe.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:r,msg:e}}function EI(t,e,r,n){let i=Ic(n),s=fe.fromAffine(t).multiplyUnsafe(i);return fe.fromAffine(e).add(s).subtract(r).multiplyUnsafe(Ve.h).equals(fe.ZERO)}async function ov(t,e,r){let{r:n,SB:i,msg:s,pub:o}=gI(t,e,r),a=await Pn.sha512(n.toRawBytes(),o.toRawBytes(),s);return EI(o,n,i,a)}qe.BASE._setWindowSize(8);var Nn={node:iI,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},Pn={bytesToHex:Eo,hexToBytes:oh,concatBytes:tv,getExtendedPublicKey:Nc,mod:T,invert:Rc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=Ln(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return T(vo(t),Ve.l-he)+he},randomBytes:(t=32)=>{if(Nn.web)return Nn.web.getRandomValues(new Uint8Array(t));if(Nn.node){let{randomBytes:e}=Nn.node;return new Uint8Array(e(t).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Pn.randomBytes(32),sha512:async(...t)=>{let e=tv(...t);if(Nn.web){let r=await Nn.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(r)}else{if(Nn.node)return Uint8Array.from(Nn.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(t=8,e=qe.BASE){let r=e.equals(qe.BASE)?e:new qe(e.x,e.y);return r._setWindowSize(t),r.multiply(gs),r},sha512Sync:void 0};Object.defineProperties(Pn,{sha512Sync:{configurable:!1,get(){return ih},set(t){ih||(ih=t)}}});var Es=32,en=64,Dc=32;async function av(){let t=Pn.randomPrivateKey(),e=await ch(t);return{privateKey:fv(t,e),publicKey:e}}async function cv(t){if(t.length!==Dc)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 ch(e);return{privateKey:fv(e,r),publicKey:r}}async function uv(t,e){let r=t.subarray(0,Dc);return await sv(e,r)}async function lv(t,e,r){return await ov(e,r,t)}function fv(t,e){let r=new Uint8Array(en);for(let n=0;n<Dc;n++)r[n]=t[n],r[Dc+n]=e[n];return r}var wo=class{constructor(e){this._key=vs(e,Es)}async verify(e,r){return await lv(this._key,r,e)}marshal(){return this._key}get bytes(){return _r.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}},yi=class{constructor(e,r){this._key=vs(e,en),this._publicKey=vs(r,Es)}async sign(e){return await uv(this._key,e)}get public(){return new wo(this._publicKey)}marshal(){return this._key}get bytes(){return Ar.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 fn.digest(this.public.bytes);return We.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ms(this.bytes,e);throw(0,uh.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function xI(t){if(t.length>en){t=vs(t,en+Es);let n=t.subarray(0,en),i=t.subarray(en,t.length);return new yi(n,i)}t=vs(t,en);let e=t.subarray(0,en),r=t.subarray(Es);return new yi(e,r)}function bI(t){return t=vs(t,Es),new wo(t)}async function SI(){let{privateKey:t,publicKey:e}=await av();return new yi(t,e)}async function hv(t){let{privateKey:e,publicKey:r}=await cv(t);return new yi(e,r)}function vs(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw(0,uh.default)(new Error(`Key must be a Uint8Array of length ${e}, got ${t.length}`),"ERR_INVALID_KEY_TYPE");return t}var hh={};pt(hh,{Secp256k1PrivateKey:()=>bo,Secp256k1PublicKey:()=>xo,generateKeyPair:()=>II,unmarshalSecp256k1PrivateKey:()=>AI,unmarshalSecp256k1PublicKey:()=>CI});var vv=C(G(),1);var ws=C(G(),1);function dv(){return sr.randomPrivateKey()}async function pv(t,e){let{digest:r}=await ot.digest(e);try{return await FE(r,t)}catch(n){throw(0,ws.default)(n,"ERR_INVALID_INPUT")}}async function mv(t,e,r){try{let{digest:n}=await ot.digest(r);return KE(e,n,t)}catch(n){throw(0,ws.default)(n,"ERR_INVALID_INPUT")}}function yv(t){return we.fromHex(t).toRawBytes(!0)}function gv(t){try{Qf(t,!0)}catch(e){throw(0,ws.default)(e,"ERR_INVALID_PRIVATE_KEY")}}function fh(t){try{we.fromHex(t)}catch(e){throw(0,ws.default)(e,"ERR_INVALID_PUBLIC_KEY")}}function Ev(t){try{return Qf(t,!0)}catch(e){throw(0,ws.default)(e,"ERR_INVALID_PRIVATE_KEY")}}var xo=class{constructor(e){fh(e),this._key=e}async verify(e,r){return await mv(this._key,r,e)}marshal(){return yv(this._key)}get bytes(){return _r.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}},bo=class{constructor(e,r){this._key=e,this._publicKey=r??Ev(e),gv(this._key),fh(this._publicKey)}async sign(e){return await pv(this._key,e)}get public(){return new xo(this._publicKey)}marshal(){return this._key}get bytes(){return Ar.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 ms(this.bytes,e);throw(0,vv.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function AI(t){return new bo(t)}function CI(t){return new xo(t)}async function II(){let t=await dv();return new bo(t)}var tn={rsa:eh,ed25519:lh,secp256k1:hh};function ph(t){let e=Object.keys(tn).join(" / ");return(0,dh.default)(new Error(`invalid or unsupported key type ${t}. Must be ${e}`),"ERR_UNSUPPORTED_KEY_TYPE")}function mh(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return tn[t];throw ph(t)}async function Pc(t,e){return await mh(t).generateKeyPair(e??2048)}function So(t){let e=_r.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return tn.rsa.unmarshalRsaPublicKey(r);case Fe.Ed25519:return tn.ed25519.unmarshalEd25519PublicKey(r);case Fe.Secp256k1:return tn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw ph(e.Type??"RSA")}}function wv(t,e){return e=(e??"rsa").toLowerCase(),mh(e),t.bytes}async function xs(t){let e=Ar.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return await tn.rsa.unmarshalRsaPrivateKey(r);case Fe.Ed25519:return tn.ed25519.unmarshalEd25519PrivateKey(r);case Fe.Secp256k1:return tn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw ph(e.Type??"RSA")}}function xv(t,e){return e=(e??"rsa").toLowerCase(),mh(e),t.bytes}async function Bc(t,e){try{let i=await SE(t,e);return await xs(i)}catch{}let r=Lc.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw(0,dh.default)(new Error("Cannot read the key, most likely the password is wrong or not a RSA key"),"ERR_CANNOT_DECRYPT_PEM");let n=Lc.default.asn1.toDer(Lc.default.pki.privateKeyToAsn1(r));return n=q(n.getBytes(),"ascii"),await tn.rsa.unmarshalRsaPrivateKey(n)}var LO=C(rs(),1),RI=C(ie(),1);var DI=C(G(),1);var Sv=C(Mf(),1),_v=C(De(),1),Av=C(G(),1),bv={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function _o(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(bv).join(" / ");throw(0,Av.default)(new Error(`Hash '${i}' is unknown or not supported. Must be ${a}`),"ERR_UNSUPPORTED_HASH_TYPE")}let s=bv[i],o=(0,Sv.default)(t,e,r,n,s);return _v.default.encode64(o,null)}var Oc=M("libp2p:keychain"),PI="/pkcs8/",Iv="/info/",Bn=new WeakMap,gi={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},yh={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function rn(t){return t==null||typeof t!="string"?!1:t===(0,Cv.default)(t.trim())&&t.length>0}async function be(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Tr(t){return new $e(PI+t)}function nn(t){return new $e(Iv+t)}var Ao=class{constructor(e,r){if(this.components=e,this.init=pr(yh,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<gi.minKeyLength)throw new Error(`dek.keyLength must be least ${gi.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<gi.minSaltLength)throw new Error(`dek.saltLength must be least ${gi.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<gi.minIterationCount)throw new Error(`dek.iterationCount must be least ${gi.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?_o(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Bn.set(this,{dek:n}),this.started=!1}isStarted(){return this.started}async start(){let e=nn("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=Bn.get(this);if(e==null)throw(0,ye.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let r=e.dek;return new vc(this,r)}static generateOptions(){let e=Object.assign({},yh),r=Math.ceil(gi.minSaltLength/3)*3;return e.dek.salt=Q(Zr(r),"base64"),e}static get options(){return yh}async createKey(e,r,n=2048){if(!rn(e)||e==="self")throw await be(),(0,ye.default)(new Error("Invalid key name"),b.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await be(),(0,ye.default)(new Error("Invalid key type"),b.ERR_INVALID_KEY_TYPE);let i=Tr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.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,ye.default)(new Error("Invalid RSA key size"),b.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await Pc(r,n),c=await a.id(),u=Bn.get(this);if(u==null)throw(0,ye.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(nn(e),q(JSON.stringify(o))),await h.commit()}catch(a){throw await be(),a}return o}async listKeys(){let e={prefix:Iv},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(!rn(e))throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=nn(e);try{let n=await this.components.datastore.get(r);return JSON.parse(Q(n))}catch(n){throw await be(),Oc.error(n),(0,ye.default)(new Error(`Key '${e}' does not exist.`),b.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!rn(e)||e==="self")throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=Tr(e),n=await this.findKeyByName(e),i=this.components.datastore.batch();return i.delete(r),i.delete(nn(e)),await i.commit(),n}async renameKey(e,r){if(!rn(e)||e==="self")throw await be(),(0,ye.default)(new Error(`Invalid old key name '${e}'`),b.ERR_OLD_KEY_NAME_INVALID);if(!rn(r)||r==="self")throw await be(),(0,ye.default)(new Error(`Invalid new key name '${r}'`),b.ERR_NEW_KEY_NAME_INVALID);let n=Tr(e),i=Tr(r),s=nn(e),o=nn(r);if(await this.components.datastore.has(i))throw await be(),(0,ye.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(!rn(e))throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ye.default)(new Error("Password is required"),b.ERR_PASSWORD_REQUIRED);let n=Tr(e);try{let i=await this.components.datastore.get(n),s=Q(i),o=Bn.get(this);if(o==null)throw(0,ye.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await Bc(s,a)).export(r)}catch(i){throw await be(),i}}async importKey(e,r,n){if(!rn(e)||e==="self")throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ye.default)(new Error("PEM encoded key is required"),b.ERR_PEM_REQUIRED);let i=Tr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o;try{o=await Bc(r,n)}catch{throw await be(),(0,ye.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=Bn.get(this);if(l==null)throw(0,ye.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(nn(e),q(JSON.stringify(c))),await u.commit(),c}async importPeer(e,r){try{if(!rn(e))throw(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw(0,ye.default)(new Error("PeerId is required"),b.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw(0,ye.default)(new Error("PeerId.privKey is required"),b.ERR_MISSING_PRIVATE_KEY);let n=await xs(r.privateKey),i=Tr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o=Bn.get(this);if(o==null)throw(0,ye.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(nn(e),q(JSON.stringify(u))),await l.commit(),u}catch(n){throw await be(),n}}async getPrivateKey(e){if(!rn(e))throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);try{let r=Tr(e),n=await this.components.datastore.get(r);return Q(n)}catch(r){throw await be(),Oc.error(r),(0,ye.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,ye.default)(new Error(`Invalid old pass type '${typeof e}'`),b.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await be(),(0,ye.default)(new Error(`Invalid new pass type '${typeof r}'`),b.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await be(),(0,ye.default)(new Error(`Invalid pass length ${r.length}`),b.ERR_INVALID_PASS_LENGTH);Oc("recreating keychain");let n=Bn.get(this);if(n==null)throw(0,ye.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?_o(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Bn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(Tr(a.name)),u=Q(c),l=await Bc(u,i),f=s.toString(),h=await l.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(Tr(a.name),q(h)),d.put(nn(a.name),q(JSON.stringify(p))),await d.commit()}Oc("keychain reconstructed")}};async function Co(t){try{return{status:"fulfilled",value:await t,isFulfilled:!0,isRejected:!1}}catch(e){return{status:"rejected",reason:e,isFulfilled:!1,isRejected:!0}}}var gh=class{value;next;constructor(e){this.value=e}},Io=class{#e;#t;#r;constructor(){this.clear()}enqueue(e){let r=new gh(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 Eh(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 Io,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 vh(t,e={}){let{concurrency:r=Number.POSITIVE_INFINITY}=e,n=Eh(r);return Promise.all(t.map(i=>i&&typeof i.then=="function"?Co(i):typeof i=="function"?Co(n(()=>i())):Co(Promise.resolve(i))))}var bs=C(G(),1);var wh=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 To(t){let{name:e,metrics:r}=t,n;return r!=null?n=new wh({name:e,metrics:r}):n=new Map,n}var Ei=M("libp2p:transports"),kc=class extends Ue{constructor(e,r={}){super(),this.components=e,this.started=!1,this.transports=new Map,this.listeners=To({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??vi.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw(0,bs.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(r))throw(0,bs.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);Ei("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(Ei("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),Ei("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,bs.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){Ei("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){Ei("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 vh(o)).find(u=>u.isFulfilled)==null&&this.faultTolerance!==vi.NO_FATAL)throw(0,bs.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===vi.FATAL_ALL)throw(0,bs.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);Ei(`libp2p in dial mode only: ${n}`)}}async remove(e){Ei("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)}},vi;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(vi||(vi={}));var at=C(G(),1);var sn="/multistream/1.0.0";var Dv=C(G(),1);var xh=C(G(),1);var OI=M("libp2p:mss"),Tv=q(`
|
|
49
|
-
`);function Ro(t){let e=new Ge(t,Tv);return Vt.single(e)}function wi(t,e,r={}){let n=Ro(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function Rv(t,e,r={}){let n=new Ge;for(let i of e)n.append(Ro(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function kI(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await t.next(r)},i=n;e?.signal!=null&&(i=ni(n,e.signal));let o=await Ce(i,Pt({onLength:a=>{r=a},maxDataLength:1024}),async a=>await Rt(a));if(o==null||o.length===0)throw(0,xh.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Tv[0])throw OI.error("Invalid mss message - missing newline - %s",o.subarray()),(0,xh.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ss(t,e){let r=await kI(t,e);return Q(r.subarray())}var No=M("libp2p:mss:select");async function Do(t,e,r={}){e=Array.isArray(e)?[...e]:[e];let{reader:n,writer:i,rest:s,stream:o}=Zi(t),a=e.shift();if(a==null)throw new Error("At least one protocol must be specified");No('select: write ["%s", "%s"]',sn,a);let c=q(sn),u=q(a);Rv(i,[c,u],r);let l=await Ss(n,r);if(No('select: read "%s"',l),l===sn&&(l=await Ss(n,r),No('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of e){No('select: write "%s"',f),wi(i,q(f),r);let h=await Ss(n,r);if(No('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),(0,Dv.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Lo=M("libp2p:mss:handle");async function Po(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:s,stream:o}=Zi(t);for(;;){let a=await Ss(i,r);if(Lo('read "%s"',a),a===sn){Lo('respond with "%s" for "%s"',sn,a),wi(n,q(sn),r);continue}if(e.includes(a))return wi(n,q(a),r),Lo('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){wi(n,new Ge(...e.map(c=>Ro(q(c)))),r),Lo('respond with "%s" for %s',e,a);continue}wi(n,q("na"),r),Lo('respond with "na" for "%s"',a)}}var bh=C(G(),1);var Lv=Symbol.for("@libp2p/connection");var MI=M("libp2p:connection"),Sh=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:Ca},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[Lv](){return!0}get streams(){return this._getStreams()}async newStream(e,r){if(this.stat.status===_l)throw(0,bh.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Ia)throw(0,bh.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===Ia||this._closing)){this.stat.status=_l;try{this.streams.forEach(e=>e.close())}catch(e){MI.error(e)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Ia}}};function Pv(t){return new Sh(t)}var Uc=C(G(),1);var FI=Symbol.for("@libp2p/topology");function Bv(t){return t!=null&&Boolean(t[FI])}var _h=M("libp2p:registrar"),Ah=32,Ch=64,Mc=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,Uc.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,Uc.default)(new Error(`Handler already registered for protocol ${e}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=pr.bind({ignoreUndefined:!0})({maxInboundStreams:Ah,maxOutboundStreams:Ch},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(!Bv(r))throw _h.error("topology must be an instance of interfaces/topology"),(0,Uc.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=>{_h.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=>{_h.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 Ih=C(Ur(),1);var Th=C(fr(),1),Pe=M("libp2p:upgrader");function KI(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 Ah}function VI(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 Ch}function Ov(t,e,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===e&&i.stat.protocol===t&&n++}),n}var Fc=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 Ih.TimeoutController(this.inboundUpgradeTimeout);try{(0,Th.setMaxListeners)?.(1/0,u.signal)}catch{}try{let l=Dt(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=me(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=me(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 Po(d,p);if(Pe("%s: incoming stream opened on %s",n,g),l==null)return;let E=KI(g,this.components.registrar);if(Ov(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 Ih.TimeoutController(3e4),p.signal=g.signal;try{(0,Th.setMaxListeners)?.(1/0,g.signal)}catch{}}let{stream:E,protocol:x}=await Do(y,d,p),_=VI(x,this.components.registrar);if(Ov(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=Pv({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 Po(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 Do(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 Do(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 Po(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 bi=C(G(),1);var xi;(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())})(xi||(xi={}));var Uv=C(G(),1);var kv={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Bo;(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())})(Bo||(Bo={}));var qI,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=Bo.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=Mv(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await So(this.peerId.publicKey).verify(r.subarray(),this.signature)}};qI=ct;ct.createFromProtobuf=async t=>{let e=Bo.decode(t),r=await Ui(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=Mv(r,n,i),a=await(await xs(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,Uv.default)(new Error("envelope signature is not valid for the given domain"),kv.ERR_SIGNATURE_NOT_VALID);return r};var Mv=(t,e,r)=>{let n=q(t),i=er.encode(n.byteLength),s=er.encode(e.length),o=er.encode(r.length);return new Ge(i,n,s,e,o,r)};function Fv(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 Oo;(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())})(Oo||(Oo={}));var Kv="libp2p-peer-record",Vv=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=Oo.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||!Fv(this.multiaddrs,e.multiaddrs))}};rt.createFromProtobuf=t=>{let e=Oo.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=Vv;var Kc="0.0.0",qv="libp2p";var Rh=`js-libp2p/${Kc}`;var Hv="0.1.0",zv="id",$v="id/push",Gv="1.0.0",Yv="1.0.0";var ko=C(Ur(),1);var Uo=C(fr(),1),Ae=M("libp2p:identify"),Wv=1024*8,_s=class{constructor(e,r){this.components=e,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${zv}/${Gv}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${$v}/${Yv}`,this.host={protocolVersion:`${r.protocolPrefix}/${Hv}`,...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 ko.TimeoutController(this.init.timeout);try{(0,Uo.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Dt(a,c.signal).sink(Ce([xi.encode({listenAddrs:n,signedPeerRecord:r,protocols:i})],Vt()))}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 ko.TimeoutController(this.init.timeout),i=n.signal;try{(0,Uo.setMaxListeners)?.(1/0,n.signal)}catch{}}try{s=await e.newStream([this.identifyProtocolStr],{signal:i});let o=Dt(s,i),a=await Ce([],o,Pt({maxDataLength:this.init.maxIdentifyMessageSize??Wv}),async c=>await Rt(c));if(a==null)throw(0,bi.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return xi.decode(a)}catch(c){throw(0,bi.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,bi.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await Ui(i);if(!e.remotePeer.equals(f))throw(0,bi.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,bi.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let h=_s.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,bi.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 ko.TimeoutController(this.init.timeout);try{(0,Uo.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=xi.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=Dt(n,i.signal),f=Ce([u],Vt());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 ko.TimeoutController(this.init.timeout);try{(0,Uo.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=Dt(n,i.signal),c=await Ce([],a,Pt({maxDataLength:this.init.maxIdentifyMessageSize??Wv}),async u=>await Rt(u));c!=null&&(s=xi.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 As=C(G(),1);var Mo;(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())})(Mo||(Mo={}));var or;(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())})(or||(or={}));var Qv="0.0.1",Xv="fetch";var jv=C(Ur(),1),Zv=C(fr(),1);var Wt=M("libp2p:fetch"),Vc=class{constructor(e,r){this.started=!1,this.components=e,this.protocol=`/${r.protocolPrefix??"libp2p"}/${Xv}/${Qv}`,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=>{Wt.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={}){Wt("dialing %s to %p",this.protocol,e);let i=await this.components.connectionManager.openConnection(e,n),s,o=n.signal,a;if(o==null){Wt("using default timeout of %d ms",this.init.timeout),s=new jv.TimeoutController(this.init.timeout),o=s.signal;try{(0,Zv.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=Dt(a,o);return Wt("fetch %s",r),await Ce([Mo.encode({identifier:r})],Vt(),c,Pt(),async function(l){let f=await Rt(l);if(f==null)throw(0,As.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let h=or.decode(f);switch(h.status){case or.StatusCode.OK:return Wt("received status for %s ok",r),h.data;case or.StatusCode.NOT_FOUND:return Wt("received status for %s not found",r),null;case or.StatusCode.ERROR:{Wt("received status for %s error",r);let d=Q(h.data);throw(0,As.default)(new Error("Error in fetch protocol response: "+d),b.ERR_INVALID_PARAMETERS)}default:throw Wt("received status for %s unknown",r),(0,As.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,Pt(),async function*(i){let s=await Rt(i);if(s==null)throw(0,As.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let o=Mo.decode(s),a,c=n._getLookupFunction(o.identifier);if(c!=null){Wt("look up data with identifier %s",o.identifier);let u=await c(o.identifier);u!=null?(Wt("sending status for %s ok",o.identifier),a={status:or.StatusCode.OK,data:u}):(Wt("sending status for %s not found",o.identifier),a={status:or.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Wt("sending status for %s error",o.identifier);let u=q(`No lookup function registered for key: ${o.identifier}`);a={status:or.StatusCode.ERROR,data:u}}yield or.encode(a)},Vt(),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,As.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 rw=C(G(),1);var Jv="1.0.0",ew="ping";var nw=C(Ur(),1),iw=C(fr(),1),tw=M("libp2p:ping"),qc=class{constructor(e,r){this.components=e,this.started=!1,this.protocol=`/${r.protocolPrefix}/${ew}/${Jv}`,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=>{tw.error(n)})}async ping(e,r={}){tw("dialing %s to %p",this.protocol,e);let n=Date.now(),i=Zr(32),s=await this.components.connectionManager.openConnection(e,r),o,a=r.signal,c;if(a==null){o=new nw.TimeoutController(this.init.timeout),a=o.signal;try{(0,iw.setMaxListeners)?.(1/0,o.signal)}catch{}}try{c=await s.newStream([this.protocol],{signal:a});let u=Dt(c,a),l=await Ce([i],u,async h=>await Rt(h)),f=Date.now();if(l==null||!_e(i,l.subarray()))throw(0,rw.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function sw(){throw new Error("Not supported in browsers")}var cw=C(aw(),1),Nh=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Hc=(0,cw.default)(),Fo=Nh&&!Hc,uw=Hc&&!Nh,lw=Hc&&Nh,fw=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Hc,hw=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,x6=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",dw=typeof navigator<"u"&&navigator.product==="ReactNative";var yw=C(G(),1);function pw(t){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(t)||/^::1$/.test(t)}function mw(t){let{address:e}=t.nodeAddress();return pw(e)}var Dh=M("libp2p:nat"),Lh=7200;function GI(t=1024,e=65535){return Math.floor(Math.random()*(e-t+1)+t)}var zc=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??`${qv}@${Kc} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Lh,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Lh)throw(0,yw.default)(new Error(`NatManager ttl should be at least ${Lh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Fo||!this.enabled||this.started||(this.started=!0,this._start().catch(e=>{Dh.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"||mw(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=Qa(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=GI();Dh(`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(Zp({family:4,address:c,port:l},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await sw({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Fo||this.client==null))try{await this.client.close(),this.client=void 0}catch(e){Dh.error(e)}}};var YI=M("libp2p:peer-record-updater"),$c=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=>{YI.error("Could not update self peer record: %o",e)})}};var gw=C(G(),1);var Gc=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,gw.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 Wc=C(G(),1);var re={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*Ph(t,e){for await(let r of t)await e(r),yield r}var Se=M("libp2p:peer-store:address-book"),Yc="change:multiaddrs";async function WI(){return!0}var Qc=class{constructor(e,r,n){this.dispatchEvent=e,this.store=r,this.addressFilter=n??WI}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 Bh(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(Yc,{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,Wc.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 Bh(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(Yc,{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,Wc.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 Bh(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(Yc,{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(Yc,{detail:{peerId:e,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Bh(t,e,r,n=!1){return await Ce(e,i=>Ph(i,s=>{if(!Fr(s))throw Se.error("multiaddr must be an instance of Multiaddr"),(0,Wc.default)(new Error("multiaddr must be an instance of Multiaddr"),re.ERR_INVALID_PARAMETERS)}),i=>kr(i,async s=>await r(t,s)),i=>Ls(i,s=>({multiaddr:s,isCertified:n})),async i=>await zr(i))}var vw=C(G(),1);var Rr=M("libp2p:peer-store:key-book"),Ew="change:pubkey",Xc=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async set(e,r){if(e=Qe(e),!(r instanceof Uint8Array))throw Rr.error("publicKey must be an instance of Uint8Array to store data"),(0,vw.default)(new Error("publicKey must be an instance of PublicKey"),re.ERR_INVALID_PARAMETERS);Rr.trace("set await write lock");let n=await this.store.lock.writeLock();Rr.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{Rr.trace("set release write lock"),n()}i&&this.dispatchEvent(new X(Ew,{detail:{peerId:e,publicKey:r,oldPublicKey:s?.pubKey}}))}async get(e){e=Qe(e),Rr.trace("get await write lock");let r=await this.store.lock.readLock();Rr.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{Rr("get release write lock"),r()}}async delete(e){e=Qe(e),Rr.trace("delete await write lock");let r=await this.store.lock.writeLock();Rr.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{Rr.trace("delete release write lock"),r()}this.dispatchEvent(new X(Ew,{detail:{peerId:e,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Oh=C(G(),1);var nt=M("libp2p:peer-store:metadata-book"),jc="change:metadata",Zc=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,Oh.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(jc,{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,Oh.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(jc,{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(jc,{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(jc,{detail:{peerId:e,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var eu=C(G(),1);var it=M("libp2p:peer-store:proto-book"),Jc="change:protocols",tu=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,eu.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(Jc,{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,eu.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(Jc,{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,eu.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(Jc,{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(Jc,{detail:{peerId:e,protocols:[],oldProtocols:n.protocols}}))}};var td=C(G(),1);var Ko;(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),ru.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),nu.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(ru.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(nu.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())})(Ko||(Ko={}));var ru;(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())})(ru||(ru={}));var nu;(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())})(nu||(nu={}));var Nw=C(xw(),1);var qo=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Uh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},bw=t=>globalThis.DOMException===void 0?new Uh(t):new DOMException(t),Sw=t=>{let e=t.reason===void 0?bw("This operation was aborted."):t.reason;return e instanceof Error?e:bw(e)};function Mh(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(Sw(c)),c.addEventListener("abort",()=>{a(Sw(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 qo(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 Fh(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 Si=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)},on,Ho=class{constructor(){on.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&Si(this,on,"f")[this.size-1].priority>=r.priority){Si(this,on,"f").push(n);return}let i=Fh(Si(this,on,"f"),n,(s,o)=>o.priority-s.priority);Si(this,on,"f").splice(i,0,n)}dequeue(){let e=Si(this,on,"f").shift();return e?.run}filter(e){return Si(this,on,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return Si(this,on,"f").length}};on=new WeakMap;var He=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,$o,Go,kn,lu,Yo,su,ar,zo,kt,ou,Ut,Wo,On,au,_w,Aw,Rw,Cw,Iw,Tw,cu,Kh,Vh,fu,uu,jI=new qo,qh=class extends Error{},Cs=class extends Nw.default{constructor(e){var r,n,i,s;if(super(),Ze.add(this),$o.set(this,void 0),Go.set(this,void 0),kn.set(this,0),lu.set(this,void 0),Yo.set(this,void 0),su.set(this,0),ar.set(this,void 0),zo.set(this,void 0),kt.set(this,void 0),ou.set(this,void 0),Ut.set(this,0),Wo.set(this,void 0),On.set(this,void 0),au.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:Ho,...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})`);He(this,$o,e.carryoverConcurrencyCount,"f"),He(this,Go,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),He(this,lu,e.intervalCap,"f"),He(this,Yo,e.interval,"f"),He(this,kt,new e.queueClass,"f"),He(this,ou,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,He(this,au,e.throwOnTimeout===!0,"f"),He(this,On,e.autoStart===!1,"f")}get concurrency(){return V(this,Wo,"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})`);He(this,Wo,e,"f"),V(this,Ze,"m",fu).call(this)}async add(e,r={}){return new Promise((n,i)=>{let s=async()=>{var o,a,c;He(this,Ut,(a=V(this,Ut,"f"),a++,a),"f"),He(this,kn,(c=V(this,kn,"f"),c++,c),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted){i(new qh("The task was aborted."));return}let l=await(this.timeout===void 0&&r.timeout===void 0?e({signal:r.signal}):Mh(Promise.resolve(e({signal:r.signal})),r.timeout===void 0?this.timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?V(this,au,"f"):r.throwOnTimeout)&&i(jI)}));n(l),this.emit("completed",l)}catch(u){i(u),this.emit("error",u)}V(this,Ze,"m",Rw).call(this)};V(this,kt,"f").enqueue(s,r),V(this,Ze,"m",cu).call(this),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return V(this,On,"f")?(He(this,On,!1,"f"),V(this,Ze,"m",fu).call(this),this):this}pause(){He(this,On,!0,"f")}clear(){He(this,kt,new(V(this,ou,"f")),"f")}async onEmpty(){V(this,kt,"f").size!==0&&await V(this,Ze,"m",uu).call(this,"empty")}async onSizeLessThan(e){V(this,kt,"f").size<e||await V(this,Ze,"m",uu).call(this,"next",()=>V(this,kt,"f").size<e)}async onIdle(){V(this,Ut,"f")===0&&V(this,kt,"f").size===0||await V(this,Ze,"m",uu).call(this,"idle")}get size(){return V(this,kt,"f").size}sizeBy(e){return V(this,kt,"f").filter(e).length}get pending(){return V(this,Ut,"f")}get isPaused(){return V(this,On,"f")}};$o=new WeakMap,Go=new WeakMap,kn=new WeakMap,lu=new WeakMap,Yo=new WeakMap,su=new WeakMap,ar=new WeakMap,zo=new WeakMap,kt=new WeakMap,ou=new WeakMap,Ut=new WeakMap,Wo=new WeakMap,On=new WeakMap,au=new WeakMap,Ze=new WeakSet,_w=function(){return V(this,Go,"f")||V(this,kn,"f")<V(this,lu,"f")},Aw=function(){return V(this,Ut,"f")<V(this,Wo,"f")},Rw=function(){var e;He(this,Ut,(e=V(this,Ut,"f"),e--,e),"f"),V(this,Ze,"m",cu).call(this),this.emit("next")},Cw=function(){this.emit("empty"),V(this,Ut,"f")===0&&this.emit("idle")},Iw=function(){V(this,Ze,"m",Vh).call(this),V(this,Ze,"m",Kh).call(this),He(this,zo,void 0,"f")},Tw=function(){let e=Date.now();if(V(this,ar,"f")===void 0){let r=V(this,su,"f")-e;if(r<0)He(this,kn,V(this,$o,"f")?V(this,Ut,"f"):0,"f");else return V(this,zo,"f")===void 0&&He(this,zo,setTimeout(()=>{V(this,Ze,"m",Iw).call(this)},r),"f"),!0}return!1},cu=function(){if(V(this,kt,"f").size===0)return V(this,ar,"f")&&clearInterval(V(this,ar,"f")),He(this,ar,void 0,"f"),V(this,Ze,"m",Cw).call(this),!1;if(!V(this,On,"f")){let e=!V(this,Ze,"a",Tw);if(V(this,Ze,"a",_w)&&V(this,Ze,"a",Aw)){let r=V(this,kt,"f").dequeue();return r?(this.emit("active"),r(),e&&V(this,Ze,"m",Kh).call(this),!0):!1}}return!1},Kh=function(){V(this,Go,"f")||V(this,ar,"f")!==void 0||(He(this,ar,setInterval(()=>{V(this,Ze,"m",Vh).call(this)},V(this,Yo,"f")),"f"),He(this,su,Date.now()+V(this,Yo,"f"),"f"))},Vh=function(){V(this,kn,"f")===0&&V(this,Ut,"f")===0&&V(this,ar,"f")&&(clearInterval(V(this,ar,"f")),He(this,ar,void 0,"f")),He(this,kn,V(this,$o,"f")?V(this,Ut,"f"):0,"f"),V(this,Ze,"m",fu).call(this)},fu=function(){for(;V(this,Ze,"m",cu).call(this););},uu=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Hh=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},zh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Dw=t=>globalThis.DOMException===void 0?new zh(t):new DOMException(t),Lw=t=>{let e=t.reason===void 0?Dw("This operation was aborted."):t.reason;return e instanceof Error?e:Dw(e)};function $h(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(Lw(l)),l.addEventListener("abort",()=>{u(Lw(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 Hh(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 Gh="lock:worker:request-read",Yh="lock:worker:release-read",Wh="lock:master:grant-read",Qh="lock:worker:request-write",Xh="lock:worker:release-write",jh="lock:master:grant-write";var Un={},Is=t=>{t.addEventListener("message",e=>{Is.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Is.dispatchEvent("message",t,e)})};Is.addEventListener=(t,e)=>{Un[t]==null&&(Un[t]=[]),Un[t].push(e)};Is.removeEventListener=(t,e)=>{Un[t]!=null&&(Un[t]=Un[t].filter(r=>r===e))};Is.dispatchEvent=function(t,e,r){Un[t]!=null&&Un[t].forEach(n=>n(e,r))};var Zh=Is;var Pw=(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)}))}}))},Bw=(t,e,r,n)=>async()=>{let i=ra();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)})},ZI={singleProcess:!1},Ow=t=>{if(t=Object.assign({},ZI,t),Boolean(globalThis.document)||t.singleProcess){let r=new EventTarget;return Zh.addEventListener("message",Pw(r,"requestReadLock",Gh,Yh,Wh)),Zh.addEventListener("message",Pw(r,"requestWriteLock",Qh,Xh,jh)),r}return{isWorker:!0,readLock:r=>Bw(r,Gh,Wh,Yh),writeLock:r=>Bw(r,Qh,jh,Xh)}};var _i={},Mn;async function Jh(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await $h((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var JI=(t,e)=>{if(Mn.isWorker===!0)return{readLock:Mn.readLock(t,e),writeLock:Mn.writeLock(t,e)};let r=new Cs({concurrency:1}),n;return{async readLock(){if(n!=null)return await Jh(n,e);n=new Cs({concurrency:e.concurrency,autoStart:!1});let i=n,s=Jh(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await Jh(r,e)}}},eT={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function ed(t){let e=Object.assign({},eT,t);return Mn==null&&(Mn=Ow(e),Mn.isWorker!==!0&&(Mn.addEventListener("requestReadLock",r=>{_i[r.data.name]!=null&&_i[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Mn.addEventListener("requestWriteLock",async r=>{_i[r.data.name]!=null&&_i[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),_i[e.name]==null&&(_i[e.name]=JI(e.name,e)),_i[e.name]}var kw=M("libp2p:peer-store:store"),Uw="/peers/",hu=class{constructor(e){this.components=e,this.lock=ed({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(e){if(e.type==null)throw kw.error("peerId must be an instance of peer-id to store data"),(0,td.default)(new Error("peerId must be an instance of peer-id"),re.ERR_INVALID_PARAMETERS);let r=e.toCID().toString();return new $e(`${Uw}${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=Ko.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 kw.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,td.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=Ko.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:Uw})){let r=e.toString().split("/")[2],n=Tt.decode(r);yield this.load(mn(n))}}};var rd=C(G(),1);var an;(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),du.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(du.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())})(an||(an={}));var du;(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())})(du||(du={}));var Qt=M("libp2p:peer-store"),pu=class extends Ue{constructor(e,r={}){super(),this.components=e,this.store=new hu(e),this.addressBook=new Qc(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new Xc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new Zc(this.dispatchEvent.bind(this),this.store),this.protoBook=new tu(this.dispatchEvent.bind(this),this.store)}async forEach(e){Qt.trace("getPeers await read lock");let r=await this.store.lock.readLock();Qt.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||e(n)}finally{Qt.trace("getPeers release read lock"),r()}}async all(){let e=[];return await this.forEach(r=>{e.push(r)}),e}async delete(e){Qt.trace("delete await write lock");let r=await this.store.lock.writeLock();Qt.trace("delete got write lock");try{await this.store.delete(e)}finally{Qt.trace("delete release write lock"),r()}}async get(e){Qt.trace("get await read lock");let r=await this.store.lock.readLock();Qt.trace("get got read lock");try{return await this.store.load(e)}finally{Qt.trace("get release read lock"),r()}}async has(e){Qt.trace("has await read lock");let r=await this.store.lock.readLock();Qt.trace("has got read lock");try{return await this.store.has(e)}finally{Qt.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,rd.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=an.decode(a).tags);for(let u of c)if(u.name===r)throw(0,rd.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",an.encode({tags:c}).subarray())}async unTagPeer(e,r){let n=await this.metadataBook.getValue(e,"tags"),i=[];n!=null&&(i=an.decode(n).tags),i=i.filter(s=>s.name!==r),await this.metadataBook.setValue(e,"tags",an.encode({tags:i}).subarray())}async getTags(e){let r=await this.metadataBook.getValue(e,"tags"),n=[];r!=null&&(n=an.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",an.encode({tags:s}).subarray()),s.map(o=>({name:o.name,value:o.value??0}))}};var Mw=C(G(),1),mu=class{constructor(e){this.dht=e}async provide(e){await dn(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 dn(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,Mw.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Mt=C(G(),1);var yu=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=>Lr(e)).map(async e=>{e.beforeStart!=null&&await e.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(e=>Lr(e)).map(async e=>{await e.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(e=>Lr(e)).map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(e=>Lr(e)).map(async e=>{e.beforeStop!=null&&await e.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(e=>Lr(e)).map(async e=>{await e.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(e=>Lr(e)).map(async e=>{e.afterStop!=null&&await e.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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,Mt.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 id=C(Tu(),1),sd=C(Vw(),1);var qw=globalThis.fetch,Hw=globalThis.Headers,lU=globalThis.Request,fU=globalThis.Response;function gu(t,e,r){return`${t}?name=${e}&type=${r}`}async function zw(t,e){return await(await qw(t,{headers:new Hw({accept:"application/dns-json"}),signal:e})).json()}function Ai(t,e){return`${e}_${t}`}var nd=Object.assign((0,id.default)("dns-over-http-resolver"),{error:(0,id.default)("dns-over-http-resolver:error")}),od=class{constructor(e={}){this._cache=new sd.default({max:e?.maxCache??100}),this._TXTcache=new sd.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??zw,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(Ai(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(gu(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(Ai(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),nd.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(Ai(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(gu(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(Ai(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),nd.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(Ai(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(gu(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(Ai(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),nd.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()}},$w=od;var Gw=$w;var{code:sT}=Ie("dnsaddr");async function Yw(t,e={}){let r=new Gw;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===sT)??[];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 Eu=C(G(),1);var lT={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:Yw},addressSorter:Ji},connectionGater:{},transportManager:{faultTolerance:vi.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:Rh},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 Ww(t){let e=pr(lT,t);if(e.transports==null||e.transports.length<1)throw(0,Eu.default)(new Error(ne.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(e.connectionEncryption==null||e.connectionEncryption.length===0)throw(0,Eu.default)(new Error(ne.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,Eu.default)(new Error(ne.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return e.identify.host.agentVersion===Rh&&(fw||uw?e.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Fo||hw||lw||dw)&&(e.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),e}var ld;(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())})(ld||(ld={}));var Qw=async()=>{let t=await Pc("Ed25519"),e=await fT(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function fT(t){return await Ui(wv(t.public),xv(t))}var Xo=C(G(),1);var Xt=C(G(),1);var Xw=Symbol.for("@libp2p/peer-discovery");var vu=class extends Ue{get[Xw](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,Xt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}};var cn=C(G(),1);var wu=class extends Ue{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var Ts=C(G(),1);var d1=C(Ur(),1),pd=C(hd(),1),p1=C(fr(),1);var Qo=C(G(),1),l1=C(hd(),1),f1=C(c1(),1),dd=C(fr(),1);var u1=M("libp2p:dialer:dial-request"),xu=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,Qo.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new f1.default;for(let a of r)n.push(a).catch(c=>{u1.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,dd.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(e.signal!=null)try{(0,dd.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,Qo.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let l=i[c];if(l==null)throw(0,Qo.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,l1.anySignal)([h,e.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=r.length?n.push(u).catch(h=>{u1.error(h)}):this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0])}if(f==null)throw(0,Qo.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 cr=M("libp2p:dialer"),bu=class{constructor(e,r={}){this.started=!1,this.addressSorter=r.addressSorter??Ji,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=To({name:"libp2p_dialler_pending_dials",metrics:e.metrics}),this.pendingDialTargets=To({name:"libp2p_dialler_pending_dial_targets",metrics:e.metrics});for(let[n,i]of Object.entries(r.resolvers??{}))xl.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){cr.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}=Kr(e);if(this.components.peerId.equals(n))throw(0,Ts.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(cr("check multiaddrs %p",n),i!=null&&i.length>0&&(cr("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,i)),await this.components.connectionGater.denyDialPeer(n))throw(0,Ts.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED);cr("creating dial target for %p",n);let s=new AbortController,o=h1();this.pendingDialTargets.set(o,s);let a=s.signal;r.signal!=null&&(a=(0,pd.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,Ts.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 cr("dial succeeded to %s",c.id),l}catch(l){throw cr("dial failed to %s",c.id,l),u.controller.signal.aborted&&(l.code=b.ERR_TIMEOUT),cr.error(l),l}finally{u.destroy()}}async _createDialTarget(e,r){let n=this._resolve.bind(this),i=Fr(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,Ts.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let s=Wn(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?h1():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(pT).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(e,r={}){let n=async(u,l={})=>{if(l.signal?.aborted===!0)throw(0,Ts.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(u,l).catch(f=>{throw cr.error("dial to %s failed",u,f),f})},i=new xu({addrs:e.addrs,dialAction:n,dialer:this}),s=new d1.TimeoutController(this.timeout),o=[s.signal];r.signal!=null&&o.push(r.signal);let a=(0,pd.anySignal)(o);try{(0,p1.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 cr("%d tokens request, returning %d, %d remaining",e,r,this.tokens.length),n}releaseToken(e){this.tokens.includes(e)||(cr("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 cr.error(`multiaddr ${e.toString()} could not be resolved`,n),[]}}};function pT(t){return Boolean(t)}function h1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var un=M("libp2p"),md=class extends Ue{constructor(e){super(),this.started=!1,this.peerId=e.peerId;let r=this.components=new yu({peerId:e.peerId,datastore:e.datastore??new oa,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 pu(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 Fc(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 bu(this.components,e.connectionManager),this.connectionManager=this.components.connectionManager=new Da(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 Mc(this.components),this.components.transportManager=new kc(this.components,e.transportManager),this.components.addressManager=new xa(this.components,e.addresses),this.configureComponent(new $c(this.components)),this.configureComponent(new La(this.components,{enabled:e.connectionManager.autoDial,minConnections:e.connectionManager.minConnections,autoDialInterval:e.connectionManager.autoDialInterval}));let n=Ao.generateOptions();this.keychain=this.configureComponent(new Ao(this.components,{...n,...e.keychain})),this.services.push(new zc(this.components,e.nat)),e.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))}),this.identifyService=new _s(this.components,{...e.identify}),this.configureComponent(this.identifyService),e.dht!=null?this.dht=this.components.dht=e.dht(this.components):this.dht=new vu,e.pubsub!=null?this.pubsub=this.components.pubsub=e.pubsub(this.components):this.pubsub=new wu;let i=(e.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&(i.push(this.configureComponent(new Gc(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new da(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 mu(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new ma(this.components,{routers:s})),e.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new za(this.components,e.relay))),this.configureComponent(new ja(this.components,{addressSorter:e.connectionManager.addressSorter,...e.relay}))),this.fetchService=this.configureComponent(new Vc(this.components,{...e.fetch})),this.pingService=this.configureComponent(new qc(this.components,{...e.ping}));for(let o of e.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(e){return Lr(e)&&this.services.push(e),e}async start(){if(!this.started){this.started=!0,un("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()})),un("libp2p has started")}catch(e){throw un.error("An error occurred starting libp2p",e),await this.stop(),e}}}async stop(){this.started&&(un("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()})),un("libp2p has stopped"))}isStarted(){return this.started}getConnections(e){return this.components.connectionManager.getConnections(e)}getPeers(){let e=new Hr;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}=Kr(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,Xo.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,Xo.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}=Kr(e);await this.components.connectionManager.closeConnections(r)}async getPublicKey(e,r={}){if(un("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,Xo.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=So(s.value);return await this.peerStore.keyBook.set(e,s.value),o.bytes}throw(0,Xo.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}=Kr(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}=Kr(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)}))}onDiscoveryPeer(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){un.error(new Error(b.ERR_DISCOVERED_SELF));return}r.multiaddrs.length>0&&this.components.peerStore.addressBook.add(r.id,r.multiaddrs).catch(n=>un.error(n)),r.protocols.length>0&&this.components.peerStore.protoBook.set(r.id,r.protocols).catch(n=>un.error(n)),this.dispatchEvent(new X("peer:discovery",{detail:r}))}};async function m1(t){return t.peerId==null&&(t.peerId=await Qw()),new md(Ww(t))}async function mT(t){let e=await m1(t);return t.start!==!1&&await e.start(),e}return x1(yT);})();
|
|
48
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),rS=new RegExp(`(?:^${ir}$)|(?:^${Ya}$)`),nS=new RegExp(`^${ir}$`),iS=new RegExp(`^${Ya}$`),lf=t=>t&&t.exact?rS:new RegExp(`(?:${bn(t)}${ir}${bn(t)})|(?:${bn(t)}${Ya}${bn(t)})`,"g");lf.v4=t=>t&&t.exact?nS:new RegExp(`${bn(t)}${ir}${bn(t)}`,"g");lf.v6=t=>t&&t.exact?iS:new RegExp(`${bn(t)}${Ya}${bn(t)}`,"g");var fy=lf;var yy=C(dy(),1),{isValid:sS,parse:oS}=yy.default,aS=["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"],cS=aS.map(t=>new my.Netmask(t));function uS(t){for(let e of cS)if(e.contains(t))return!0;return!1}function py(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 gy=t=>{if(sS(t)){let e=oS(t);if(e.kind()==="ipv4")return uS(e.toNormalizedString());if(e.kind()==="ipv6")return py(t)}else if(Mi(t)&&fy.v6().test(t))return py(t)};var Qa=gy;function ff(t){let{address:e}=t.nodeAddress();return Boolean(Qa(e))}function Zi(t,e){let r=ff(t.multiaddr),n=ff(e.multiaddr);return r&&!n?1:!r&&n||t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}var to=M("libp2p:auto-relay"),fS=()=>{},Xa=class{constructor(e,r){this.components=e,this.addressSorter=r.addressSorter??Zi,this.maxListeners=r.maxListeners??1,this.listenRelays=new Set,this.onError=r.onError??fS,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{to.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===wr)==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)){to(`relayed connection to ${i} will not be used to hop on`);return}await ny({connection:a})&&(await this.components.peerStore.metadataBook.setValue(r,cf,q(uf)),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=>{to.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=>Hs(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){to.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(cf);if(a==null||Q(a)!==uf)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 $a(Ga);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){to.error("Could not use %p as relay",e,r),this.onError(r,`could not connect and listen on known hop relay ${e.toString()}`)}}};var Ey=M("libp2p:relay"),ja=class{constructor(e,r){this.components=e,this.autoRelay=r.autoRelay?.enabled!==!1?new Xa(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,Za.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,Za.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let e=await $a(Ga);await this.components.contentRouting.provide(e)}catch(e){e.code===b.ERR_NO_ROUTERS_AVAILABLE?(Ey.error("a content router, such as a DHT, must be provided in order to advertise the relay service",e),await this.stop()):Ey.error(e)}}};var mv=C(Iy(),1);var z4=C($g(),1),$4=C(Mf(),1),Xr=C(ie(),1);var q4=C(Pf(),1),sE=C(ie(),1),iE=sE.default.pki,oE=(t,e)=>{let r=iE.rsa.setPublicKey(e.n,e.e),n=iE.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 aE(t,e){let r=t.map(e),i=(await Promise.all(r)).findIndex(s=>s);return t[i]}var jr=C(G(),1);var fC=M("libp2p:keychain:cms"),Ff=new WeakMap,vc=class{constructor(e,r){if(e==null)throw(0,jr.default)(new Error("keychain is required"),b.ERR_KEYCHAIN_REQUIRED);this.keychain=e,Ff.set(this,{dek:r})}async encrypt(e,r){if(!(r instanceof Uint8Array))throw(0,jr.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=Ff.get(this);if(s==null)throw(0,jr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let o=s.dek,a=Xr.default.pki.decryptRsaPrivateKey(i,o),c=await oE(n,a),u=Xr.default.pkcs7.createEnvelopedData();u.addRecipient(c),u.content=Xr.default.util.createBuffer(r),u.encrypt();let l=Xr.default.asn1.toDer(u.toAsn1()).getBytes();return q(l,"ascii")}async decrypt(e){if(!(e instanceof Uint8Array))throw(0,jr.default)(new Error("CMS data is required"),b.ERR_INVALID_PARAMETERS);let r;try{let l=Xr.default.util.createBuffer(Q(e,"ascii")),f=Xr.default.asn1.fromDer(l);r=Xr.default.pkcs7.messageFromAsn1(f)}catch(l){throw fC.error(l),(0,jr.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 aE(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,jr.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,jr.default)(new Error("No key available to decrypto"),b.ERR_NO_KEY);let o=await this.keychain.getPrivateKey(s.name),a=Ff.get(this);if(a==null)throw(0,jr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let c=a.dek,u=Xr.default.pki.decryptRsaPrivateKey(o,c);return r.decrypt(i.recipient,u),q(r.content.getBytes(),"ascii")}};var ye=C(G(),1);var Fe;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Fe||(Fe={}));var Kf;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(Kf||(Kf={}));(function(t){t.codec=()=>wn(Kf)})(Fe||(Fe={}));var Ir;(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())})(Ir||(Ir={}));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 fO=C(An(),1),hO=C(Mf(),1),Lc=C(ie(),1),fh=C(G(),1);var hC=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 dC=C(G(),1);var c8=C(De(),1),u8=C(pc(),1),uE=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=lE(t);return new uE.default.jsbn.BigInteger(Q(e,"base16"),16)}function lE(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 pC={"P-256":256,"P-384":384,"P-521":521},mC=Object.keys(pC),v8=mC.join(" / ");function xc(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 hE(t,e){let r=qn.decode(t);return await xc().decrypt(r,e)}var Zf={};pt(Zf,{RsaPrivateKey:()=>ms,RsaPublicKey:()=>po,fromJwk:()=>KC,generateKeyPair:()=>VC,unmarshalRsaPrivateKey:()=>MC,unmarshalRsaPublicKey:()=>FC});var jf=C(G(),1);var X8=C(gE(),1),ho=C(ie(),1);var gC=C(Zn(),1);var le=BigInt(0),ke=BigInt(1),Nn=BigInt(2),uo=BigInt(3),EC=BigInt(8),Ke=Object.freeze({a:le,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:ke,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")});function EE(t){let{a:e,b:r}=Ke,n=K(t*t),i=K(n*t);return K(i+e*t+r)}var bc=Ke.a===le,_c=class extends Error{constructor(e){super(e)}},ge=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof we))throw new TypeError("JacobianPoint#fromAffine: expected Point");return new ge(e.x,e.y,ke)}static toAffineBatch(e){let r=SC(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return ge.toAffineBatch(e).map(ge.fromAffine)}equals(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint expected");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 ge(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(Nn*(K(a*a)-i-o)),u=K(uo*i),l=K(u*u),f=K(l-Nn*c),h=K(u*(c-f)-EC*o),d=K(Nn*r*n);return new ge(f,h,d)}add(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint expected");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():ge.ZERO;let g=K(p*p),E=K(p*g),x=K(l*g),_=K(y*y-E-Nn*x),B=K(y*(x-_)-h*E),D=K(i*a*p);return new ge(_,B,D)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=ge.ZERO;if(typeof e=="bigint"&&e===le)return r;let n=xE(e);if(n===ke)return this;if(!bc){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}=SE(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 ge(K(u.x*Ke.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=bc?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(ge.BASE)&&(r=we.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&&zf.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ge.normalizeZ(i),zf.set(r,i)));let s=ge.ZERO,o=ge.ZERO,a=1+(bc?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);if(e>>=f,p>c&&(p-=l,e+=ke),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{p:s,f:o}}multiply(e,r){let n=xE(e),i,s;if(bc){let{k1neg:o,k1:a,k2neg:c,k2:u}=SE(n),{p:l,f}=this.wNAF(a,r),{p:h,f:d}=this.wNAF(u,r);o&&(l=l.negate()),c&&(h=h.negate()),h=new ge(K(h.x*Ke.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 ge.normalizeZ([i,s])[0]}toAffine(e=ds(this.z)){let{x:r,y:n,z:i}=this,s=e,o=K(s*s),a=K(o*s),c=K(r*o),u=K(n*a);if(K(i*s)!==ke)throw new Error("invZ was invalid");return new we(c,u)}};ge.BASE=new ge(Ke.Gx,Ke.Gy,ke);ge.ZERO=new ge(le,ke,le);var zf=new WeakMap,we=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,zf.delete(this)}hasEvenY(){return this.y%Nn===le}static fromCompressedHex(e){let r=e.length===32,n=Zr(r?e:e.subarray(1));if(!Hf(n))throw new Error("Point is not on curve");let i=EE(n),s=bC(i),o=(s&ke)===ke;r?o&&(s=K(-s)):(e[0]&1)===1!==o&&(s=K(-s));let a=new we(n,s);return a.assertValidity(),a}static fromUncompressedHex(e){let r=Zr(e.subarray(1,33)),n=Zr(e.subarray(33,65)),i=new we(r,n);return i.assertValidity(),i}static fromHex(e){let r=hs(e),n=r.length,i=r[0];if(n===32||n===33&&(i===2||i===3))return this.fromCompressedHex(r);if(n===65&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return we.BASE.multiply(Cc(e))}static fromSignature(e,r,n){e=hs(e);let i=_E(e),{r:s,s:o}=AE(r);if(n!==0&&n!==1)throw new Error("Cannot recover signature: invalid recovery bit");let a=n&1?"03":"02",c=we.fromHex(a+us(s)),{n:u}=Ke,l=ds(s,u),f=K(-i*l,u),h=K(o*l,u),d=we.BASE.multiplyAndAddUnsafe(c,f,h);if(!d)throw new Error("Cannot recover signature: point at infinify");return d.assertValidity(),d}toRawBytes(e=!1){return di(this.toHex(e))}toHex(e=!1){let r=us(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${us(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(!Hf(r)||!Hf(n))throw new Error(e);let i=K(n*n),s=EE(r);if(K(i-s)!==le)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new we(this.x,K(-this.y))}double(){return ge.fromAffine(this).double().toAffine()}add(e){return ge.fromAffine(this).add(ge.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ge.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=ge.fromAffine(this),s=r===le||r===ke||this!==we.BASE?i.multiplyUnsafe(r):i.multiply(r),o=ge.fromAffine(e).multiplyUnsafe(n),a=s.add(o);return a.equals(ge.ZERO)?void 0:a.toAffine()}};we.BASE=new we(Ke.Gx,Ke.Gy);we.ZERO=new we(le,le);function vE(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function wE(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${fs(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:Zr(r),left:t.subarray(e+2)}}function vC(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${fs(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=wE(t.subarray(2)),{data:n,left:i}=wE(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${fs(i)}`);return{r:e,s:n}}var Rr=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?fs(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new Rr(Ac(i.slice(0,64)),Ac(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}=vC(r?e:di(e));return new Rr(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!fo(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!fo(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=Ke.n>>ke;return this.s>e}normalizeS(){return this.hasHighS()?new Rr(this.r,Ke.n-this.s):this}toDERRawBytes(e=!1){return di(this.toDERHex(e))}toDERHex(e=!1){let r=vE(co(this.s));if(e)return r;let n=vE(co(this.r)),i=co(n.length/2),s=co(r.length/2);return`30${co(n.length/2+r.length/2+4)}02${i}${n}02${s}${r}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return di(this.toCompactHex())}toCompactHex(){return us(this.r)+us(this.s)}};function cs(...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 wC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function fs(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=wC[t[r]];return e}var xC=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function us(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(le<=t&&t<xC))throw new Error("Expected number < 2^256");return t.toString(16).padStart(64,"0")}function $f(t){let e=di(us(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function co(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ac(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function di(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 Zr(t){return Ac(fs(t))}function hs(t){return t instanceof Uint8Array?Uint8Array.from(t):di(t)}function xE(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&fo(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function K(t,e=Ke.P){let r=t%e;return r>=le?r:e+r}function Wt(t,e){let{P:r}=Ke,n=t;for(;e-- >le;)n*=n,n%=r;return n}function bC(t){let{P:e}=Ke,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,uo)*u%e,f=Wt(l,uo)*u%e,h=Wt(f,Nn)*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,uo)*u%e,_=Wt(x,s)*d%e,B=Wt(_,r)*c%e;return Wt(B,Nn)}function ds(t,e=Ke.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 SC(t,e=Ke.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=ds(n,e);return t.reduceRight((s,o,a)=>o===le?s:(r[a]=K(s*r[a],e),K(s*o,e)),i),r}var bE=(t,e)=>(t+e/Nn)/e,_C={a1:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),b1:-ke*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),a2:BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),b2:BigInt("0x3086d221a7d46bcde86c90e49284eb15"),POW_2_128:BigInt("0x100000000000000000000000000000000")};function SE(t){let{n:e}=Ke,{a1:r,b1:n,a2:i,b2:s,POW_2_128:o}=_C,a=bE(s*t,e),c=bE(-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}}function _E(t){let{n:e}=Ke,n=t.length*8-256,i=Zr(t);return n>0&&(i=i>>BigInt(n)),i>=e&&(i-=e),i}var ls,lo,Gf=class{constructor(){this.v=new Uint8Array(32).fill(1),this.k=new Uint8Array(32).fill(0),this.counter=0}hmac(...e){return cr.hmacSha256(this.k,...e)}hmacSync(...e){return lo(this.k,...e)}checkSync(){if(typeof lo!="function")throw new _c("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(){return this.incr(),this.v=await this.hmac(this.v),this.v}generateSync(){return this.checkSync(),this.incr(),this.v=this.hmacSync(this.v),this.v}};function fo(t){return le<t&&t<Ke.n}function Hf(t){return le<t&&t<Ke.P}function AC(t,e,r){let n=Zr(t);if(!fo(n))return;let{n:i}=Ke,s=we.BASE.multiply(n),o=K(s.x,i);if(o===le)return;let a=K(ds(n,i)*K(e+r*o,i),i);if(a===le)return;let c=new Rr(o,a),u=(s.x===c.r?0:2)|Number(s.y&ke);return{sig:c,recovery:u}}function Cc(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!==64)throw new Error("Expected 32 bytes of private key");e=Ac(t)}else if(t instanceof Uint8Array){if(t.length!==32)throw new Error("Expected 32 bytes of private key");e=Zr(t)}else throw new TypeError("Expected valid private key");if(!fo(e))throw new Error("Expected private key: 0 < key < n");return e}function CC(t){return t instanceof we?(t.assertValidity(),t):we.fromHex(t)}function AE(t){if(t instanceof Rr)return t.assertValidity(),t;try{return Rr.fromDER(t)}catch{return Rr.fromCompact(t)}}function Yf(t,e=!1){return we.fromPrivateKey(t).toRawBytes(e)}function CE(t){let e=t.length>32?t.slice(0,32):t;return Zr(e)}function IC(t){let e=CE(t),r=K(e,Ke.n);return IE(r<le?e:r)}function IE(t){return $f(t)}function TC(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=hs(t),i=Cc(e),s=[IE(i),IC(n)];if(r!=null){r===!0&&(r=cr.randomBytes(32));let c=hs(r);if(c.length!==32)throw new Error("sign: Expected 32 bytes of extra data");s.push(c)}let o=cs(...s),a=CE(n);return{seed:o,m:a,d:i}}function RC(t,e){let{sig:r,recovery:n}=t,{canonical:i,der:s,recovered:o}=Object.assign({canonical:!0,der:!0},e);i&&r.hasHighS()&&(r=r.normalizeS(),n^=1);let a=s?r.toDERRawBytes():r.toCompactRawBytes();return o?[a,n]:a}async function TE(t,e,r={}){let{seed:n,m:i,d:s}=TC(t,e,r.extraEntropy),o,a=new Gf;for(await a.reseed(n);!(o=AC(await a.generate(),i,s));)await a.reseed();return RC(o,r)}var NC={strict:!0};function RE(t,e,r,n=NC){let i;try{i=AE(t),e=hs(e)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=_E(e),c;try{c=CC(r)}catch{return!1}let{n:u}=Ke,l=ds(o,u),f=K(a*l,u),h=K(s*l,u),d=we.BASE.multiplyAndAddUnsafe(c,f,h);return d?K(d.x,u)===s:!1}we.BASE._setWindowSize(8);var kt={node:gC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Sc={},cr={bytesToHex:fs,hexToBytes:di,concatBytes:cs,mod:K,invert:ds,isValidPrivateKey(t){try{return Cc(t),!0}catch{return!1}},_bigintTo32Bytes:$f,_normalizePrivateKey:Cc,hashToPrivateKey:t=>{if(t=hs(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");let e=K(Zr(t),Ke.n-ke)+ke;return $f(e)},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:()=>cr.hashToPrivateKey(cr.randomBytes(40)),sha256:async(...t)=>{if(kt.web){let e=await kt.web.subtle.digest("SHA-256",cs(...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=cs(...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=Sc[t];if(r===void 0){let n=await cr.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=cs(n,n),Sc[t]=r}return cr.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof ls!="function")throw new _c("sha256Sync is undefined, you need to set it");let r=Sc[t];if(r===void 0){let n=ls(Uint8Array.from(t,i=>i.charCodeAt(0)));r=cs(n,n),Sc[t]=r}return ls(r,...e)},precompute(t=8,e=we.BASE){let r=e===we.BASE?e:new we(e.x,e.y);return r._setWindowSize(t),r.multiply(uo),r}};Object.defineProperties(cr,{sha256Sync:{configurable:!1,get(){return ls},set(t){ls||(ls=t)}},hmacSha256Sync:{configurable:!1,get(){return lo},set(t){lo||(lo=t)}}});var NE=C(G(),1);function Jr(t){if(isNaN(t)||t<=0)throw(0,NE.default)(new Error("random bytes length must be a Number bigger than 0"),"ERR_INVALID_LENGTH");return cr.randomBytes(t)}var pi={};pt(pi,{jwkToPkcs1:()=>PC,jwkToPkix:()=>OC,pkcs1ToJwk:()=>LC,pkixToJwk:()=>BC});var L8=C(An(),1),P8=C(oo(),1),en=C(ie(),1);var Wf=C(G(),1);function LC(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 PC(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,Wf.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 BC(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 OC(t){if(t.n==null||t.e==null)throw(0,Wf.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 U8=C(oo(),1),Qf=C(ie(),1);function DE(t,e){return e.map(r=>Ot(t[r]))}function LE(t){return Qf.default.pki.setRsaPrivateKey(...DE(t,["n","e","d","p","q","dp","dq","qi"]))}function PE(t){return Qf.default.pki.setRsaPublicKey(...DE(t,["n","e"]))}var BE=C(G(),1);async function OE(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 ME(e);return{privateKey:r[0],publicKey:r[1]}}async function Xf(t){let r=[await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await kC(t)],n=await ME({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function kE(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 UE(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 ME(t){if(t.privateKey==null||t.publicKey==null)throw(0,BE.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 kC(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 FE(t,e,r,n){let i=e?PE(t):LE(t),s=Q(Uint8Array.from(r),"ascii"),o=n(s,i);return q(o,"ascii")}function KE(t,e){return FE(t,!0,e,(r,n)=>n.encrypt(r))}function VE(t,e){return FE(t,!1,e,(r,n)=>n.decrypt(r))}async function ps(t,e){let n=await xc().encrypt(t,e);return qn.encode(n)}var po=class{constructor(e){this._key=e}async verify(e,r){return await UE(this._key,r,e)}marshal(){return pi.jwkToPkix(this._key)}get bytes(){return Ir.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}encrypt(e){return KE(this._key,e)}equals(e){return _e(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},ms=class{constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Jr(16)}async sign(e){return await kE(this._key,e)}get public(){if(this._publicKey==null)throw(0,jf.default)(new Error("public key not provided"),"ERR_PUBKEY_NOT_PROVIDED");return new po(this._publicKey)}decrypt(e){return VE(this._key,e)}marshal(){return pi.jwkToPkcs1(this._key)}get bytes(){return Tr.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 ho.default.util.ByteBuffer(this.marshal()),i=ho.default.asn1.fromDer(n),s=ho.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ho.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return await ps(this.bytes,e);throw(0,jf.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}}};async function MC(t){let e=pi.pkcs1ToJwk(t),r=await Xf(e);return new ms(r.privateKey,r.publicKey)}function FC(t){let e=pi.pkixToJwk(t);return new po(e)}async function KC(t){let e=await Xf(t);return new ms(e.privateKey,e.publicKey)}async function VC(t){let e=await OE(t);return new ms(e.privateKey,e.publicKey)}var ch={};pt(ch,{Ed25519PrivateKey:()=>yi,Ed25519PublicKey:()=>vo,generateKeyPair:()=>aI,generateKeyPairFromSeed:()=>tv,unmarshalEd25519PrivateKey:()=>sI,unmarshalEd25519PublicKey:()=>oI});var ah=C(G(),1);var qC=C(Zn(),1);var dt=BigInt(0),he=BigInt(1),ys=BigInt(2),qE=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Ve=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 GE=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),mo=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Z8=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),HC=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),zC=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),$C=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),GC=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 qe))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(qe.ZERO)?fe.ZERO:new fe(e.x,e.y,he,T(e.x*e.y))}static toAffineBatch(e){let r=QC(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){HE(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}=Ve,s=T(e*e),o=T(r*r),a=T(ys*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){HE(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*ys*u),p=T(s*ys*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=qe.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&&nh.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=fe.normalizeZ(i),nh.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(Tc(e,Ve.l),r)}multiplyUnsafe(e){let r=Tc(e,Ve.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(Ve.h).equals(fe.ZERO)}isTorsionFree(){return this.multiplyUnsafe(Ve.l).equals(fe.ZERO)}toAffine(e=Rc(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 qe(s,o)}fromRistrettoBytes(){eh()}toRistrettoBytes(){eh()}fromRistrettoHash(){eh()}};fe.BASE=new fe(Ve.Gx,Ve.Gy,he,T(Ve.Gx*Ve.Gy));fe.ZERO=new fe(dt,he,he,dt);function HE(t){if(!(t instanceof fe))throw new TypeError("ExtendedPoint expected")}function Jf(t){if(!(t instanceof Ct))throw new TypeError("RistrettoPoint expected")}function eh(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ct=class{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){let{d:r}=Ve,n=T(mo*e*e),i=T((n+he)*$C),s=BigInt(-1),o=T((s-r*n)*T(n+r)),{isValid:a,value:c}=sh(i,o),u=T(c*e);Ln(u)||(u=T(-u)),a||(c=u),a||(s=n);let l=T(s*(n-he)*GC-o),f=c*c,h=T((c+c)*o),d=T(l*HC),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=Pn(e,64);let r=th(e.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=th(e.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new Ct(n.add(s))}static fromHex(e){e=Pn(e,32);let{a:r,d:n}=Ve,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=th(e);if(!jC(yo(s),e)||Ln(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}=$E(T(f*l)),p=T(d*c),y=T(d*p*f),g=T((s+s)*p);Ln(g)&&(g=T(-g));let E=T(a*y),x=T(g*E);if(!h||Ln(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}=$E(T(s*a)),u=T(c*s),l=T(c*o),f=T(u*l*i),h;if(Ln(i*f)){let p=T(r*mo),y=T(e*mo);e=p,r=y,h=T(u*zC)}else h=l;Ln(e*f)&&(r=T(-r));let d=T((n-r)*h);return Ln(d)&&(d=T(-d)),yo(d)}toHex(){return go(this.toRawBytes())}toString(){return this.toHex()}equals(e){Jf(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 Jf(e),new Ct(this.ep.add(e.ep))}subtract(e){return Jf(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 nh=new WeakMap,qe=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,nh.delete(this)}static fromHex(e,r=!0){let{d:n,P:i}=Ve;e=Pn(e,32);let s=e.slice();s[31]=e[31]&-129;let o=Eo(s);if(r&&o>=i)throw new Error("Expected 0 < hex < P");if(!r&&o>=GE)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}=sh(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 qe(f,o)}static async fromPrivateKey(e){return(await Nc(e)).point}toRawBytes(){let e=yo(this.y);return e[31]|=this.x&he?128:0,e}toHex(){return go(this.toRawBytes())}toX25519(){let{y:e}=this,r=T((he+e)*Rc(he-e));return yo(r)}isTorsionFree(){return fe.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new qe(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()}};qe.BASE=new qe(Ve.Gx,Ve.Gy);qe.ZERO=new qe(dt,he);var mi=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromHex(e){let r=Pn(e,64),n=qe.fromHex(r.slice(0,32),!1),i=Eo(r.slice(32,64));return new mi(n,i)}assertValidity(){let{r:e,s:r}=this;if(!(e instanceof qe))throw new Error("Expected Point instance");return Tc(r,Ve.l,!1),this}toRawBytes(){let e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(yo(this.s),32),e}toHex(){return go(this.toRawBytes())}};function zE(...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 YC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function go(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=YC[t[r]];return e}function ih(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 YE(t){let r=t.toString(16).padStart(64,"0");return ih(r)}function yo(t){return YE(t).reverse()}function Ln(t){return(T(t)&he)===he}function Eo(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+go(Uint8Array.from(t).reverse()))}var WC=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function th(t){return T(Eo(t)&WC)}function T(t,e=Ve.P){let r=t%e;return r>=dt?r:e+r}function Rc(t,e=Ve.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 QC(t,e=Ve.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=Rc(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 Nr(t,e){let{P:r}=Ve,n=t;for(;e-- >dt;)n*=n,n%=r;return n}function XC(t){let{P:e}=Ve,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=t*t%e*t%e,u=Nr(c,ys)*c%e,l=Nr(u,he)*t%e,f=Nr(l,r)*l%e,h=Nr(f,n)*f%e,d=Nr(h,i)*h%e,p=Nr(d,s)*d%e,y=Nr(p,o)*p%e,g=Nr(y,o)*p%e,E=Nr(g,n)*f%e;return{pow_p_5_8:Nr(E,ys)*t%e,b2:c}}function sh(t,e){let r=T(e*e*e),n=T(r*r*e),i=XC(t*n).pow_p_5_8,s=T(t*r*i),o=T(e*s*s),a=s,c=T(s*mo),u=o===t,l=o===T(-t),f=o===T(-t*mo);return u&&(s=a),(l||f)&&(s=c),Ln(s)&&(s=T(-s)),{isValid:u||l,value:s}}function $E(t){return sh(he,t)}function Ic(t){return T(Eo(t),Ve.l)}function jC(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 Pn(t,e){let r=t instanceof Uint8Array?Uint8Array.from(t):ih(t);if(typeof e=="number"&&r.length!==e)throw new Error(`Expected ${e} bytes`);return r}function Tc(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 ZC(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function JC(t){if(t=typeof t=="bigint"||typeof t=="number"?YE(Tc(t,GE)):Pn(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function eI(t){let e=ZC(t.slice(0,32)),r=t.slice(32,64),n=Ic(e),i=qe.BASE.multiply(n),s=i.toRawBytes();return{head:e,prefix:r,scalar:n,point:i,pointBytes:s}}var rh;async function Nc(t){return eI(await Bn.sha512(JC(t)))}async function oh(t){return(await Nc(t)).pointBytes}async function WE(t,e){t=Pn(t);let{prefix:r,scalar:n,pointBytes:i}=await Nc(e),s=Ic(await Bn.sha512(r,t)),o=qe.BASE.multiply(s),a=Ic(await Bn.sha512(o.toRawBytes(),i,t)),c=T(s+a*n,Ve.l);return new mi(o,c).toRawBytes()}function tI(t,e,r){e=Pn(e),r instanceof qe||(r=qe.fromHex(r,!1));let{r:n,s:i}=t instanceof mi?t.assertValidity():mi.fromHex(t),s=fe.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:r,msg:e}}function rI(t,e,r,n){let i=Ic(n),s=fe.fromAffine(t).multiplyUnsafe(i);return fe.fromAffine(e).add(s).subtract(r).multiplyUnsafe(Ve.h).equals(fe.ZERO)}async function QE(t,e,r){let{r:n,SB:i,msg:s,pub:o}=tI(t,e,r),a=await Bn.sha512(n.toRawBytes(),o.toRawBytes(),s);return rI(o,n,i,a)}qe.BASE._setWindowSize(8);var Dn={node:qC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},Bn={bytesToHex:go,hexToBytes:ih,concatBytes:zE,getExtendedPublicKey:Nc,mod:T,invert:Rc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=Pn(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return T(Eo(t),Ve.l-he)+he},randomBytes:(t=32)=>{if(Dn.web)return Dn.web.getRandomValues(new Uint8Array(t));if(Dn.node){let{randomBytes:e}=Dn.node;return new Uint8Array(e(t).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Bn.randomBytes(32),sha512:async(...t)=>{let e=zE(...t);if(Dn.web){let r=await Dn.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(r)}else{if(Dn.node)return Uint8Array.from(Dn.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(t=8,e=qe.BASE){let r=e.equals(qe.BASE)?e:new qe(e.x,e.y);return r._setWindowSize(t),r.multiply(ys),r},sha512Sync:void 0};Object.defineProperties(Bn,{sha512Sync:{configurable:!1,get(){return rh},set(t){rh||(rh=t)}}});var gs=32,tn=64,Dc=32;async function XE(){let t=Bn.randomPrivateKey(),e=await oh(t);return{privateKey:ev(t,e),publicKey:e}}async function jE(t){if(t.length!==Dc)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 oh(e);return{privateKey:ev(e,r),publicKey:r}}async function ZE(t,e){let r=t.subarray(0,Dc);return await WE(e,r)}async function JE(t,e,r){return await QE(e,r,t)}function ev(t,e){let r=new Uint8Array(tn);for(let n=0;n<Dc;n++)r[n]=t[n],r[Dc+n]=e[n];return r}var vo=class{constructor(e){this._key=Es(e,gs)}async verify(e,r){return await JE(this._key,r,e)}marshal(){return this._key}get bytes(){return Ir.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}},yi=class{constructor(e,r){this._key=Es(e,tn),this._publicKey=Es(r,gs)}async sign(e){return await ZE(this._key,e)}get public(){return new vo(this._publicKey)}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}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 ps(this.bytes,e);throw(0,ah.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function sI(t){if(t.length>tn){t=Es(t,tn+gs);let n=t.subarray(0,tn),i=t.subarray(tn,t.length);return new yi(n,i)}t=Es(t,tn);let e=t.subarray(0,tn),r=t.subarray(gs);return new yi(e,r)}function oI(t){return t=Es(t,gs),new vo(t)}async function aI(){let{privateKey:t,publicKey:e}=await XE();return new yi(t,e)}async function tv(t){let{privateKey:e,publicKey:r}=await jE(t);return new yi(e,r)}function Es(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw(0,ah.default)(new Error(`Key must be a Uint8Array of length ${e}, got ${t.length}`),"ERR_INVALID_KEY_TYPE");return t}var lh={};pt(lh,{Secp256k1PrivateKey:()=>xo,Secp256k1PublicKey:()=>wo,generateKeyPair:()=>fI,unmarshalSecp256k1PrivateKey:()=>uI,unmarshalSecp256k1PublicKey:()=>lI});var cv=C(G(),1);var vs=C(G(),1);function rv(){return cr.randomPrivateKey()}async function nv(t,e){let{digest:r}=await ot.digest(e);try{return await TE(r,t)}catch(n){throw(0,vs.default)(n,"ERR_INVALID_INPUT")}}async function iv(t,e,r){try{let{digest:n}=await ot.digest(r);return RE(e,n,t)}catch(n){throw(0,vs.default)(n,"ERR_INVALID_INPUT")}}function sv(t){return we.fromHex(t).toRawBytes(!0)}function ov(t){try{Yf(t,!0)}catch(e){throw(0,vs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}function uh(t){try{we.fromHex(t)}catch(e){throw(0,vs.default)(e,"ERR_INVALID_PUBLIC_KEY")}}function av(t){try{return Yf(t,!0)}catch(e){throw(0,vs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}var wo=class{constructor(e){uh(e),this._key=e}async verify(e,r){return await iv(this._key,r,e)}marshal(){return sv(this._key)}get bytes(){return Ir.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}},xo=class{constructor(e,r){this._key=e,this._publicKey=r??av(e),ov(this._key),uh(this._publicKey)}async sign(e){return await nv(this._key,e)}get public(){return new wo(this._publicKey)}marshal(){return 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}async id(){let e=await this.public.hash();return Q(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ps(this.bytes,e);throw(0,cv.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function uI(t){return new xo(t)}function lI(t){return new wo(t)}async function fI(){let t=await rv();return new xo(t)}var rn={rsa:Zf,ed25519:ch,secp256k1:lh};function hh(t){let e=Object.keys(rn).join(" / ");return(0,fh.default)(new Error(`invalid or unsupported key type ${t}. Must be ${e}`),"ERR_UNSUPPORTED_KEY_TYPE")}function dh(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return rn[t];throw hh(t)}async function Pc(t,e){return await dh(t).generateKeyPair(e??2048)}function bo(t){let e=Ir.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 hh(e.Type??"RSA")}}function uv(t,e){return e=(e??"rsa").toLowerCase(),dh(e),t.bytes}async function ws(t){let e=Tr.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 hh(e.Type??"RSA")}}function lv(t,e){return e=(e??"rsa").toLowerCase(),dh(e),t.bytes}async function Bc(t,e){try{let i=await hE(t,e);return await ws(i)}catch{}let r=Lc.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw(0,fh.default)(new Error("Cannot read the key, most likely the password is wrong or not a RSA key"),"ERR_CANNOT_DECRYPT_PEM");let n=Lc.default.asn1.toDer(Lc.default.pki.privateKeyToAsn1(r));return n=q(n.getBytes(),"ascii"),await rn.rsa.unmarshalRsaPrivateKey(n)}var gO=C(ts(),1),dI=C(ie(),1);var mI=C(G(),1);var hv=C(kf(),1),dv=C(De(),1),pv=C(G(),1),fv={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function So(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(fv).join(" / ");throw(0,pv.default)(new Error(`Hash '${i}' is unknown or not supported. Must be ${a}`),"ERR_UNSUPPORTED_HASH_TYPE")}let s=fv[i],o=(0,hv.default)(t,e,r,n,s);return dv.default.encode64(o,null)}var Oc=M("libp2p:keychain"),gI="/pkcs8/",yv="/info/",On=new WeakMap,gi={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},ph={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,mv.default)(t.trim())&&t.length>0}async function be(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Dr(t){return new $e(gI+t)}function sn(t){return new $e(yv+t)}var _o=class{constructor(e,r){if(this.components=e,this.init=gr(ph,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<gi.minKeyLength)throw new Error(`dek.keyLength must be least ${gi.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<gi.minSaltLength)throw new Error(`dek.saltLength must be least ${gi.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<gi.minIterationCount)throw new Error(`dek.iterationCount must be least ${gi.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?So(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";On.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=On.get(this);if(e==null)throw(0,ye.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let r=e.dek;return new vc(this,r)}static generateOptions(){let e=Object.assign({},ph),r=Math.ceil(gi.minSaltLength/3)*3;return e.dek.salt=Q(Jr(r),"base64"),e}static get options(){return ph}async createKey(e,r,n=2048){if(!nn(e)||e==="self")throw await be(),(0,ye.default)(new Error("Invalid key name"),b.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await be(),(0,ye.default)(new Error("Invalid key type"),b.ERR_INVALID_KEY_TYPE);let i=Dr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.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,ye.default)(new Error("Invalid RSA key size"),b.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await Pc(r,n),c=await a.id(),u=On.get(this);if(u==null)throw(0,ye.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:yv},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,ye.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(),Oc.error(n),(0,ye.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,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=Dr(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,ye.default)(new Error(`Invalid old key name '${e}'`),b.ERR_OLD_KEY_NAME_INVALID);if(!nn(r)||r==="self")throw await be(),(0,ye.default)(new Error(`Invalid new key name '${r}'`),b.ERR_NEW_KEY_NAME_INVALID);let n=Dr(e),i=Dr(r),s=sn(e),o=sn(r);if(await this.components.datastore.has(i))throw await be(),(0,ye.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,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ye.default)(new Error("Password is required"),b.ERR_PASSWORD_REQUIRED);let n=Dr(e);try{let i=await this.components.datastore.get(n),s=Q(i),o=On.get(this);if(o==null)throw(0,ye.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await Bc(s,a)).export(r)}catch(i){throw await be(),i}}async importKey(e,r,n){if(!nn(e)||e==="self")throw await be(),(0,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await be(),(0,ye.default)(new Error("PEM encoded key is required"),b.ERR_PEM_REQUIRED);let i=Dr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o;try{o=await Bc(r,n)}catch{throw await be(),(0,ye.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=On.get(this);if(l==null)throw(0,ye.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,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw(0,ye.default)(new Error("PeerId is required"),b.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw(0,ye.default)(new Error("PeerId.privKey is required"),b.ERR_MISSING_PRIVATE_KEY);let n=await ws(r.privateKey),i=Dr(e);if(await this.components.datastore.has(i))throw await be(),(0,ye.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o=On.get(this);if(o==null)throw(0,ye.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,ye.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);try{let r=Dr(e),n=await this.components.datastore.get(r);return Q(n)}catch(r){throw await be(),Oc.error(r),(0,ye.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,ye.default)(new Error(`Invalid old pass type '${typeof e}'`),b.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await be(),(0,ye.default)(new Error(`Invalid new pass type '${typeof r}'`),b.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await be(),(0,ye.default)(new Error(`Invalid pass length ${r.length}`),b.ERR_INVALID_PASS_LENGTH);Oc("recreating keychain");let n=On.get(this);if(n==null)throw(0,ye.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?So(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";On.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(Dr(a.name)),u=Q(c),l=await Bc(u,i),f=s.toString(),h=await l.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(Dr(a.name),q(h)),d.put(sn(a.name),q(JSON.stringify(p))),await d.commit()}Oc("keychain reconstructed")}};async function Ao(t){try{return{status:"fulfilled",value:await t,isFulfilled:!0,isRejected:!1}}catch(e){return{status:"rejected",reason:e,isFulfilled:!1,isRejected:!0}}}var mh=class{value;next;constructor(e){this.value=e}},Co=class{#e;#t;#r;constructor(){this.clear()}enqueue(e){let r=new mh(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 yh(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 Co,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 gh(t,e={}){let{concurrency:r=Number.POSITIVE_INFINITY}=e,n=yh(r);return Promise.all(t.map(i=>i&&typeof i.then=="function"?Ao(i):typeof i=="function"?Ao(n(()=>i())):Ao(Promise.resolve(i))))}var xs=C(G(),1);var Eh=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 Io(t){let{name:e,metrics:r}=t,n;return r!=null?n=new Eh({name:e,metrics:r}):n=new Map,n}var Ei=M("libp2p:transports"),kc=class extends Ue{constructor(e,r={}){super(),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Io({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,xs.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(r))throw(0,xs.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);Ei("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(Ei("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),Ei("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,xs.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){Ei("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){Ei("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 gh(o)).find(u=>u.isFulfilled)==null&&this.faultTolerance!==xn.NO_FATAL)throw(0,xs.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,xs.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);Ei(`libp2p in dial mode only: ${n}`)}}async remove(e){Ei("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 wv=C(G(),1);var vh=C(G(),1);var vI=M("libp2p:mss"),gv=q(`
|
|
49
|
+
`);function To(t){let e=new Ge(t,gv);return qt.single(e)}function vi(t,e,r={}){let n=To(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function Ev(t,e,r={}){let n=new Ge;for(let i of e)n.append(To(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function wI(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await t.next(r)},i=n;e?.signal!=null&&(i=ni(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,vh.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==gv[0])throw vI.error("Invalid mss message - missing newline - %s",o.subarray()),(0,vh.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function bs(t,e){let r=await wI(t,e);return Q(r.subarray())}var Ro=M("libp2p:mss:select");async function No(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");Ro('select: write ["%s", "%s"]',on,a);let c=q(on),u=q(a);Ev(i,[c,u],r);let l=await bs(n,r);if(Ro('select: read "%s"',l),l===on&&(l=await bs(n,r),Ro('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of e){Ro('select: write "%s"',f),vi(i,q(f),r);let h=await bs(n,r);if(Ro('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),(0,wv.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Do=M("libp2p:mss:handle");async function Lo(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:s,stream:o}=ji(t);for(;;){let a=await bs(i,r);if(Do('read "%s"',a),a===on){Do('respond with "%s" for "%s"',on,a),vi(n,q(on),r);continue}if(e.includes(a))return vi(n,q(a),r),Do('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){vi(n,new Ge(...e.map(c=>To(q(c)))),r),Do('respond with "%s" for %s',e,a);continue}vi(n,q("na"),r),Do('respond with "na" for "%s"',a)}}var wh=C(G(),1);var xv=Symbol.for("@libp2p/connection");var bI=M("libp2p:connection"),xh=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:Ca},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[xv](){return!0}get streams(){return this._getStreams()}async newStream(e,r){if(this.stat.status===bl)throw(0,wh.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Ia)throw(0,wh.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===Ia||this._closing)){this.stat.status=bl;try{this.streams.forEach(e=>e.close())}catch(e){bI.error(e)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Ia}}};function bv(t){return new xh(t)}var Uc=C(G(),1);var SI=Symbol.for("@libp2p/topology");function Sv(t){return t!=null&&Boolean(t[SI])}var bh=M("libp2p:registrar"),Sh=32,_h=64,Mc=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,Uc.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,Uc.default)(new Error(`Handler already registered for protocol ${e}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=gr.bind({ignoreUndefined:!0})({maxInboundStreams:Sh,maxOutboundStreams:_h},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(!Sv(r))throw bh.error("topology must be an instance of interfaces/topology"),(0,Uc.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=>{bh.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=>{bh.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 Ah=C(Fr(),1);var Ch=C(pr(),1),Pe=M("libp2p:upgrader");function _I(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 Sh}function AI(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 _h}function _v(t,e,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===e&&i.stat.protocol===t&&n++}),n}var Fc=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 Ah.TimeoutController(this.inboundUpgradeTimeout);try{(0,Ch.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=me(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=me(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 Lo(d,p);if(Pe("%s: incoming stream opened on %s",n,g),l==null)return;let E=_I(g,this.components.registrar);if(_v(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 Ah.TimeoutController(3e4),p.signal=g.signal;try{(0,Ch.setMaxListeners)?.(1/0,g.signal)}catch{}}let{stream:E,protocol:x}=await No(y,d,p),_=AI(x,this.components.registrar);if(_v(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=bv({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 Lo(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 No(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 No(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 Lo(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 xi=C(G(),1);var wi;(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())})(wi||(wi={}));var Cv=C(G(),1);var Av={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Po;(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())})(Po||(Po={}));var CI,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=Po.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=Iv(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await bo(this.peerId.publicKey).verify(r.subarray(),this.signature)}};CI=ct;ct.createFromProtobuf=async t=>{let e=Po.decode(t),r=await ki(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=Iv(r,n,i),a=await(await ws(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,Cv.default)(new Error("envelope signature is not valid for the given domain"),Av.ERR_SIGNATURE_NOT_VALID);return r};var Iv=(t,e,r)=>{let n=q(t),i=nr.encode(n.byteLength),s=nr.encode(e.length),o=nr.encode(r.length);return new Ge(i,n,s,e,o,r)};function Tv(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 Bo;(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())})(Bo||(Bo={}));var Rv="libp2p-peer-record",Nv=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=Bo.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||!Tv(this.multiaddrs,e.multiaddrs))}};rt.createFromProtobuf=t=>{let e=Bo.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=Rv;rt.CODEC=Nv;var Kc="0.0.0",Dv="libp2p";var Ih=`js-libp2p/${Kc}`;var Lv="0.1.0",Pv="id",Bv="id/push",Ov="1.0.0",kv="1.0.0";var Oo=C(Fr(),1);var ko=C(pr(),1),Ae=M("libp2p:identify"),Uv=1024*8,Ss=class{constructor(e,r){this.components=e,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${Pv}/${Ov}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${Bv}/${kv}`,this.host={protocolVersion:`${r.protocolPrefix}/${Lv}`,...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 Oo.TimeoutController(this.init.timeout);try{(0,ko.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Lt(a,c.signal).sink(Ce([wi.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 Oo.TimeoutController(this.init.timeout),i=n.signal;try{(0,ko.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??Uv}),async c=>await Nt(c));if(a==null)throw(0,xi.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return wi.decode(a)}catch(c){throw(0,xi.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,xi.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await ki(i);if(!e.remotePeer.equals(f))throw(0,xi.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,xi.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let h=Ss.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,xi.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 Oo.TimeoutController(this.init.timeout);try{(0,ko.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=wi.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 Oo.TimeoutController(this.init.timeout);try{(0,ko.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=Lt(n,i.signal),c=await Ce([],a,Bt({maxDataLength:this.init.maxIdentifyMessageSize??Uv}),async u=>await Nt(u));c!=null&&(s=wi.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 _s=C(G(),1);var Uo;(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())})(Uo||(Uo={}));var ur;(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())})(ur||(ur={}));var Mv="0.0.1",Fv="fetch";var Kv=C(Fr(),1),Vv=C(pr(),1);var Qt=M("libp2p:fetch"),Vc=class{constructor(e,r){this.started=!1,this.components=e,this.protocol=`/${r.protocolPrefix??"libp2p"}/${Fv}/${Mv}`,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 Kv.TimeoutController(this.init.timeout),o=s.signal;try{(0,Vv.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([Uo.encode({identifier:r})],qt(),c,Bt(),async function(l){let f=await Nt(l);if(f==null)throw(0,_s.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let h=ur.decode(f);switch(h.status){case ur.StatusCode.OK:return Qt("received status for %s ok",r),h.data;case ur.StatusCode.NOT_FOUND:return Qt("received status for %s not found",r),null;case ur.StatusCode.ERROR:{Qt("received status for %s error",r);let d=Q(h.data);throw(0,_s.default)(new Error("Error in fetch protocol response: "+d),b.ERR_INVALID_PARAMETERS)}default:throw Qt("received status for %s unknown",r),(0,_s.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,_s.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let o=Uo.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:ur.StatusCode.OK,data:u}):(Qt("sending status for %s not found",o.identifier),a={status:ur.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:ur.StatusCode.ERROR,data:u}}yield ur.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,_s.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 $v=C(G(),1);var qv="1.0.0",Hv="ping";var Gv=C(Fr(),1),Yv=C(pr(),1),zv=M("libp2p:ping"),qc=class{constructor(e,r){this.components=e,this.started=!1,this.protocol=`/${r.protocolPrefix}/${Hv}/${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=>{zv.error(n)})}async ping(e,r={}){zv("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 Gv.TimeoutController(this.init.timeout),a=o.signal;try{(0,Yv.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,$v.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function Wv(){throw new Error("Not supported in browsers")}var jv=C(Xv(),1),Th=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Hc=(0,jv.default)(),Mo=Th&&!Hc,Zv=Hc&&!Th,Jv=Hc&&Th,ew=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Hc,tw=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,a6=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",rw=typeof navigator<"u"&&navigator.product==="ReactNative";var sw=C(G(),1);function nw(t){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(t)||/^::1$/.test(t)}function iw(t){let{address:e}=t.nodeAddress();return nw(e)}var Rh=M("libp2p:nat"),Nh=7200;function NI(t=1024,e=65535){return Math.floor(Math.random()*(e-t+1)+t)}var zc=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??`${Dv}@${Kc} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Nh,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Nh)throw(0,sw.default)(new Error(`NatManager ttl should be at least ${Nh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Mo||!this.enabled||this.started||(this.started=!0,this._start().catch(e=>{Rh.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"||iw(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=Qa(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=NI();Rh(`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(qp({family:4,address:c,port:l},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await Wv({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Mo||this.client==null))try{await this.client.close(),this.client=void 0}catch(e){Rh.error(e)}}};var DI=M("libp2p:peer-record-updater"),$c=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=>{DI.error("Could not update self peer record: %o",e)})}};var ow=C(G(),1);var Gc=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,ow.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 Wc=C(G(),1);var re={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*Dh(t,e){for await(let r of t)await e(r),yield r}var Se=M("libp2p:peer-store:address-book"),Yc="change:multiaddrs";async function LI(){return!0}var Qc=class{constructor(e,r,n){this.dispatchEvent=e,this.store=r,this.addressFilter=n??LI}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 Lh(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(Yc,{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,Wc.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 Lh(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(Yc,{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,Wc.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 Lh(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(Yc,{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(Yc,{detail:{peerId:e,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Lh(t,e,r,n=!1){return await Ce(e,i=>Dh(i,s=>{if(!Vr(s))throw Se.error("multiaddr must be an instance of Multiaddr"),(0,Wc.default)(new Error("multiaddr must be an instance of Multiaddr"),re.ERR_INVALID_PARAMETERS)}),i=>mt(i,async s=>await r(t,s)),i=>Ds(i,s=>({multiaddr:s,isCertified:n})),async i=>await Jt(i))}var cw=C(G(),1);var Lr=M("libp2p:peer-store:key-book"),aw="change:pubkey",Xc=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async set(e,r){if(e=Qe(e),!(r instanceof Uint8Array))throw Lr.error("publicKey must be an instance of Uint8Array to store data"),(0,cw.default)(new Error("publicKey must be an instance of PublicKey"),re.ERR_INVALID_PARAMETERS);Lr.trace("set await write lock");let n=await this.store.lock.writeLock();Lr.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{Lr.trace("set release write lock"),n()}i&&this.dispatchEvent(new X(aw,{detail:{peerId:e,publicKey:r,oldPublicKey:s?.pubKey}}))}async get(e){e=Qe(e),Lr.trace("get await write lock");let r=await this.store.lock.readLock();Lr.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{Lr("get release write lock"),r()}}async delete(e){e=Qe(e),Lr.trace("delete await write lock");let r=await this.store.lock.writeLock();Lr.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{Lr.trace("delete release write lock"),r()}this.dispatchEvent(new X(aw,{detail:{peerId:e,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Ph=C(G(),1);var nt=M("libp2p:peer-store:metadata-book"),jc="change:metadata",Zc=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,Ph.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(jc,{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,Ph.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(jc,{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(jc,{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(jc,{detail:{peerId:e,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var eu=C(G(),1);var it=M("libp2p:peer-store:proto-book"),Jc="change:protocols",tu=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,eu.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(Jc,{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,eu.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(Jc,{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,eu.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(Jc,{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(Jc,{detail:{peerId:e,protocols:[],oldProtocols:n.protocols}}))}};var Jh=C(G(),1);var Fo;(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),ru.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),nu.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(ru.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(nu.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())})(Fo||(Fo={}));var ru;(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())})(ru||(ru={}));var nu;(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())})(nu||(nu={}));var vw=C(lw(),1);var Vo=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Oh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},fw=t=>globalThis.DOMException===void 0?new Oh(t):new DOMException(t),hw=t=>{let e=t.reason===void 0?fw("This operation was aborted."):t.reason;return e instanceof Error?e:fw(e)};function kh(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(hw(c)),c.addEventListener("abort",()=>{a(hw(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 Vo(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 Uh(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 bi=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,qo=class{constructor(){an.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&bi(this,an,"f")[this.size-1].priority>=r.priority){bi(this,an,"f").push(n);return}let i=Uh(bi(this,an,"f"),n,(s,o)=>o.priority-s.priority);bi(this,an,"f").splice(i,0,n)}dequeue(){let e=bi(this,an,"f").shift();return e?.run}filter(e){return bi(this,an,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return bi(this,an,"f").length}};an=new WeakMap;var He=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,zo,$o,Un,lu,Go,su,lr,Ho,Ut,ou,Mt,Yo,kn,au,dw,pw,Ew,mw,yw,gw,cu,Mh,Fh,fu,uu,OI=new Vo,Kh=class extends Error{},As=class extends vw.default{constructor(e){var r,n,i,s;if(super(),Ze.add(this),zo.set(this,void 0),$o.set(this,void 0),Un.set(this,0),lu.set(this,void 0),Go.set(this,void 0),su.set(this,0),lr.set(this,void 0),Ho.set(this,void 0),Ut.set(this,void 0),ou.set(this,void 0),Mt.set(this,0),Yo.set(this,void 0),kn.set(this,void 0),au.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:qo,...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})`);He(this,zo,e.carryoverConcurrencyCount,"f"),He(this,$o,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),He(this,lu,e.intervalCap,"f"),He(this,Go,e.interval,"f"),He(this,Ut,new e.queueClass,"f"),He(this,ou,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,He(this,au,e.throwOnTimeout===!0,"f"),He(this,kn,e.autoStart===!1,"f")}get concurrency(){return V(this,Yo,"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})`);He(this,Yo,e,"f"),V(this,Ze,"m",fu).call(this)}async add(e,r={}){return new Promise((n,i)=>{let s=async()=>{var o,a,c;He(this,Mt,(a=V(this,Mt,"f"),a++,a),"f"),He(this,Un,(c=V(this,Un,"f"),c++,c),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted){i(new Kh("The task was aborted."));return}let l=await(this.timeout===void 0&&r.timeout===void 0?e({signal:r.signal}):kh(Promise.resolve(e({signal:r.signal})),r.timeout===void 0?this.timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?V(this,au,"f"):r.throwOnTimeout)&&i(OI)}));n(l),this.emit("completed",l)}catch(u){i(u),this.emit("error",u)}V(this,Ze,"m",Ew).call(this)};V(this,Ut,"f").enqueue(s,r),V(this,Ze,"m",cu).call(this),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return V(this,kn,"f")?(He(this,kn,!1,"f"),V(this,Ze,"m",fu).call(this),this):this}pause(){He(this,kn,!0,"f")}clear(){He(this,Ut,new(V(this,ou,"f")),"f")}async onEmpty(){V(this,Ut,"f").size!==0&&await V(this,Ze,"m",uu).call(this,"empty")}async onSizeLessThan(e){V(this,Ut,"f").size<e||await V(this,Ze,"m",uu).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",uu).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,kn,"f")}};zo=new WeakMap,$o=new WeakMap,Un=new WeakMap,lu=new WeakMap,Go=new WeakMap,su=new WeakMap,lr=new WeakMap,Ho=new WeakMap,Ut=new WeakMap,ou=new WeakMap,Mt=new WeakMap,Yo=new WeakMap,kn=new WeakMap,au=new WeakMap,Ze=new WeakSet,dw=function(){return V(this,$o,"f")||V(this,Un,"f")<V(this,lu,"f")},pw=function(){return V(this,Mt,"f")<V(this,Yo,"f")},Ew=function(){var e;He(this,Mt,(e=V(this,Mt,"f"),e--,e),"f"),V(this,Ze,"m",cu).call(this),this.emit("next")},mw=function(){this.emit("empty"),V(this,Mt,"f")===0&&this.emit("idle")},yw=function(){V(this,Ze,"m",Fh).call(this),V(this,Ze,"m",Mh).call(this),He(this,Ho,void 0,"f")},gw=function(){let e=Date.now();if(V(this,lr,"f")===void 0){let r=V(this,su,"f")-e;if(r<0)He(this,Un,V(this,zo,"f")?V(this,Mt,"f"):0,"f");else return V(this,Ho,"f")===void 0&&He(this,Ho,setTimeout(()=>{V(this,Ze,"m",yw).call(this)},r),"f"),!0}return!1},cu=function(){if(V(this,Ut,"f").size===0)return V(this,lr,"f")&&clearInterval(V(this,lr,"f")),He(this,lr,void 0,"f"),V(this,Ze,"m",mw).call(this),!1;if(!V(this,kn,"f")){let e=!V(this,Ze,"a",gw);if(V(this,Ze,"a",dw)&&V(this,Ze,"a",pw)){let r=V(this,Ut,"f").dequeue();return r?(this.emit("active"),r(),e&&V(this,Ze,"m",Mh).call(this),!0):!1}}return!1},Mh=function(){V(this,$o,"f")||V(this,lr,"f")!==void 0||(He(this,lr,setInterval(()=>{V(this,Ze,"m",Fh).call(this)},V(this,Go,"f")),"f"),He(this,su,Date.now()+V(this,Go,"f"),"f"))},Fh=function(){V(this,Un,"f")===0&&V(this,Mt,"f")===0&&V(this,lr,"f")&&(clearInterval(V(this,lr,"f")),He(this,lr,void 0,"f")),He(this,Un,V(this,zo,"f")?V(this,Mt,"f"):0,"f"),V(this,Ze,"m",fu).call(this)},fu=function(){for(;V(this,Ze,"m",cu).call(this););},uu=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Vh=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},qh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},ww=t=>globalThis.DOMException===void 0?new qh(t):new DOMException(t),xw=t=>{let e=t.reason===void 0?ww("This operation was aborted."):t.reason;return e instanceof Error?e:ww(e)};function Hh(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(xw(l)),l.addEventListener("abort",()=>{u(xw(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 Vh(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 zh="lock:worker:request-read",$h="lock:worker:release-read",Gh="lock:master:grant-read",Yh="lock:worker:request-write",Wh="lock:worker:release-write",Qh="lock:master:grant-write";var Mn={},Cs=t=>{t.addEventListener("message",e=>{Cs.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Cs.dispatchEvent("message",t,e)})};Cs.addEventListener=(t,e)=>{Mn[t]==null&&(Mn[t]=[]),Mn[t].push(e)};Cs.removeEventListener=(t,e)=>{Mn[t]!=null&&(Mn[t]=Mn[t].filter(r=>r===e))};Cs.dispatchEvent=function(t,e,r){Mn[t]!=null&&Mn[t].forEach(n=>n(e,r))};var Xh=Cs;var bw=(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)}))}}))},Sw=(t,e,r,n)=>async()=>{let i=ra();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)})},kI={singleProcess:!1},_w=t=>{if(t=Object.assign({},kI,t),Boolean(globalThis.document)||t.singleProcess){let r=new EventTarget;return Xh.addEventListener("message",bw(r,"requestReadLock",zh,$h,Gh)),Xh.addEventListener("message",bw(r,"requestWriteLock",Yh,Wh,Qh)),r}return{isWorker:!0,readLock:r=>Sw(r,zh,Gh,$h),writeLock:r=>Sw(r,Yh,Qh,Wh)}};var Si={},Fn;async function jh(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await Hh((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var UI=(t,e)=>{if(Fn.isWorker===!0)return{readLock:Fn.readLock(t,e),writeLock:Fn.writeLock(t,e)};let r=new As({concurrency:1}),n;return{async readLock(){if(n!=null)return await jh(n,e);n=new As({concurrency:e.concurrency,autoStart:!1});let i=n,s=jh(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await jh(r,e)}}},MI={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Zh(t){let e=Object.assign({},MI,t);return Fn==null&&(Fn=_w(e),Fn.isWorker!==!0&&(Fn.addEventListener("requestReadLock",r=>{Si[r.data.name]!=null&&Si[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Fn.addEventListener("requestWriteLock",async r=>{Si[r.data.name]!=null&&Si[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Si[e.name]==null&&(Si[e.name]=UI(e.name,e)),Si[e.name]}var Aw=M("libp2p:peer-store:store"),Cw="/peers/",hu=class{constructor(e){this.components=e,this.lock=Zh({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(e){if(e.type==null)throw Aw.error("peerId must be an instance of peer-id to store data"),(0,Jh.default)(new Error("peerId must be an instance of peer-id"),re.ERR_INVALID_PARAMETERS);let r=e.toCID().toString();return new $e(`${Cw}${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=Fo.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 Aw.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,Jh.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=Fo.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:Cw})){let r=e.toString().split("/")[2],n=Rt.decode(r);yield this.load(mn(n))}}};var ed=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),du.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(du.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 du;(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())})(du||(du={}));var Xt=M("libp2p:peer-store"),pu=class extends Ue{constructor(e,r={}){super(),this.components=e,this.store=new hu(e),this.addressBook=new Qc(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new Xc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new Zc(this.dispatchEvent.bind(this),this.store),this.protoBook=new tu(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,ed.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,ed.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 Iw=C(G(),1),mu=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,Iw.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Ft=C(G(),1);var yu=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=>Or(e)).map(async e=>{e.beforeStart!=null&&await e.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(e=>Or(e)).map(async e=>{await e.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(e=>Or(e)).map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(e=>Or(e)).map(async e=>{e.beforeStop!=null&&await e.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(e=>Or(e)).map(async e=>{await e.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(e=>Or(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 rd=C(Tu(),1),nd=C(Nw(),1);var Dw=globalThis.fetch,Lw=globalThis.Headers,X5=globalThis.Request,j5=globalThis.Response;function gu(t,e,r){return`${t}?name=${e}&type=${r}`}async function Pw(t,e){return await(await Dw(t,{headers:new Lw({accept:"application/dns-json"}),signal:e})).json()}function _i(t,e){return`${e}_${t}`}var td=Object.assign((0,rd.default)("dns-over-http-resolver"),{error:(0,rd.default)("dns-over-http-resolver:error")}),id=class{constructor(e={}){this._cache=new nd.default({max:e?.maxCache??100}),this._TXTcache=new nd.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??Pw,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(_i(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(gu(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(_i(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),td.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(_i(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(gu(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(_i(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),td.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(_i(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(gu(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(_i(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),td.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()}},Bw=id;var Ow=Bw;var{code:HI}=Ie("dnsaddr");async function kw(t,e={}){let r=new Ow;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===HI)??[];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 Eu=C(G(),1);var WI={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:kw},addressSorter:Zi},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:Ih},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 Uw(t){let e=gr(WI,t);if(e.transports==null||e.transports.length<1)throw(0,Eu.default)(new Error(ne.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(e.connectionEncryption==null||e.connectionEncryption.length===0)throw(0,Eu.default)(new Error(ne.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,Eu.default)(new Error(ne.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return e.identify.host.agentVersion===Ih&&(ew||Zv?e.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Mo||tw||Jv||rw)&&(e.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),e}var cd;(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())})(cd||(cd={}));var Mw=async()=>{let t=await Pc("Ed25519"),e=await QI(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function QI(t){return await ki(uv(t.public),lv(t))}var Qo=C(G(),1);var jt=C(G(),1);var Fw=Symbol.for("@libp2p/peer-discovery");var vu=class extends Ue{get[Fw](){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 wu=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 Is=C(G(),1);var r1=C(Fr(),1),hd=C(ld(),1),n1=C(pr(),1);var Wo=C(G(),1),Jw=C(ld(),1),e1=C(jw(),1),fd=C(pr(),1);var Zw=M("libp2p:dialer:dial-request"),xu=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,Wo.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new e1.default;for(let a of r)n.push(a).catch(c=>{Zw.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,fd.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(e.signal!=null)try{(0,fd.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,Wo.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let l=i[c];if(l==null)throw(0,Wo.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,Jw.anySignal)([h,e.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=r.length?n.push(u).catch(h=>{Zw.error(h)}):this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0])}if(f==null)throw(0,Wo.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 fr=M("libp2p:dialer"),bu=class{constructor(e,r={}){this.started=!1,this.addressSorter=r.addressSorter??Zi,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=Io({name:"libp2p_dialler_pending_dials",metrics:e.metrics}),this.pendingDialTargets=Io({name:"libp2p_dialler_pending_dial_targets",metrics:e.metrics});for(let[n,i]of Object.entries(r.resolvers??{}))vl.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){fr.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}=qr(e);if(this.components.peerId.equals(n))throw(0,Is.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(fr("check multiaddrs %p",n),i!=null&&i.length>0&&(fr("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,i)),await this.components.connectionGater.denyDialPeer(n))throw(0,Is.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED);fr("creating dial target for %p",n);let s=new AbortController,o=t1();this.pendingDialTargets.set(o,s);let a=s.signal;r.signal!=null&&(a=(0,hd.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,Is.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 fr("dial succeeded to %s",c.id),l}catch(l){throw fr("dial failed to %s",c.id,l),u.controller.signal.aborted&&(l.code=b.ERR_TIMEOUT),fr.error(l),l}finally{u.destroy()}}async _createDialTarget(e,r){let n=this._resolve.bind(this),i=Vr(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,Is.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let s=Wn(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?t1():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(ZI).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(e,r={}){let n=async(u,l={})=>{if(l.signal?.aborted===!0)throw(0,Is.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(u,l).catch(f=>{throw fr.error("dial to %s failed",u,f),f})},i=new xu({addrs:e.addrs,dialAction:n,dialer:this}),s=new r1.TimeoutController(this.timeout),o=[s.signal];r.signal!=null&&o.push(r.signal);let a=(0,hd.anySignal)(o);try{(0,n1.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 fr("%d tokens request, returning %d, %d remaining",e,r,this.tokens.length),n}releaseToken(e){this.tokens.includes(e)||(fr("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 fr.error(`multiaddr ${e.toString()} could not be resolved`,n),[]}}};function ZI(t){return Boolean(t)}function t1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var ln=M("libp2p"),dd=class extends Ue{constructor(e){super(),this.started=!1,this.peerId=e.peerId;let r=this.components=new yu({peerId:e.peerId,datastore:e.datastore??new oa,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 pu(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 Fc(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 bu(this.components,e.connectionManager),this.connectionManager=this.components.connectionManager=new Da(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 Mc(this.components),this.components.transportManager=new kc(this.components,e.transportManager),this.components.addressManager=new xa(this.components,e.addresses),this.configureComponent(new $c(this.components)),this.configureComponent(new La(this.components,{enabled:e.connectionManager.autoDial,minConnections:e.connectionManager.minConnections,autoDialInterval:e.connectionManager.autoDialInterval}));let n=_o.generateOptions();this.keychain=this.configureComponent(new _o(this.components,{...n,...e.keychain})),this.services.push(new zc(this.components,e.nat)),e.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))}),this.identifyService=new Ss(this.components,{...e.identify}),this.configureComponent(this.identifyService),e.dht!=null?this.dht=this.components.dht=e.dht(this.components):this.dht=new vu,e.pubsub!=null?this.pubsub=this.components.pubsub=e.pubsub(this.components):this.pubsub=new wu;let i=(e.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&(i.push(this.configureComponent(new Gc(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new da(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 mu(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new ma(this.components,{routers:s})),e.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new za(this.components,e.relay))),this.configureComponent(new ja(this.components,{addressSorter:e.connectionManager.addressSorter,...e.relay}))),this.fetchService=this.configureComponent(new Vc(this.components,{...e.fetch})),this.pingService=this.configureComponent(new qc(this.components,{...e.ping}));for(let o of e.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(e){return Or(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 $r;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}=qr(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,Qo.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,Qo.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}=qr(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,Qo.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=bo(s.value);return await this.peerStore.keyBook.set(e,s.value),o.bytes}throw(0,Qo.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}=qr(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}=qr(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 i1(t){return t.peerId==null&&(t.peerId=await Mw()),new dd(Uw(t))}async function JI(t){let e=await i1(t);return t.start!==!1&&await e.start(),e}return l1(eT);})();
|
|
50
50
|
/*! Bundled license information:
|
|
51
51
|
|
|
52
52
|
@noble/secp256k1/lib/esm/index.js:
|