libp2p 0.43.3 → 0.43.4-20c8ed4b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/index.min.js +30 -30
  2. package/dist/src/autonat/index.d.ts +1 -2
  3. package/dist/src/autonat/index.d.ts.map +1 -1
  4. package/dist/src/autonat/index.js +1 -3
  5. package/dist/src/autonat/index.js.map +1 -1
  6. package/dist/src/circuit-relay/constants.d.ts.map +1 -0
  7. package/dist/src/circuit-relay/constants.js.map +1 -0
  8. package/dist/src/circuit-relay/index.d.ts.map +1 -0
  9. package/dist/src/circuit-relay/index.js.map +1 -0
  10. package/dist/src/circuit-relay/pb/index.d.ts.map +1 -0
  11. package/dist/src/circuit-relay/pb/index.js.map +1 -0
  12. package/dist/src/circuit-relay/server/advert-service.d.ts.map +1 -0
  13. package/dist/src/circuit-relay/server/advert-service.js.map +1 -0
  14. package/dist/src/circuit-relay/server/index.d.ts.map +1 -0
  15. package/dist/src/circuit-relay/server/index.js.map +1 -0
  16. package/dist/src/circuit-relay/server/reservation-store.d.ts.map +1 -0
  17. package/dist/src/circuit-relay/server/reservation-store.js.map +1 -0
  18. package/dist/src/circuit-relay/server/reservation-voucher.d.ts.map +1 -0
  19. package/dist/src/circuit-relay/server/reservation-voucher.js.map +1 -0
  20. package/dist/src/circuit-relay/transport/discovery.d.ts.map +1 -0
  21. package/dist/src/circuit-relay/transport/discovery.js.map +1 -0
  22. package/dist/src/circuit-relay/transport/index.d.ts.map +1 -0
  23. package/dist/src/circuit-relay/transport/index.js.map +1 -0
  24. package/dist/src/circuit-relay/transport/listener.d.ts.map +1 -0
  25. package/dist/src/circuit-relay/transport/listener.js.map +1 -0
  26. package/dist/src/{circuit → circuit-relay}/transport/reservation-store.d.ts +1 -1
  27. package/dist/src/circuit-relay/transport/reservation-store.d.ts.map +1 -0
  28. package/dist/src/circuit-relay/transport/reservation-store.js.map +1 -0
  29. package/dist/src/circuit-relay/utils.d.ts.map +1 -0
  30. package/dist/src/{circuit → circuit-relay}/utils.js +3 -1
  31. package/dist/src/circuit-relay/utils.js.map +1 -0
  32. package/dist/src/components.d.ts +1 -6
  33. package/dist/src/components.d.ts.map +1 -1
  34. package/dist/src/components.js +0 -10
  35. package/dist/src/components.js.map +1 -1
  36. package/dist/src/config.d.ts.map +1 -1
  37. package/dist/src/config.js +0 -9
  38. package/dist/src/config.js.map +1 -1
  39. package/dist/src/connection-manager/auto-dial.d.ts +36 -0
  40. package/dist/src/connection-manager/auto-dial.d.ts.map +1 -0
  41. package/dist/src/connection-manager/auto-dial.js +122 -0
  42. package/dist/src/connection-manager/auto-dial.js.map +1 -0
  43. package/dist/src/connection-manager/connection-pruner.d.ts +28 -0
  44. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -0
  45. package/dist/src/connection-manager/connection-pruner.js +96 -0
  46. package/dist/src/connection-manager/connection-pruner.js.map +1 -0
  47. package/dist/src/connection-manager/constants.d.ts +49 -0
  48. package/dist/src/connection-manager/constants.d.ts.map +1 -0
  49. package/dist/src/connection-manager/constants.js +49 -0
  50. package/dist/src/connection-manager/constants.js.map +1 -0
  51. package/dist/src/connection-manager/dial-queue.d.ts +77 -0
  52. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -0
  53. package/dist/src/connection-manager/dial-queue.js +366 -0
  54. package/dist/src/connection-manager/dial-queue.js.map +1 -0
  55. package/dist/src/connection-manager/index.d.ts +65 -69
  56. package/dist/src/connection-manager/index.d.ts.map +1 -1
  57. package/dist/src/connection-manager/index.js +116 -229
  58. package/dist/src/connection-manager/index.js.map +1 -1
  59. package/dist/src/connection-manager/utils.d.ts +9 -0
  60. package/dist/src/connection-manager/utils.d.ts.map +1 -0
  61. package/dist/src/connection-manager/utils.js +66 -0
  62. package/dist/src/connection-manager/utils.js.map +1 -0
  63. package/dist/src/content-routing/utils.js +1 -1
  64. package/dist/src/content-routing/utils.js.map +1 -1
  65. package/dist/src/get-peer.d.ts +6 -5
  66. package/dist/src/get-peer.d.ts.map +1 -1
  67. package/dist/src/get-peer.js +34 -12
  68. package/dist/src/get-peer.js.map +1 -1
  69. package/dist/src/identify/index.js +1 -1
  70. package/dist/src/identify/index.js.map +1 -1
  71. package/dist/src/index.d.ts +1 -1
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/libp2p.d.ts +13 -5
  74. package/dist/src/libp2p.d.ts.map +1 -1
  75. package/dist/src/libp2p.js +8 -12
  76. package/dist/src/libp2p.js.map +1 -1
  77. package/dist/src/upgrader.d.ts +1 -1
  78. package/dist/src/upgrader.d.ts.map +1 -1
  79. package/dist/src/upgrader.js +2 -1
  80. package/dist/src/upgrader.js.map +1 -1
  81. package/package.json +14 -14
  82. package/src/autonat/index.ts +2 -5
  83. package/src/{circuit → circuit-relay}/transport/reservation-store.ts +1 -1
  84. package/src/{circuit → circuit-relay}/utils.ts +3 -1
  85. package/src/components.ts +1 -17
  86. package/src/config.ts +0 -9
  87. package/src/connection-manager/auto-dial.ts +171 -0
  88. package/src/connection-manager/connection-pruner.ts +137 -0
  89. package/src/connection-manager/constants.ts +60 -0
  90. package/src/connection-manager/dial-queue.ts +504 -0
  91. package/src/connection-manager/index.ts +190 -319
  92. package/src/connection-manager/utils.ts +76 -0
  93. package/src/content-routing/utils.ts +1 -1
  94. package/src/get-peer.ts +45 -15
  95. package/src/identify/index.ts +1 -1
  96. package/src/index.ts +1 -1
  97. package/src/libp2p.ts +21 -17
  98. package/src/upgrader.ts +3 -2
  99. package/src/version.ts +1 -1
  100. package/dist/src/circuit/constants.d.ts.map +0 -1
  101. package/dist/src/circuit/constants.js.map +0 -1
  102. package/dist/src/circuit/index.d.ts.map +0 -1
  103. package/dist/src/circuit/index.js.map +0 -1
  104. package/dist/src/circuit/pb/index.d.ts.map +0 -1
  105. package/dist/src/circuit/pb/index.js.map +0 -1
  106. package/dist/src/circuit/server/advert-service.d.ts.map +0 -1
  107. package/dist/src/circuit/server/advert-service.js.map +0 -1
  108. package/dist/src/circuit/server/index.d.ts.map +0 -1
  109. package/dist/src/circuit/server/index.js.map +0 -1
  110. package/dist/src/circuit/server/reservation-store.d.ts.map +0 -1
  111. package/dist/src/circuit/server/reservation-store.js.map +0 -1
  112. package/dist/src/circuit/server/reservation-voucher.d.ts.map +0 -1
  113. package/dist/src/circuit/server/reservation-voucher.js.map +0 -1
  114. package/dist/src/circuit/transport/discovery.d.ts.map +0 -1
  115. package/dist/src/circuit/transport/discovery.js.map +0 -1
  116. package/dist/src/circuit/transport/index.d.ts.map +0 -1
  117. package/dist/src/circuit/transport/index.js.map +0 -1
  118. package/dist/src/circuit/transport/listener.d.ts.map +0 -1
  119. package/dist/src/circuit/transport/listener.js.map +0 -1
  120. package/dist/src/circuit/transport/reservation-store.d.ts.map +0 -1
  121. package/dist/src/circuit/transport/reservation-store.js.map +0 -1
  122. package/dist/src/circuit/utils.d.ts.map +0 -1
  123. package/dist/src/circuit/utils.js.map +0 -1
  124. package/dist/src/connection-manager/auto-dialler.d.ts +0 -42
  125. package/dist/src/connection-manager/auto-dialler.d.ts.map +0 -1
  126. package/dist/src/connection-manager/auto-dialler.js +0 -105
  127. package/dist/src/connection-manager/auto-dialler.js.map +0 -1
  128. package/dist/src/connection-manager/dialer/dial-request.d.ts +0 -27
  129. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +0 -1
  130. package/dist/src/connection-manager/dialer/dial-request.js +0 -114
  131. package/dist/src/connection-manager/dialer/dial-request.js.map +0 -1
  132. package/dist/src/connection-manager/dialer/index.d.ts +0 -122
  133. package/dist/src/connection-manager/dialer/index.d.ts.map +0 -1
  134. package/dist/src/connection-manager/dialer/index.js +0 -321
  135. package/dist/src/connection-manager/dialer/index.js.map +0 -1
  136. package/dist/src/connection-manager/latency-monitor.d.ts +0 -120
  137. package/dist/src/connection-manager/latency-monitor.d.ts.map +0 -1
  138. package/dist/src/connection-manager/latency-monitor.js +0 -220
  139. package/dist/src/connection-manager/latency-monitor.js.map +0 -1
  140. package/dist/src/connection-manager/visibility-change-emitter.d.ts +0 -66
  141. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +0 -1
  142. package/dist/src/connection-manager/visibility-change-emitter.js +0 -118
  143. package/dist/src/connection-manager/visibility-change-emitter.js.map +0 -1
  144. package/dist/src/constants.d.ts +0 -27
  145. package/dist/src/constants.d.ts.map +0 -1
  146. package/dist/src/constants.js +0 -31
  147. package/dist/src/constants.js.map +0 -1
  148. package/dist/typedoc-urls.json +0 -41
  149. package/src/connection-manager/auto-dialler.ts +0 -158
  150. package/src/connection-manager/dialer/dial-request.ts +0 -144
  151. package/src/connection-manager/dialer/index.ts +0 -457
  152. package/src/connection-manager/latency-monitor.ts +0 -319
  153. package/src/connection-manager/visibility-change-emitter.ts +0 -135
  154. package/src/constants.ts +0 -36
  155. /package/dist/src/{circuit → circuit-relay}/constants.d.ts +0 -0
  156. /package/dist/src/{circuit → circuit-relay}/constants.js +0 -0
  157. /package/dist/src/{circuit → circuit-relay}/index.d.ts +0 -0
  158. /package/dist/src/{circuit → circuit-relay}/index.js +0 -0
  159. /package/dist/src/{circuit → circuit-relay}/pb/index.d.ts +0 -0
  160. /package/dist/src/{circuit → circuit-relay}/pb/index.js +0 -0
  161. /package/dist/src/{circuit → circuit-relay}/server/advert-service.d.ts +0 -0
  162. /package/dist/src/{circuit → circuit-relay}/server/advert-service.js +0 -0
  163. /package/dist/src/{circuit → circuit-relay}/server/index.d.ts +0 -0
  164. /package/dist/src/{circuit → circuit-relay}/server/index.js +0 -0
  165. /package/dist/src/{circuit → circuit-relay}/server/reservation-store.d.ts +0 -0
  166. /package/dist/src/{circuit → circuit-relay}/server/reservation-store.js +0 -0
  167. /package/dist/src/{circuit → circuit-relay}/server/reservation-voucher.d.ts +0 -0
  168. /package/dist/src/{circuit → circuit-relay}/server/reservation-voucher.js +0 -0
  169. /package/dist/src/{circuit → circuit-relay}/transport/discovery.d.ts +0 -0
  170. /package/dist/src/{circuit → circuit-relay}/transport/discovery.js +0 -0
  171. /package/dist/src/{circuit → circuit-relay}/transport/index.d.ts +0 -0
  172. /package/dist/src/{circuit → circuit-relay}/transport/index.js +0 -0
  173. /package/dist/src/{circuit → circuit-relay}/transport/listener.d.ts +0 -0
  174. /package/dist/src/{circuit → circuit-relay}/transport/listener.js +0 -0
  175. /package/dist/src/{circuit → circuit-relay}/transport/reservation-store.js +0 -0
  176. /package/dist/src/{circuit → circuit-relay}/utils.d.ts +0 -0
  177. /package/src/{circuit → circuit-relay}/constants.ts +0 -0
  178. /package/src/{circuit → circuit-relay}/index.ts +0 -0
  179. /package/src/{circuit → circuit-relay}/pb/index.proto +0 -0
  180. /package/src/{circuit → circuit-relay}/pb/index.ts +0 -0
  181. /package/src/{circuit → circuit-relay}/server/advert-service.ts +0 -0
  182. /package/src/{circuit → circuit-relay}/server/index.ts +0 -0
  183. /package/src/{circuit → circuit-relay}/server/reservation-store.ts +0 -0
  184. /package/src/{circuit → circuit-relay}/server/reservation-voucher.ts +0 -0
  185. /package/src/{circuit → circuit-relay}/transport/discovery.ts +0 -0
  186. /package/src/{circuit → circuit-relay}/transport/index.ts +0 -0
  187. /package/src/{circuit → circuit-relay}/transport/listener.ts +0 -0
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 $w=Object.create;var Js=Object.defineProperty;var zw=Object.getOwnPropertyDescriptor;var Hw=Object.getOwnPropertyNames;var Gw=Object.getPrototypeOf,Yw=Object.prototype.hasOwnProperty;var T=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),ne=(r,t)=>{for(var e in t)Js(r,e,{get:t[e],enumerable:!0})},Gf=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Hw(t))!Yw.call(r,i)&&i!==e&&Js(r,i,{get:()=>t[i],enumerable:!(n=zw(t,i))||n.enumerable});return r};var N=(r,t,e)=>(e=r!=null?$w(Gw(r)):{},Gf(t||!r||!r.__esModule?Js(e,"default",{value:r,enumerable:!0}):e,r)),Ww=r=>Gf(Js({},"__esModule",{value:!0}),r);var Sc=T((fA,Yf)=>{var Jn=1e3,jn=Jn*60,ti=jn*60,mn=ti*24,Qw=mn*7,Xw=mn*365.25;Yf.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return Zw(r);if(e==="number"&&isFinite(r))return t.long?jw(r):Jw(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Zw(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*Xw;case"weeks":case"week":case"w":return e*Qw;case"days":case"day":case"d":return e*mn;case"hours":case"hour":case"hrs":case"hr":case"h":return e*ti;case"minutes":case"minute":case"mins":case"min":case"m":return e*jn;case"seconds":case"second":case"secs":case"sec":case"s":return e*Jn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function Jw(r){var t=Math.abs(r);return t>=mn?Math.round(r/mn)+"d":t>=ti?Math.round(r/ti)+"h":t>=jn?Math.round(r/jn)+"m":t>=Jn?Math.round(r/Jn)+"s":r+"ms"}function jw(r){var t=Math.abs(r);return t>=mn?js(r,t,mn,"day"):t>=ti?js(r,t,ti,"hour"):t>=jn?js(r,t,jn,"minute"):t>=Jn?js(r,t,Jn,"second"):r+" ms"}function js(r,t,e,n){var i=t>=e*1.5;return Math.round(r/e)+" "+n+(i?"s":"")}});var Qf=T((hA,Wf)=>{function t1(r){e.debug=e,e.default=e,e.coerce=c,e.disable=s,e.enable=i,e.enabled=o,e.humanize=Sc(),e.destroy=l,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let f=0;for(let h=0;h<u.length;h++)f=(f<<5)-f+u.charCodeAt(h),f|=0;return e.colors[Math.abs(f)%e.colors.length]}e.selectColor=t;function e(u){let f,h=null,d,p;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),_=x-(f||x);g.diff=_,g.prev=f,g.curr=x,f=x,y[0]=e.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let O=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(B,X)=>{if(B==="%%")return"%";O++;let J=e.formatters[X];if(typeof J=="function"){let Xt=y[O];B=J.call(g,Xt),y.splice(O,1),O--}return B}),e.formatArgs.call(g,y),(g.log||e.log).apply(g,y)}return m.namespace=u,m.useColors=e.useColors(),m.color=e.selectColor(u),m.extend=n,m.destroy=e.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(d!==e.namespaces&&(d=e.namespaces,p=e.enabled(u)),p),set:y=>{h=y}}),typeof e.init=="function"&&e.init(m),m}function n(u,f){let h=e(this.namespace+(typeof f>"u"?":":f)+u);return h.log=this.log,h}function i(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let f,h=(typeof u=="string"?u:"").split(/[\s,]+/),d=h.length;for(f=0;f<d;f++)h[f]&&(u=h[f].replace(/\*/g,".*?"),u[0]==="-"?e.skips.push(new RegExp("^"+u.slice(1)+"$")):e.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...e.names.map(a),...e.skips.map(a).map(f=>"-"+f)].join(",");return e.enable(""),u}function o(u){if(u[u.length-1]==="*")return!0;let f,h;for(f=0,h=e.skips.length;f<h;f++)if(e.skips[f].test(u))return!1;for(f=0,h=e.names.length;f<h;f++)if(e.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}Wf.exports=t1});var Ac=T((Ee,to)=>{Ee.formatArgs=r1;Ee.save=n1;Ee.load=i1;Ee.useColors=e1;Ee.storage=s1();Ee.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ee.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function e1(){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(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+to.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(e++,i==="%c"&&(n=e))}),r.splice(n,0,t)}Ee.log=console.debug||console.log||(()=>{});function n1(r){try{r?Ee.storage.setItem("debug",r):Ee.storage.removeItem("debug")}catch{}}function i1(){let r;try{r=Ee.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function s1(){try{return localStorage}catch{}}to.exports=Qf()(Ee);var{formatters:o1}=to.exports;o1.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _h=T((gR,bh)=>{bh.exports=Jc;var vh=128,wE=127,EE=~wE,xE=Math.pow(2,31);function Jc(r,t,e){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Jc.bytes=0,new RangeError("Could not encode varint");t=t||[],e=e||0;for(var n=e;r>=xE;)t[e++]=r&255|vh,r/=128;for(;r&EE;)t[e++]=r&255|vh,r>>>=7;return t[e]=r|0,Jc.bytes=e-n+1,t}});var Rh=T((wR,Ah)=>{Ah.exports=jc;var vE=128,Sh=127;function jc(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a||i>49)throw jc.bytes=0,new RangeError("Could not decode varint");o=r[s++],e+=i<28?(o&Sh)<<i:(o&Sh)*Math.pow(2,i),i+=7}while(o>=vE);return jc.bytes=s-n,e}});var Th=T((ER,Ih)=>{var bE=Math.pow(2,7),_E=Math.pow(2,14),SE=Math.pow(2,21),AE=Math.pow(2,28),RE=Math.pow(2,35),IE=Math.pow(2,42),TE=Math.pow(2,49),CE=Math.pow(2,56),BE=Math.pow(2,63);Ih.exports=function(r){return r<bE?1:r<_E?2:r<SE?3:r<AE?4:r<RE?5:r<IE?6:r<TE?7:r<CE?8:r<BE?9:10}});var so=T((xR,Ch)=>{Ch.exports={encode:_h(),decode:Rh(),encodingLength:Th()}});var ci=T((EI,qh)=>{"use strict";function Vh(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function QE(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return Vh(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),Vh(new i,e)}}qh.exports=QE});var Zh=T((sT,Xh)=>{"use strict";Xh.exports=function(){return Date.now()}});var hl=T((oT,Jh)=>{"use strict";var wo=Zh(),fl=class{constructor(t,e,n){let i=this;this._started=wo(),this._rescheduled=0,this._scheduled=e,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(wo()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,t.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,e)}reschedule(t){t||(t=this._scheduled);let e=wo();e+t-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(t)):this._triggered?this._schedule(t):(this._started=e,this._rescheduled=t)}_schedule(t){this._triggered=!1,this._started=wo(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function rx(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let r;if(arguments.length>0){r=new Array(arguments.length-2);for(var t=0;t<r.length;t++)r[t]=arguments[t+2]}return new fl(arguments[0],arguments[1],r)}Jh.exports=rx});var _r=T((aT,t0)=>{"use strict";var{AbortController:nx}=globalThis,jh=hl(),Zi=class extends nx{constructor(t){super(),this._ms=t,this._timer=jh(()=>this.abort(),t),Object.setPrototypeOf(this,Zi.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=jh(()=>this.abort(),this._ms)}};t0.exports={TimeoutController:Zi}});var n0=T((gT,r0)=>{"use strict";var fi=new Map,ax=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function cx(r,t,e){for(;fi.get(e);){try{await r()}catch(n){setTimeout(()=>{throw n},1);break}if(!fi.get(e))break;await new Promise(n=>{let i=setTimeout(n,t);fi.set(e,i)})}}function lx(r,t,e){e=e||t;let n=ax(),i=setTimeout(()=>{cx(r,t,n)},e);return fi.set(n,i),n}function ux(r){let t=fi.get(r);t&&(clearTimeout(t),fi.delete(r))}r0.exports={setDelayedInterval:lx,clearDelayedInterval:ux}});var er=T((wT,pl)=>{"use strict";var hi=typeof Reflect=="object"?Reflect:null,i0=hi&&typeof hi.apply=="function"?hi.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},xo;hi&&typeof hi.ownKeys=="function"?xo=hi.ownKeys:Object.getOwnPropertySymbols?xo=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:xo=function(t){return Object.getOwnPropertyNames(t)};function fx(r){console&&console.warn&&console.warn(r)}var o0=Number.isNaN||function(t){return t!==t};function ht(){ht.init.call(this)}pl.exports=ht;pl.exports.once=mx;ht.EventEmitter=ht;ht.prototype._events=void 0;ht.prototype._eventsCount=0;ht.prototype._maxListeners=void 0;var s0=10;function vo(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(ht,"defaultMaxListeners",{enumerable:!0,get:function(){return s0},set:function(r){if(typeof r!="number"||r<0||o0(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");s0=r}});ht.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};ht.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||o0(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function a0(r){return r._maxListeners===void 0?ht.defaultMaxListeners:r._maxListeners}ht.prototype.getMaxListeners=function(){return a0(this)};ht.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i=t==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[t];if(c===void 0)return!1;if(typeof c=="function")i0(c,this,e);else for(var l=c.length,u=h0(c,l),n=0;n<l;++n)i0(u[n],this,e);return!0};function c0(r,t,e,n){var i,s,o;if(vo(e),s=r._events,s===void 0?(s=r._events=Object.create(null),r._eventsCount=0):(s.newListener!==void 0&&(r.emit("newListener",t,e.listener?e.listener:e),s=r._events),o=s[t]),o===void 0)o=s[t]=e,++r._eventsCount;else if(typeof o=="function"?o=s[t]=n?[e,o]:[o,e]:n?o.unshift(e):o.push(e),i=a0(r),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=t,a.count=o.length,fx(a)}return r}ht.prototype.addListener=function(t,e){return c0(this,t,e,!1)};ht.prototype.on=ht.prototype.addListener;ht.prototype.prependListener=function(t,e){return c0(this,t,e,!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 l0(r,t,e){var n={fired:!1,wrapFn:void 0,target:r,type:t,listener:e},i=hx.bind(n);return i.listener=e,n.wrapFn=i,i}ht.prototype.once=function(t,e){return vo(e),this.on(t,l0(this,t,e)),this};ht.prototype.prependOnceListener=function(t,e){return vo(e),this.prependListener(t,l0(this,t,e)),this};ht.prototype.removeListener=function(t,e){var n,i,s,o,a;if(vo(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||e));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():dx(n,s),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||e)}return this};ht.prototype.off=ht.prototype.removeListener;ht.prototype.removeAllListeners=function(t){var e,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[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),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(e=n[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function u0(r,t,e){var n=r._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?px(i):h0(i,i.length)}ht.prototype.listeners=function(t){return u0(this,t,!0)};ht.prototype.rawListeners=function(t){return u0(this,t,!1)};ht.listenerCount=function(r,t){return typeof r.listenerCount=="function"?r.listenerCount(t):f0.call(r,t)};ht.prototype.listenerCount=f0;function f0(r){var t=this._events;if(t!==void 0){var e=t[r];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}ht.prototype.eventNames=function(){return this._eventsCount>0?xo(this._events):[]};function h0(r,t){for(var e=new Array(t),n=0;n<t;++n)e[n]=r[n];return e}function dx(r,t){for(;t+1<r.length;t++)r[t]=r[t+1];r.pop()}function px(r){for(var t=new Array(r.length),e=0;e<t.length;++e)t[e]=r[e].listener||r[e];return t}function mx(r,t){return new Promise(function(e,n){function i(o){r.removeListener(t,s),n(o)}function s(){typeof r.removeListener=="function"&&r.removeListener("error",i),e([].slice.call(arguments))}d0(r,t,s,{once:!0}),t!=="error"&&yx(r,i,{once:!0})})}function yx(r,t,e){typeof r.on=="function"&&d0(r,"error",t,e)}function d0(r,t,e,n){if(typeof r.on=="function")n.once?r.once(t,e):r.on(t,e);else if(typeof r.addEventListener=="function")r.addEventListener(t,function i(s){n.once&&r.removeEventListener(t,i),e(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var x0=T((XT,E0)=>{"use strict";E0.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var R0=T((S0,A0)=>{"use strict";var Ro=x0(),{hasOwnProperty:b0}=Object.prototype,{propertyIsEnumerable:xx}=Object,di=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),vx=S0,v0={concatArrays:!1,ignoreUndefined:!1},Io=r=>{let t=[];for(let e in r)b0.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)xx.call(r,n)&&t.push(n)}return t};function pi(r){return Array.isArray(r)?bx(r):Ro(r)?_x(r):r}function bx(r){let t=r.slice(0,0);return Io(r).forEach(e=>{di(t,e,pi(r[e]))}),t}function _x(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return Io(r).forEach(e=>{di(t,e,pi(r[e]))}),t}var _0=(r,t,e,n)=>(e.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in r&&r[i]!==Object.getPrototypeOf(r)?di(r,i,El(r[i],t[i],n)):di(r,i,pi(t[i])))}),r),Sx=(r,t,e)=>{let n=r.slice(0,0),i=0;return[r,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)b0.call(s,a)&&(o.push(String(a)),s===r?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=_0(n,s,Io(s).filter(a=>!o.includes(a)),e)}),n};function El(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?Sx(r,t,e):!Ro(t)||!Ro(r)?pi(t):_0(r,t,Io(t),e)}A0.exports=function(...r){let t=El(pi(v0),this!==vx&&this||{},v0),e={_:{}};for(let n of r)if(n!==void 0){if(!Ro(n))throw new TypeError("`"+n+"` is not an Option Object");e=El(e,{_:n},t)}return e._}});var ts=T((vC,B0)=>{B0.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var L0=T((_C,D0)=>{D0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(e=>{this._keys[e]<=t&&delete this._keys[e]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,e){this.addMs(t,e*1e3)}addMs(t,e){this._keys[t]=Date.now()+e,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let e=this._keys[t];if(e&&e>=Date.now()){this.collectExpired();let n=Date.now();return e>=n?e-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(e=>{delete this._keys[e]})}}});var N0=T((SC,P0)=>{var Ix=L0();P0.exports=Ix});var be=T((RC,k0)=>{k0.exports=class{constructor(t,e,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof e>"u"?0:e,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var yi=T((TC,M0)=>{var vl=ts(),Tx=N0(),O0=be();M0.exports=class extends vl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new Tx}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,e,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?e(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{e(a)}).catch(l=>{e(l)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,e,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof vl?this.insuranceLimiter[e](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(t){return this.getInMemoryBlockMsBeforeExpire(t)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(t){this.inMemoryBlockOnConsumed=t}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(t){this.inMemoryBlockDuration=t}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof vl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,e,n={}){let i=e*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,e,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),e,s,i)}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new O0(0,a));this._upsert(o,e,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,e,c)}).catch(c=>{this._handleError(c,"consume",i,s,t,e,n)})})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,e,a))}).catch(a=>{this._handleError(a,"penalty",s,o,t,e,n)})})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,-e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-e,a))}).catch(a=>{this._handleError(a,"reward",s,o,t,e,n)})})}get(t,e={}){let n=this.getKey(t);return new Promise((i,s)=>{this._get(n,e).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,t,e)})})}delete(t,e={}){let n=this.getKey(t);return new Promise((i,s)=>{this._delete(n,e).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,t,e)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,e,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,e,n,i={}){return new Promise((s,o)=>{this._upsert(t,e,n,!0,i).then(()=>{s(new O0(0,n>0?n:-1,e))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,e={}){throw new Error("You have to implement the method '_get'!")}_delete(t,e={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,e,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var K0=T((CC,F0)=>{var Cx=yi(),Bx=be(),U0="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} ",bl=class extends Cx{constructor(t){super(t),t.redis?this.client=t.redis:this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:U0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,e,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new Bx;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===e,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}_upsert(t,e,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(t,e,"EX",a):c.set(t,e),c.pttl(t).exec((l,u)=>l?o(l):s(u));else if(a>0){let l=function(u,f){return u?o(u):s(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,e,a,l):this.client.eval(U0,1,t,e,a,l)}else c.incrby(t,e).pttl(t).exec((l,u)=>l?o(l):s(u))})}_get(t){return new Promise((e,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(t).pttl(t).exec((i,s)=>{if(i)n(i);else{let[o]=s;if(o===null)return e(null);e(s)}})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,s)=>{i?n(i):e(s>0)})})}};F0.exports=bl});var $0=T((BC,q0)=>{var Dx=yi(),Lx=be();function V0(r){try{let t=r.client?r.client:r,{version:e}=t.topology.s.options.metadata.driver,n=e.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var es=class extends Dx{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(e=>{this.client=e,this._initCollection(),this._driverVersion=V0(this.client)}):(this._initCollection(),this._driverVersion=V0(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?es.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let e=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);e.createIndex({expire:-1},{expireAfterSeconds:0}),e.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=e}_getRateLimiterRes(t,e,n){let i=new Lx,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===e,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(t,e,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,o),c={$set:{key:t,points:e,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:e}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let l={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?l.returnDocument="after":l.returnOriginal=!1,new Promise((u,f)=>{this._collection.findOneAndUpdate(a,c,l).then(h=>{u(h)}).catch(h=>{if(h&&h.code===11e3){let d=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},o),p={$set:Object.assign({key:t,points:e,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(d,p,l).then(m=>{u(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,e,n,i).then(y=>u(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};q0.exports=es});var H0=T((DC,z0)=>{var Px=yi(),Nx=be(),_l=class extends Px{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),e()})}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,e)=>{this.client.getConnection((n,i)=>{if(n)return e(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,e)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),e(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),e(s);this._releaseConnection(n),t()})})}).catch(n=>{e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,e,n){let i=new Nx,[s]=n;return i.isFirstInDuration=e===s.points,i.consumedPoints=i.isFirstInDuration?e:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(t,e,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let l=Date.now(),u=i>0?l+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
2
+ "use strict";var Libp2P=(()=>{var Vw=Object.create;var rs=Object.defineProperty;var qw=Object.getOwnPropertyDescriptor;var $w=Object.getOwnPropertyNames;var zw=Object.getPrototypeOf,Hw=Object.prototype.hasOwnProperty;var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rt=(t,e)=>{for(var r in e)rs(t,r,{get:e[r],enumerable:!0})},jf=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $w(e))!Hw.call(t,i)&&i!==r&&rs(t,i,{get:()=>e[i],enumerable:!(n=qw(e,i))||n.enumerable});return t};var M=(t,e,r)=>(r=t!=null?Vw(zw(t)):{},jf(e||!t||!t.__esModule?rs(r,"default",{value:t,enumerable:!0}):r,t)),Gw=t=>jf(rs({},"__esModule",{value:!0}),t);var Ic=T((TA,eh)=>{var ti=1e3,ri=ti*60,ni=ri*60,wn=ni*24,Yw=wn*7,Ww=wn*365.25;eh.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Qw(t);if(r==="number"&&isFinite(t))return e.long?Zw(t):Xw(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Qw(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*Ww;case"weeks":case"week":case"w":return r*Yw;case"days":case"day":case"d":return r*wn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ni;case"minutes":case"minute":case"mins":case"min":case"m":return r*ri;case"seconds":case"second":case"secs":case"sec":case"s":return r*ti;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Xw(t){var e=Math.abs(t);return e>=wn?Math.round(t/wn)+"d":e>=ni?Math.round(t/ni)+"h":e>=ri?Math.round(t/ri)+"m":e>=ti?Math.round(t/ti)+"s":t+"ms"}function Zw(t){var e=Math.abs(t);return e>=wn?ns(t,e,wn,"day"):e>=ni?ns(t,e,ni,"hour"):e>=ri?ns(t,e,ri,"minute"):e>=ti?ns(t,e,ti,"second"):t+" ms"}function ns(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var rh=T((CA,th)=>{function Jw(t){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=s,r.humanize=Ic(),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 m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),_=x-(f||x);g.diff=_,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let k=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(D,X)=>{if(D==="%%")return"%";k++;let J=r.formatters[X];if(typeof J=="function"){let We=y[k];D=J.call(g,We),y.splice(k,1),k--}return D}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(d!==r.namespaces&&(d=r.namespaces,p=r.enabled(l)),p),set:y=>{h=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let h=r(this.namespace+(typeof f>"u"?":":f)+l);return h.log=this.log,h}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,h=(typeof l=="string"?l:"").split(/[\s,]+/),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 o(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function s(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}th.exports=Jw});var Tc=T((Et,is)=>{Et.formatArgs=e1;Et.save=t1;Et.load=r1;Et.useColors=jw;Et.storage=n1();Et.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`."))}})();Et.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 jw(){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 ":" ")+"+"+is.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)}Et.log=console.debug||console.log||(()=>{});function t1(t){try{t?Et.storage.setItem("debug",t):Et.storage.removeItem("debug")}catch{}}function r1(){let t;try{t=Et.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function n1(){try{return localStorage}catch{}}is.exports=rh()(Et);var{formatters:i1}=is.exports;i1.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Dh=T((NR,Ch)=>{Ch.exports=tu;var Th=128,yE=127,gE=~yE,wE=Math.pow(2,31);function tu(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw tu.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=wE;)e[r++]=t&255|Th,t/=128;for(;t&gE;)e[r++]=t&255|Th,t>>>=7;return e[r]=t|0,tu.bytes=r-n+1,e}});var Ph=T((kR,Lh)=>{Lh.exports=ru;var EE=128,Bh=127;function ru(t,n){var r=0,n=n||0,i=0,o=n,s,a=t.length;do{if(o>=a||i>49)throw ru.bytes=0,new RangeError("Could not decode varint");s=t[o++],r+=i<28?(s&Bh)<<i:(s&Bh)*Math.pow(2,i),i+=7}while(s>=EE);return ru.bytes=o-n,r}});var kh=T((OR,Nh)=>{var xE=Math.pow(2,7),vE=Math.pow(2,14),bE=Math.pow(2,21),_E=Math.pow(2,28),SE=Math.pow(2,35),AE=Math.pow(2,42),RE=Math.pow(2,49),IE=Math.pow(2,56),TE=Math.pow(2,63);Nh.exports=function(t){return t<xE?1:t<vE?2:t<bE?3:t<_E?4:t<SE?5:t<AE?6:t<RE?7:t<IE?8:t<TE?9:10}});var us=T((MR,Oh)=>{Oh.exports={encode:Dh(),decode:Ph(),encodingLength:kh()}});var gs=T((mT,jh)=>{"use strict";function Jh(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function ux(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 Jh(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),Jh(new i,r)}}jh.exports=ux});var nd=T((RT,rd)=>{"use strict";rd.exports=function(){return Date.now()}});var od=T((IT,id)=>{"use strict";var bs=nd(),gu=class{constructor(e,r,n){let i=this;this._started=bs(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(bs()-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=bs();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=bs(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function dx(){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 gu(arguments[0],arguments[1],t)}id.exports=dx});var qr=T((TT,ad)=>{"use strict";var{AbortController:px}=globalThis,sd=od(),eo=class extends px{constructor(e){super(),this._ms=e,this._timer=sd(()=>this.abort(),e),Object.setPrototypeOf(this,eo.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=sd(()=>this.abort(),this._ms)}};ad.exports={TimeoutController:eo}});var fd=T((FT,ld)=>{"use strict";var di=new Map,xx=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function vx(t,e,r){for(;di.get(r);){try{await t()}catch(n){setTimeout(()=>{throw n},1);break}if(!di.get(r))break;await new Promise(n=>{let i=setTimeout(n,e);di.set(r,i)})}}function bx(t,e,r){r=r||e;let n=xx(),i=setTimeout(()=>{vx(t,e,n)},r);return di.set(n,i),n}function _x(t){let e=di.get(t);e&&(clearTimeout(e),di.delete(t))}ld.exports={setDelayedInterval:bx,clearDelayedInterval:_x}});var Sr=T((KT,Eu)=>{"use strict";var pi=typeof Reflect=="object"?Reflect:null,hd=pi&&typeof pi.apply=="function"?pi.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},Ss;pi&&typeof pi.ownKeys=="function"?Ss=pi.ownKeys:Object.getOwnPropertySymbols?Ss=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Ss=function(e){return Object.getOwnPropertyNames(e)};function Sx(t){console&&console.warn&&console.warn(t)}var pd=Number.isNaN||function(e){return e!==e};function he(){he.init.call(this)}Eu.exports=he;Eu.exports.once=Tx;he.EventEmitter=he;he.prototype._events=void 0;he.prototype._eventsCount=0;he.prototype._maxListeners=void 0;var dd=10;function As(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(he,"defaultMaxListeners",{enumerable:!0,get:function(){return dd},set:function(t){if(typeof t!="number"||t<0||pd(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");dd=t}});he.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};he.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||pd(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 md(t){return t._maxListeners===void 0?he.defaultMaxListeners:t._maxListeners}he.prototype.getMaxListeners=function(){return md(this)};he.prototype.emit=function(e){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=e==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(r.length>0&&(s=r[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[e];if(c===void 0)return!1;if(typeof c=="function")hd(c,this,r);else for(var u=c.length,l=xd(c,u),n=0;n<u;++n)hd(l[n],this,r);return!0};function yd(t,e,r,n){var i,o,s;if(As(r),o=t._events,o===void 0?(o=t._events=Object.create(null),t._eventsCount=0):(o.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),s===void 0)s=o[e]=r,++t._eventsCount;else if(typeof s=="function"?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=md(t),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=s.length,Sx(a)}return t}he.prototype.addListener=function(e,r){return yd(this,e,r,!1)};he.prototype.on=he.prototype.addListener;he.prototype.prependListener=function(e,r){return yd(this,e,r,!0)};function Ax(){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 gd(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=Ax.bind(n);return i.listener=r,n.wrapFn=i,i}he.prototype.once=function(e,r){return As(r),this.on(e,gd(this,e,r)),this};he.prototype.prependOnceListener=function(e,r){return As(r),this.prependListener(e,gd(this,e,r)),this};he.prototype.removeListener=function(e,r){var n,i,o,s,a;if(As(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(o=-1,s=n.length-1;s>=0;s--)if(n[s]===r||n[s].listener===r){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():Rx(n,o),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||r)}return this};he.prototype.off=he.prototype.removeListener;he.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 o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);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 wd(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?Ix(i):xd(i,i.length)}he.prototype.listeners=function(e){return wd(this,e,!0)};he.prototype.rawListeners=function(e){return wd(this,e,!1)};he.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Ed.call(t,e)};he.prototype.listenerCount=Ed;function Ed(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}he.prototype.eventNames=function(){return this._eventsCount>0?Ss(this._events):[]};function xd(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function Rx(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function Ix(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function Tx(t,e){return new Promise(function(r,n){function i(s){t.removeListener(e,o),n(s)}function o(){typeof t.removeListener=="function"&&t.removeListener("error",i),r([].slice.call(arguments))}vd(t,e,o,{once:!0}),e!=="error"&&Cx(t,i,{once:!0})})}function Cx(t,e,r){typeof t.on=="function"&&vd(t,"error",e,r)}function vd(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(o){n.once&&t.removeEventListener(e,i),r(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}});var ro=T((xC,Cd)=>{Cd.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var Bd=T((bC,Dd)=>{Dd.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 Pd=T((_C,Ld)=>{var Px=Bd();Ld.exports=Px});var vt=T((AC,Nd)=>{Nd.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var mi=T((IC,Od)=>{var Su=ro(),Nx=Pd(),kd=vt();Od.exports=class extends Su{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed||e.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration||e.inmemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new Nx}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,o,s={}){let a=this._getRateLimiterRes(n,i,o);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,s)),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,o,s=!1,a={}){this.insuranceLimiter instanceof Su?this.insuranceLimiter[r](o,s,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 Su))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 o=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,o,i)}consume(e,r=1,n={}){return new Promise((i,o)=>{let s=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return o(new kd(0,a));this._upsert(s,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,o,s,r,c)}).catch(c=>{this._handleError(c,"consume",i,o,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((o,s)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",o,s,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((o,s)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",o,s,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,o)=>{this._get(n,r).then(s=>{i(s===null||typeof s>"u"?null:this._getRateLimiterRes(n,0,s))}).catch(s=>{this._handleError(s,"get",i,o,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,o)=>{this._delete(n,r).then(s=>{this._inMemoryBlockedKeys.delete(n),i(s)}).catch(s=>{this._handleError(s,"delete",i,o,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((o,s)=>{this._upsert(e,r,n,!0,i).then(()=>{o(new kd(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",o,s,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,o={}){throw new Error("You have to implement the method '_upsert'!")}}});var Fd=T((TC,Ud)=>{var kx=mi(),Ox=vt(),Md="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} ",Au=class extends kx{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:Md})}_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,o]=n;Array.isArray(i)&&([,i]=i,[,o]=o);let s=new Ox;return s.consumedPoints=parseInt(i),s.isFirstInDuration=s.consumedPoints===r,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}_upsert(e,r,n,i=!1){return new Promise((o,s)=>{if(!this._isRedisReady())return s(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?s(u):o(l));else if(a>0){let u=function(l,f){return l?s(l):o(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,a,u):this.client.eval(Md,1,e,r,a,u)}else c.incrby(e,r).pttl(e).exec((u,l)=>u?s(u):o(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,o)=>{if(i)n(i);else{let[s]=o;if(s===null)return r(null);r(o)}})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,o)=>{i?n(i):r(o>0)})})}};Ud.exports=Au});var qd=T((CC,Vd)=>{var Mx=mi(),Ux=vt();function Kd(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 no=class extends Mx{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=Kd(this.client)}):(this._initCollection(),this._driverVersion=Kd(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?no.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 Ux,o;return typeof n.value>"u"?o=n:o=n.value,i.isFirstInDuration=o.points===r,i.consumedPoints=o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire!==null?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,o={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let s=o.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,s),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,s)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,s),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,s));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},s),p={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},s)};this._collection.findOneAndUpdate(d,p,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(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(o=>o.deletedCount>0)}};Vd.exports=no});var zd=T((DC,$d)=>{var Fx=mi(),Kx=vt(),Ru=class extends Fx{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(),o=>{if(o)return this._releaseConnection(n),r(o);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new Kx,[o]=n;return i.isFirstInDuration=r===o.points,i.consumedPoints=i.isFirstInDuration?r:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,o){return new Promise((s,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;o?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
3
3
  ON DUPLICATE KEY UPDATE
4
4
  points = ?,
5
- expire = ?;`,h=[this.dbName,this.tableName,e,n,u,n,u]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
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,e,n,u,l,n,n,l,u]),t.query(f,h,d=>{if(d)return t.rollback(),a(d);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,e],(p,m)=>{if(p)return t.rollback(),a(p);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,e,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,e,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(s,o)=>{s?n(s):o.length===0?e(null):e(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):e(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};z0.exports=_l});var Y0=T((LC,G0)=>{var kx=yi(),Ox=be(),Sl=class extends kx{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?typeof e=="function"&&e():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{e()}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,e)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
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,m)=>{if(p)return e.rollback(),a(p);e.query("COMMIT",y=>{if(y)return e.rollback(),a(y);s(m)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((o,s)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{o(c),this._releaseConnection(a)}).catch(c=>{s(c),this._releaseConnection(a)})}).catch(a=>{s(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()],(o,s)=>{o?n(o):s.length===0?r(null):r(s),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],(o,s)=>{o?n(o):r(s.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};$d.exports=Ru});var Gd=T((BC,Hd)=>{var Vx=mi(),qx=vt(),Iu=class extends Vx{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(t){let e=this.client.constructor.name;if(typeof t>"u")if(e==="Client")t="client";else if(e==="Pool"||e==="BoundPool")t="pool";else if(e==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,e,n){let i=new Ox,s=n.rows[0];return i.isFirstInDuration=e===s.points,i.consumedPoints=i.isFirstInDuration?e:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(t,e,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
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:!!e}_getRateLimiterRes(e,r,n){let i=new qx,o=n.rows[0];return i.isFirstInDuration=r===o.points,i.consumedPoints=i.isFirstInDuration?r:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.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,o)=>{this._getConnection().then(s=>{s.query(n).then(a=>{i(a),this._releaseConnection(s)}).catch(a=>{o(a),this._releaseConnection(s)})}).catch(s=>{o(s)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let o=n>0?Date.now()+n:null,s=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:`
@@ -19,34 +19,34 @@
19
19
  WHEN (${this.tableName}.expire <= $4 OR 1=${i?1:0}) THEN $2
20
20
  ELSE ${this.tableName}.points + ($2)
21
21
  END,
22
- expire = ${o}
23
- RETURNING points, expire;`,values:[t,e,s,Date.now()]})}_get(t){return this.tableCreated?new Promise((e,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:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),e(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[t]}).then(e=>e.rowCount>0):Promise.reject(Error("Table is not created yet"))}};G0.exports=Sl});var W0=T(()=>{});var Rn=T(()=>{});var X0=T((UC,Q0)=>{Q0.exports=class{constructor(t,e,n=null){this.value=t,this.expiresAt=e,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var J0=T((KC,Z0)=>{var Mx=X0(),Al=be();Z0.exports=class{constructor(){this._storage={}}incrby(t,e,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+e,new Al(0,i,this._storage[t].value,!1)):this.set(t,e,n)}return this.set(t,e,n)}set(t,e,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new Mx(e,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Al(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let e=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Al(0,e,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var Il=T((VC,td)=>{var Ux=ts(),Fx=J0(),j0=be(),Rl=class extends Ux{constructor(t={}){super(t),this._memoryStorage=new Fx}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,e,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+e&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let l=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));l<this.execEvenlyMinDelayMs&&(l=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,l,c)}else i(c)})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,e,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-e,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(t,e){let n=e*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,e),Promise.resolve(new j0(0,n===0?-1:n,i))}set(t,e,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),e,n),Promise.resolve(new j0(0,i===0?-1:i,e))}get(t){let e=this._memoryStorage.get(this.getKey(t));return e!==null&&(e.remainingPoints=Math.max(this.points-e.consumedPoints,0)),Promise.resolve(e)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};td.exports=Rl});var ad=T((qC,od)=>{var ed=W0(),Kx=Rn(),Vx=ts(),nd=Il(),qx=be(),Le="rate_limiter_flexible",Ei=null,rd=function(r,t,e,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},r.send({channel:Le,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:e,data:i})},id=function(r){setTimeout(()=>{this._initiated?process.send(r):typeof this._promises[r.promiseId]<"u"&&id.call(this,r)},30)},gi=function(r,t,e,n,i){let s={channel:Le,keyPrefix:this.keyPrefix,func:r,promiseId:t,data:{key:e,arg:n,opts:i}};this._initiated?process.send(s):id.call(this,s)},sd=function(r,t){if(!t||t.channel!==Le||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let e;switch(t.func){case"consume":e=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":e=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":e=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":e=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":e=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":e=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}e&&e.then(n=>{rd(r,t,"resolve",n)}).catch(n=>{rd(r,t,"reject",n)})},$x=function(r){if(!r||r.channel!==Le||r.keyPrefix!==this.keyPrefix)return!1;if(this._promises[r.promiseId]){clearTimeout(this._promises[r.promiseId].timeoutId);let t;switch(r.data===null||r.data===!0||r.data===!1?t=r.data:t=new qx(r.data.remainingPoints,r.data.msBeforeNext,r.data.consumedPoints,r.data.isFirstInDuration),r.type){case"resolve":this._promises[r.promiseId].resolve(t);break;case"reject":this._promises[r.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${r.type}'`)}delete this._promises[r.promiseId]}},zx=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},wi=function(r,t){let e=process.hrtime(),n=e[0].toString()+e[1].toString();return typeof this._promises[n]<"u"&&(n+=Kx.randomBytes(12).toString("base64")),this._promises[n]={resolve:r,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Tl=class{constructor(){if(Ei)return Ei;this._rateLimiters={},ed.setMaxListeners(0),ed.on("message",(t,e)=>{e&&e.channel===Le&&e.type==="init"?(typeof this._rateLimiters[e.opts.keyPrefix]>"u"&&(this._rateLimiters[e.opts.keyPrefix]=new nd(e.opts)),t.send({channel:Le,type:"init",keyPrefix:e.opts.keyPrefix})):sd.call(this,t,e)}),Ei=this}},Cl=class{constructor(t){if(Ei)return Ei;this._rateLimiters={},t.launchBus((e,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Le&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new nd(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Le,channel:Le,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Le,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(l,u)=>{l&&console.log(l,u)})}};sd.call(this,o,s)}})}),Ei=this}},Bl=class extends Vx{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",e=>{e&&e.channel===Le&&e.type==="init"&&e.keyPrefix===this.keyPrefix?this._initiated=!0:$x.call(this,e)}),process.send({channel:Le,type:"init",opts:zx.call(this)}),this._promises={}}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"consume",o,t,e,n)})}penalty(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"penalty",o,t,e,n)})}reward(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"reward",o,t,e,n)})}block(t,e,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"block",o,t,e,n)})}get(t,e={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);gi.call(this,"get",s,t,e)})}delete(t,e={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);gi.call(this,"delete",s,t,e)})}};od.exports={RateLimiterClusterMaster:Tl,RateLimiterClusterMasterPM2:Cl,RateLimiterCluster:Bl}});var ld=T(($C,cd)=>{var Hx=yi(),Gx=be(),Dl=class extends Hx{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,e,n){let i=new Gx;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===e,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,e,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),l=Math.floor(n/1e3);i?this.client.set(t,e,l,u=>{u?a(u):this.client.set(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let f={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};o(f)})}):this.client.incr(t,e,(u,f)=>{u||f===!1?this.client.add(t,e,l,(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(t,e,n,i,p).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let p={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};o(p)})}):this.client.get(`${t}_expire`,(h,d)=>{if(h)a(h);else{let p=d===!1?0:d,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};o(m)}})})})}_get(t){return new Promise((e,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let l=c===!1?0:c,u={consumedPoints:o,msBeforeNext:l>=0?Math.max(l-i,0):-1};e(u)}}):e(null)})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?e(s):this.client.del(`${t}_expire`,o=>{o?n(o):e(s)})})})}};cd.exports=Dl});var hd=T((HC,fd)=>{var ud=be();fd.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new ud(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new ud(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,e=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,e):(this.runActionAnyway&&this.limiter.consume(t,e).catch(()=>{}),n)}block(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,e):(this.runActionAnyway&&this.limiter.block(t,e).catch(()=>{}),n)}penalty(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,e):(this.runActionAnyway&&this.limiter.penalty(t,e).catch(()=>{}),n)}reward(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,e):(this.runActionAnyway&&this.limiter.reward(t,e).catch(()=>{}),n)}get(t){let e;return this.isWhiteListedSomewhere(t)?e=this.resolveWhite():this.isBlackListedSomewhere(t)&&(e=this.resolveBlack()),typeof e>"u"||this.runActionAnyway?this.limiter.get(t):e}delete(t){return this.limiter.delete(t)}}});var pd=T((YC,dd)=>{var Yx=ts();dd.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(e=>{if(!(e instanceof Yx))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,e=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,e).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(l=>{l.rejected===!0&&(c=!0)});for(let l=0;l<o.length;l++)c&&o[l].rejected===!0?a[this._limiters[l].keyPrefix]=o[l].rej:c||(a[this._limiters[l].keyPrefix]=o[l]);c?i(a):n(a)})})}}});var yd=T((QC,md)=>{md.exports=class extends Error{constructor(t,e){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,e&&(this.extra=e)}}});var xd=T((ZC,Ed)=>{var gd=yd(),wd=4294967295,Ll="limiter";Ed.exports=class{constructor(t,e={maxQueueSize:wd}){this._queueLimiters={KEY_DEFAULT:new Lo(t,e)},this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(t=Ll){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,e=Ll){return this._queueLimiters[e]||(this._queueLimiters[e]=new Lo(this._limiterFlexible,{key:e,maxQueueSize:this._maxQueueSize})),this._queueLimiters[e].removeTokens(t)}};var Lo=class{constructor(t,e={maxQueueSize:wd,key:Ll}){this._key=e.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let e=this;return new Promise((n,i)=>{if(t>e._limiterFlexible.points){i(new gd(`Requested tokens ${t} exceeds maximum ${e._limiterFlexible.points} tokens per interval`));return}e._queue.length>0?e._queueRequest.call(e,n,i,t):e._limiterFlexible.consume(e._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(e._queueRequest.call(e,n,i,t),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),s.msBeforeNext)))})})}_queueRequest(t,e,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:e,tokens:n}):e(new gd(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let e=t._queue.shift();t._limiterFlexible.consume(t._key,e.tokens).then(n=>{e.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(e.reject(n),t._processFIFO.call(t)):(t._queue.unshift(e),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var bd=T((jC,vd)=>{var Pl=be();vd.exports=class{constructor(t,e){this._rateLimiter=t,this._burstLimiter=e}_combineRes(t,e){return new Pl(t.remainingPoints,Math.min(t.msBeforeNext,e.msBeforeNext),t.consumedPoints,t.isFirstInDuration)}consume(t,e=1,n={}){return this._rateLimiter.consume(t,e,n).catch(i=>i instanceof Pl?this._burstLimiter.consume(t,e,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Pl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([e,n])=>this._combineRes(e,n))}get points(){return this._rateLimiter.points}}});var Sd=T((t4,_d)=>{var Wx=K0(),Qx=$0(),Xx=H0(),Zx=Y0(),{RateLimiterClusterMaster:Jx,RateLimiterClusterMasterPM2:jx,RateLimiterCluster:tv}=ad(),ev=Il(),rv=ld(),nv=hd(),iv=pd(),sv=xd(),ov=bd(),av=be();_d.exports={RateLimiterRedis:Wx,RateLimiterMongo:Qx,RateLimiterMySQL:Xx,RateLimiterPostgres:Zx,RateLimiterMemory:ev,RateLimiterMemcache:rv,RateLimiterClusterMaster:Jx,RateLimiterClusterMasterPM2:jx,RateLimiterCluster:tv,RLWrapperBlackAndWhite:nv,RateLimiterUnion:iv,RateLimiterQueue:sv,BurstyRateLimiter:ov,RateLimiterRes:av}});var Id=T((b4,Rd)=>{"use strict";function fv(r){return r>=55296&&r<=56319}function hv(r){return r>=56320&&r<=57343}Rd.exports=function(t,e,n){if(typeof e!="string")throw new Error("Input must be string");for(var i=e.length,s=0,o,a,c=0;c<i;c+=1){if(o=e.charCodeAt(c),a=e[c],fv(o)&&hv(e.charCodeAt(c+1))&&(c+=1,a+=e[c]),s+=t(a),s===n)return e.slice(0,c+1);if(s>n)return e.slice(0,c-a.length+1)}return e}});var Cd=T((_4,Td)=>{"use strict";function dv(r){return r>=55296&&r<=56319}function pv(r){return r>=56320&&r<=57343}Td.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var e=t.length,n=0,i=null,s=null,o=0;o<e;o++)i=t.charCodeAt(o),pv(i)?s!=null&&dv(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 Dd=T((S4,Bd)=>{"use strict";var mv=Id(),yv=Cd();Bd.exports=mv.bind(null,yv)});var Nd=T((A4,Pd)=>{"use strict";var gv=Dd(),wv=/[\/\?<>\\:\*\|"]/g,Ev=/[\x00-\x1f\x80-\x9f]/g,xv=/^\.+$/,vv=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,bv=/[\. ]+$/;function Ld(r,t){if(typeof r!="string")throw new Error("Input must be string");var e=r.replace(wv,t).replace(Ev,t).replace(xv,t).replace(vv,t).replace(bv,t);return gv(e,255)}Pd.exports=function(r,t){var e=t&&t.replacement||"",n=Ld(r,e);return e===""?n:Ld(n,"")}});var Od=T((I4,kd)=>{"use strict";kd.exports=_v;function _v(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,s=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(a,c){e[n]=function(u){if(s)if(s=!1,u)c(u);else{for(var f=new Array(arguments.length-1),h=0;h<f.length;)f[h++]=arguments[h];a.apply(null,f)}};try{r.apply(t||null,e)}catch(l){s&&(s=!1,c(l))}})}});var Kd=T(Fd=>{"use strict";var Mo=Fd;Mo.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var vi=new Array(64),Ud=new Array(123);for(Ve=0;Ve<64;)Ud[vi[Ve]=Ve<26?Ve+65:Ve<52?Ve+71:Ve<62?Ve-4:Ve-59|43]=Ve++;var Ve;Mo.encode=function(t,e,n){for(var i=null,s=[],o=0,a=0,c;e<n;){var l=t[e++];switch(a){case 0:s[o++]=vi[l>>2],c=(l&3)<<4,a=1;break;case 1:s[o++]=vi[c|l>>4],c=(l&15)<<2,a=2;break;case 2:s[o++]=vi[c|l>>6],s[o++]=vi[l&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=vi[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 Md="invalid encoding";Mo.decode=function(t,e,n){for(var i=n,s=0,o,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&s>1)break;if((c=Ud[c])===void 0)throw Error(Md);switch(s){case 0:o=c,s=1;break;case 1:e[n++]=o<<2|(c&48)>>4,o=c,s=2;break;case 2:e[n++]=(o&15)<<4|(c&60)>>2,o=c,s=3;break;case 3:e[n++]=(o&3)<<6|c,s=0;break}}if(s===1)throw Error(Md);return n-i};Mo.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var qd=T((C4,Vd)=>{"use strict";Vd.exports=Uo;function Uo(){this._listeners={}}Uo.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};Uo.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};Uo.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var Qd=T((B4,Wd)=>{"use strict";Wd.exports=$d($d);function $d(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3]}function s(c,l,u){t[0]=c,l[u]=e[3],l[u+1]=e[2],l[u+2]=e[1],l[u+3]=e[0]}r.writeFloatLE=n?i:s,r.writeFloatBE=n?s:i;function o(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],t[0]}function a(c,l){return e[3]=c[l],e[2]=c[l+1],e[1]=c[l+2],e[0]=c[l+3],t[0]}r.readFloatLE=n?o:a,r.readFloatBE=n?a:o}():function(){function t(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),l=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|l)>>>0,s,o)}}r.writeFloatLE=t.bind(null,zd),r.writeFloatBE=t.bind(null,Hd);function e(n,i,s){var o=n(i,s),a=(o>>31)*2+1,c=o>>>23&255,l=o&8388607;return c===255?l?NaN:a*(1/0):c===0?a*1401298464324817e-60*l:a*Math.pow(2,c-150)*(l+8388608)}r.readFloatLE=e.bind(null,Gd),r.readFloatBE=e.bind(null,Yd)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3],l[u+4]=e[4],l[u+5]=e[5],l[u+6]=e[6],l[u+7]=e[7]}function s(c,l,u){t[0]=c,l[u]=e[7],l[u+1]=e[6],l[u+2]=e[5],l[u+3]=e[4],l[u+4]=e[3],l[u+5]=e[2],l[u+6]=e[1],l[u+7]=e[0]}r.writeDoubleLE=n?i:s,r.writeDoubleBE=n?s:i;function o(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],e[4]=c[l+4],e[5]=c[l+5],e[6]=c[l+6],e[7]=c[l+7],t[0]}function a(c,l){return e[7]=c[l],e[6]=c[l+1],e[5]=c[l+2],e[4]=c[l+3],e[3]=c[l+4],e[2]=c[l+5],e[1]=c[l+6],e[0]=c[l+7],t[0]}r.readDoubleLE=n?o:a,r.readDoubleBE=n?a:o}():function(){function t(n,i,s,o,a,c){var l=o<0?1:0;if(l&&(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((l<<31|2146435072)>>>0,a,c+s);else{var u;if(o<22250738585072014e-324)u=o/5e-324,n(u>>>0,a,c+i),n((l<<31|u/4294967296)>>>0,a,c+s);else{var f=Math.floor(Math.log(o)/Math.LN2);f===1024&&(f=1023),u=o*Math.pow(2,-f),n(u*4503599627370496>>>0,a,c+i),n((l<<31|f+1023<<20|u*1048576&1048575)>>>0,a,c+s)}}}r.writeDoubleLE=t.bind(null,zd,0,4),r.writeDoubleBE=t.bind(null,Hd,4,0);function e(n,i,s,o,a){var c=n(o,a+i),l=n(o,a+s),u=(l>>31)*2+1,f=l>>>20&2047,h=4294967296*(l&1048575)+c;return f===2047?h?NaN:u*(1/0):f===0?u*5e-324*h:u*Math.pow(2,f-1075)*(h+4503599627370496)}r.readDoubleLE=e.bind(null,Gd,0,4),r.readDoubleBE=e.bind(null,Yd,4,0)}(),r}function zd(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Hd(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function Gd(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function Yd(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var Xd=T((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(r){}return null}});var Jd=T(Zd=>{"use strict";var Ol=Zd;Ol.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};Ol.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var s=null,o=[],a=0,c;e<n;)c=t[e++],c<128?o[a++]=c:c>191&&c<224?o[a++]=(c&31)<<6|t[e++]&63:c>239&&c<365?(c=((c&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,o[a++]=55296+(c>>10),o[a++]=56320+(c&1023)):o[a++]=(c&15)<<12|(t[e++]&63)<<6|t[e++]&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))};Ol.write=function(t,e,n){for(var i=n,s,o,a=0;a<t.length;++a)s=t.charCodeAt(a),s<128?e[n++]=s:s<2048?(e[n++]=s>>6|192,e[n++]=s&63|128):(s&64512)===55296&&((o=t.charCodeAt(a+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++a,e[n++]=s>>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=s&63|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=s&63|128);return n-i}});var tp=T((L4,jd)=>{"use strict";jd.exports=Sv;function Sv(r,t,e){var n=e||8192,i=n>>>1,s=null,o=n;return function(c){if(c<1||c>i)return r(c);o+c>n&&(s=r(n),o=0);var l=t.call(s,o,o+=c);return o&7&&(o=(o|7)+1),l}}});var rp=T((P4,ep)=>{"use strict";ep.exports=Jt;var rs=Tn();function Jt(r,t){this.lo=r>>>0,this.hi=t>>>0}var In=Jt.zero=new Jt(0,0);In.toNumber=function(){return 0};In.zzEncode=In.zzDecode=function(){return this};In.length=function(){return 1};var Av=Jt.zeroHash="\0\0\0\0\0\0\0\0";Jt.fromNumber=function(t){if(t===0)return In;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Jt(n,i)};Jt.from=function(t){if(typeof t=="number")return Jt.fromNumber(t);if(rs.isString(t))if(rs.Long)t=rs.Long.fromString(t);else return Jt.fromNumber(parseInt(t,10));return t.low||t.high?new Jt(t.low>>>0,t.high>>>0):In};Jt.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};Jt.prototype.toLong=function(t){return rs.Long?new rs.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var zr=String.prototype.charCodeAt;Jt.fromHash=function(t){return t===Av?In:new Jt((zr.call(t,0)|zr.call(t,1)<<8|zr.call(t,2)<<16|zr.call(t,3)<<24)>>>0,(zr.call(t,4)|zr.call(t,5)<<8|zr.call(t,6)<<16|zr.call(t,7)<<24)>>>0)};Jt.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)};Jt.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};Jt.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};Jt.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}});var Tn=T(Ml=>{"use strict";var M=Ml;M.asPromise=Od();M.base64=Kd();M.EventEmitter=qd();M.float=Qd();M.inquire=Xd();M.utf8=Jd();M.pool=tp();M.LongBits=rp();M.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);M.global=M.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Ml;M.emptyArray=Object.freeze?Object.freeze([]):[];M.emptyObject=Object.freeze?Object.freeze({}):{};M.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};M.isString=function(t){return typeof t=="string"||t instanceof String};M.isObject=function(t){return t&&typeof t=="object"};M.isset=M.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};M.Buffer=function(){try{var r=M.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();M._Buffer_from=null;M._Buffer_allocUnsafe=null;M.newBuffer=function(t){return typeof t=="number"?M.Buffer?M._Buffer_allocUnsafe(t):new M.Array(t):M.Buffer?M._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};M.Array=typeof Uint8Array<"u"?Uint8Array:Array;M.Long=M.global.dcodeIO&&M.global.dcodeIO.Long||M.global.Long||M.inquire("long");M.key2Re=/^true|false|0|1$/;M.key32Re=/^-?(?:0|[1-9][0-9]*)$/;M.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;M.longToHash=function(t){return t?M.LongBits.from(t).toHash():M.LongBits.zeroHash};M.longFromHash=function(t,e){var n=M.LongBits.fromHash(t);return M.Long?M.Long.fromBits(n.lo,n.hi,e):n.toNumber(!!e)};function np(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}M.merge=np;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function ip(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&np(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}M.newError=ip;M.ProtocolError=ip("ProtocolError");M.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),s=i.length-1;s>-1;--s)if(e[i[s]]===1&&this[i[s]]!==void 0&&this[i[s]]!==null)return i[s]}};M.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};M.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};M._configure=function(){var r=M.Buffer;if(!r){M._Buffer_from=M._Buffer_allocUnsafe=null;return}M._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},M._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var Kl=T((k4,lp)=>{"use strict";lp.exports=Vt;var rr=Tn(),Fl,ap=rr.LongBits,Rv=rr.utf8;function qe(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function Vt(r){this.buf=r,this.pos=0,this.len=r.length}var sp=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new Vt(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new Vt(t);throw Error("illegal buffer")},cp=function(){return rr.Buffer?function(e){return(Vt.create=function(i){return rr.Buffer.isBuffer(i)?new Fl(i):sp(i)})(e)}:sp};Vt.create=cp();Vt.prototype._slice=rr.Array.prototype.subarray||rr.Array.prototype.slice;Vt.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,qe(this,10);return t}}();Vt.prototype.int32=function(){return this.uint32()|0};Vt.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function Ul(){var r=new ap(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw qe(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw qe(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}Vt.prototype.bool=function(){return this.uint32()!==0};function Fo(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}Vt.prototype.fixed32=function(){if(this.pos+4>this.len)throw qe(this,4);return Fo(this.buf,this.pos+=4)};Vt.prototype.sfixed32=function(){if(this.pos+4>this.len)throw qe(this,4);return Fo(this.buf,this.pos+=4)|0};function op(){if(this.pos+8>this.len)throw qe(this,8);return new ap(Fo(this.buf,this.pos+=4),Fo(this.buf,this.pos+=4))}Vt.prototype.float=function(){if(this.pos+4>this.len)throw qe(this,4);var t=rr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Vt.prototype.double=function(){if(this.pos+8>this.len)throw qe(this,4);var t=rr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Vt.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw qe(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};Vt.prototype.string=function(){var t=this.bytes();return Rv.read(t,0,t.length)};Vt.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw qe(this,t);this.pos+=t}else do if(this.pos>=this.len)throw qe(this);while(this.buf[this.pos++]&128);return this};Vt.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};Vt._configure=function(r){Fl=r,Vt.create=cp(),Fl._configure();var t=rr.Long?"toLong":"toNumber";rr.merge(Vt.prototype,{int64:function(){return Ul.call(this)[t](!1)},uint64:function(){return Ul.call(this)[t](!0)},sint64:function(){return Ul.call(this).zzDecode()[t](!1)},fixed64:function(){return op.call(this)[t](!0)},sfixed64:function(){return op.call(this)[t](!1)}})}});var dp=T((O4,hp)=>{"use strict";hp.exports=Cn;var fp=Kl();(Cn.prototype=Object.create(fp.prototype)).constructor=Cn;var up=Tn();function Cn(r){fp.call(this,r)}Cn._configure=function(){up.Buffer&&(Cn.prototype._slice=up.Buffer.prototype.slice)};Cn.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Cn._configure()});var Yl=T((M4,gp)=>{"use strict";gp.exports=it;var Pe=Tn(),Vl,Ko=Pe.LongBits,pp=Pe.base64,mp=Pe.utf8;function ns(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function $l(){}function Iv(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function it(){this.len=0,this.head=new ns($l,0,0),this.tail=this.head,this.states=null}var yp=function(){return Pe.Buffer?function(){return(it.create=function(){return new Vl})()}:function(){return new it}};it.create=yp();it.alloc=function(t){return new Pe.Array(t)};Pe.Array!==Array&&(it.alloc=Pe.pool(it.alloc,Pe.Array.prototype.subarray));it.prototype._push=function(t,e,n){return this.tail=this.tail.next=new ns(t,e,n),this.len+=e,this};function zl(r,t,e){t[e]=r&255}function Tv(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function Hl(r,t){this.len=r,this.next=void 0,this.val=t}Hl.prototype=Object.create(ns.prototype);Hl.prototype.fn=Tv;it.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Hl((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};it.prototype.int32=function(t){return t<0?this._push(Gl,10,Ko.fromNumber(t)):this.uint32(t)};it.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function Gl(r,t,e){for(;r.hi;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}it.prototype.uint64=function(t){var e=Ko.from(t);return this._push(Gl,e.length(),e)};it.prototype.int64=it.prototype.uint64;it.prototype.sint64=function(t){var e=Ko.from(t).zzEncode();return this._push(Gl,e.length(),e)};it.prototype.bool=function(t){return this._push(zl,1,t?1:0)};function ql(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}it.prototype.fixed32=function(t){return this._push(ql,4,t>>>0)};it.prototype.sfixed32=it.prototype.fixed32;it.prototype.fixed64=function(t){var e=Ko.from(t);return this._push(ql,4,e.lo)._push(ql,4,e.hi)};it.prototype.sfixed64=it.prototype.fixed64;it.prototype.float=function(t){return this._push(Pe.float.writeFloatLE,4,t)};it.prototype.double=function(t){return this._push(Pe.float.writeDoubleLE,8,t)};var Cv=Pe.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};it.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(zl,1,0);if(Pe.isString(t)){var n=it.alloc(e=pp.length(t));pp.decode(t,n,0),t=n}return this.uint32(e)._push(Cv,e,t)};it.prototype.string=function(t){var e=mp.length(t);return e?this.uint32(e)._push(mp.write,e,t):this._push(zl,1,0)};it.prototype.fork=function(){return this.states=new Iv(this),this.head=this.tail=new ns($l,0,0),this.len=0,this};it.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 ns($l,0,0),this.len=0),this};it.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};it.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};it._configure=function(r){Vl=r,it.create=yp(),Vl._configure()}});var xp=T((U4,Ep)=>{"use strict";Ep.exports=nr;var wp=Yl();(nr.prototype=Object.create(wp.prototype)).constructor=nr;var Hr=Tn();function nr(){wp.call(this)}nr._configure=function(){nr.alloc=Hr._Buffer_allocUnsafe,nr.writeBytesBuffer=Hr.Buffer&&Hr.Buffer.prototype instanceof Uint8Array&&Hr.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};nr.prototype.bytes=function(t){Hr.isString(t)&&(t=Hr._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(nr.writeBytesBuffer,e,t),this};function Bv(r,t,e){r.length<40?Hr.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}nr.prototype.string=function(t){var e=Hr.Buffer.byteLength(t);return this.uint32(e),e&&this._push(Bv,e,t),this};nr._configure()});var ft=T((r8,Ap)=>{Ap.exports={options:{usePureJavaScript:!1}}});var Tp=T((n8,Ip)=>{var jl={};Ip.exports=jl;var Rp={};jl.encode=function(r,t,e){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(e!==void 0&&typeof e!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(r instanceof Uint8Array))n=Nv(r,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<r.length;++i){for(var c=0,l=r[i];c<a.length;++c)l+=a[c]<<8,a[c]=l%s,l=l/s|0;for(;l>0;)a.push(l%s),l=l/s|0}for(i=0;r[i]===0&&i<r.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(e){var u=new RegExp(".{1,"+e+"}","g");n=n.match(u).join(`\r
25
- `)}return n};jl.decode=function(r,t){if(typeof r!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var e=Rp[t];if(!e){e=Rp[t]=[];for(var n=0;n<t.length;++n)e[t.charCodeAt(n)]=n}r=r.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<r.length;n++){var a=e[r.charCodeAt(n)];if(a===void 0)return;for(var c=0,l=a;c<o.length;++c)l+=o[c]*i,o[c]=l&255,l>>=8;for(;l>0;)o.push(l&255),l>>=8}for(var u=0;r[u]===s&&u<r.length-1;++u)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Nv(r,t){var e=0,n=t.length,i=t.charAt(0),s=[0];for(e=0;e<r.length();++e){for(var o=0,a=r.at(e);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(e=0;r.at(e)===0&&e<r.length()-1;++e)c+=i;for(e=s.length-1;e>=0;--e)c+=t[s[e]];return c}});var qt=T((i8,Lp)=>{var Cp=ft(),Bp=Tp(),E=Lp.exports=Cp.util=Cp.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===r){c.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(u){u()})}};var o=a,r="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(r,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var e=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(l){l()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-e>15?(e=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"};E.isArrayBuffer=function(r){return typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer};E.isArrayBufferView=function(r){return r&&E.isArrayBuffer(r.buffer)&&r.byteLength!==void 0};function is(r){if(!(r===8||r===16||r===24||r===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+r)}E.ByteBuffer=tu;function tu(r){if(this.data="",this.read=0,typeof r=="string")this.data=r;else if(E.isArrayBuffer(r)||E.isArrayBufferView(r))if(typeof Buffer<"u"&&r instanceof Buffer)this.data=r.toString("binary");else{var t=new Uint8Array(r);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var e=0;e<t.length;++e)this.putByte(t[e])}}else(r instanceof tu||typeof r=="object"&&typeof r.data=="string"&&typeof r.read=="number")&&(this.data=r.data,this.read=r.read);this._constructedStringLength=0}E.ByteStringBuffer=tu;var kv=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(r){this._constructedStringLength+=r,this._constructedStringLength>kv&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(r){return this.putBytes(String.fromCharCode(r))};E.ByteStringBuffer.prototype.fillWithByte=function(r,t){r=String.fromCharCode(r);for(var e=this.data;t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return this.data=e,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(r){return this.data+=r,this._optimizeConstructedString(r.length),this};E.ByteStringBuffer.prototype.putString=function(r){return this.putBytes(E.encodeUtf8(r))};E.ByteStringBuffer.prototype.putInt16=function(r){return this.putBytes(String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt24=function(r){return this.putBytes(String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt32=function(r){return this.putBytes(String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt16Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>24&255))};E.ByteStringBuffer.prototype.putInt=function(r,t){is(t);var e="";do t-=8,e+=String.fromCharCode(r>>t&255);while(t>0);return this.putBytes(e)};E.ByteStringBuffer.prototype.putSignedInt=function(r,t){return r<0&&(r+=2<<t-1),this.putInt(r,t)};E.ByteStringBuffer.prototype.putBuffer=function(r){return this.putBytes(r.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var r=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,r};E.ByteStringBuffer.prototype.getInt24=function(){var r=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,r};E.ByteStringBuffer.prototype.getInt32=function(){var r=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,r};E.ByteStringBuffer.prototype.getInt16Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,r};E.ByteStringBuffer.prototype.getInt24Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,r};E.ByteStringBuffer.prototype.getInt32Le=function(){var r=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,r};E.ByteStringBuffer.prototype.getInt=function(r){is(r);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),r-=8;while(r>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};E.ByteStringBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};E.ByteStringBuffer.prototype.at=function(r){return this.data.charCodeAt(this.read+r)};E.ByteStringBuffer.prototype.setAt=function(r,t){return this.data=this.data.substr(0,this.read+r)+String.fromCharCode(t)+this.data.substr(this.read+r+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var r=E.createBuffer(this.data);return r.read=this.read,r};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(r){var t=Math.max(0,this.length()-r);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.length;++t){var e=this.data.charCodeAt(t);e<16&&(r+="0"),r+=e.toString(16)}return r};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function Ov(r,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var e=E.isArrayBuffer(r),n=E.isArrayBufferView(r);if(e||n){e?this.data=new DataView(r):this.data=new DataView(r.buffer,r.byteOffset,r.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,r!=null&&this.putBytes(r),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=Ov;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(r,t){if(this.length()>=r)return this;t=Math.max(t||this.growSize,r);var e=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(e),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(r){return this.accommodate(1),this.data.setUint8(this.write++,r),this};E.DataBuffer.prototype.fillWithByte=function(r,t){this.accommodate(t);for(var e=0;e<t;++e)this.data.setUint8(r);return this};E.DataBuffer.prototype.putBytes=function(r,t){if(E.isArrayBufferView(r)){var e=new Uint8Array(r.buffer,r.byteOffset,r.byteLength),n=e.byteLength-e.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(e),this.write+=n,this}if(E.isArrayBuffer(r)){var e=new Uint8Array(r);this.accommodate(e.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(e,this.write),this.write+=e.byteLength,this}if(r instanceof E.DataBuffer||typeof r=="object"&&typeof r.read=="number"&&typeof r.write=="number"&&E.isArrayBufferView(r.data)){var e=new Uint8Array(r.data.byteLength,r.read,r.length());this.accommodate(e.byteLength);var i=new Uint8Array(r.data.byteLength,this.write);return i.set(e),this.write+=e.byteLength,this}if(r instanceof E.ByteStringBuffer&&(r=r.data,t="binary"),t=t||"binary",typeof r=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(r.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(r,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(r.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(r,s,this.write),this;if(t==="utf8"&&(r=E.encodeUtf8(r),t="binary"),t==="binary"||t==="raw")return this.accommodate(r.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(r.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+r)};E.DataBuffer.prototype.putBuffer=function(r){return this.putBytes(r),r.clear(),this};E.DataBuffer.prototype.putString=function(r){return this.putBytes(r,"utf16")};E.DataBuffer.prototype.putInt16=function(r){return this.accommodate(2),this.data.setInt16(this.write,r),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(r){return this.accommodate(3),this.data.setInt16(this.write,r>>8&65535),this.data.setInt8(this.write,r>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(r){return this.accommodate(4),this.data.setInt32(this.write,r),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(r){return this.accommodate(2),this.data.setInt16(this.write,r,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(r){return this.accommodate(3),this.data.setInt8(this.write,r>>16&255),this.data.setInt16(this.write,r>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(r){return this.accommodate(4),this.data.setInt32(this.write,r,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(r,t){is(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,r>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(r,t){return is(t),this.accommodate(t/8),r<0&&(r+=2<<t-1),this.putInt(r,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var r=this.data.getInt16(this.read);return this.read+=2,r};E.DataBuffer.prototype.getInt24=function(){var r=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,r};E.DataBuffer.prototype.getInt32=function(){var r=this.data.getInt32(this.read);return this.read+=4,r};E.DataBuffer.prototype.getInt16Le=function(){var r=this.data.getInt16(this.read,!0);return this.read+=2,r};E.DataBuffer.prototype.getInt24Le=function(){var r=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,r};E.DataBuffer.prototype.getInt32Le=function(){var r=this.data.getInt32(this.read,!0);return this.read+=4,r};E.DataBuffer.prototype.getInt=function(r){is(r);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),r-=8;while(r>0);return t};E.DataBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};E.DataBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};E.DataBuffer.prototype.at=function(r){return this.data.getUint8(this.read+r)};E.DataBuffer.prototype.setAt=function(r,t){return this.data.setUint8(r,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var r=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(r.byteLength);t.set(r),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(r){return this.write=Math.max(0,this.length()-r),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.byteLength;++t){var e=this.data.getUint8(t);e<16&&(r+="0"),r+=e.toString(16)}return r};E.DataBuffer.prototype.toString=function(r){var t=new Uint8Array(this.data,this.read,this.length());if(r=r||"utf8",r==="binary"||r==="raw")return E.binary.raw.encode(t);if(r==="hex")return E.binary.hex.encode(t);if(r==="base64")return E.binary.base64.encode(t);if(r==="utf8")return E.text.utf8.decode(t);if(r==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+r)};E.createBuffer=function(r,t){return t=t||"raw",r!==void 0&&t==="utf8"&&(r=E.encodeUtf8(r)),new E.ByteBuffer(r)};E.fillString=function(r,t){for(var e="";t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return e};E.xorBytes=function(r,t,e){for(var n="",i="",s="",o=0,a=0;e>0;--e,++o)i=r.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(r){var t="",e=0;for(r.length&!0&&(e=1,t+=String.fromCharCode(parseInt(r[0],16)));e<r.length;e+=2)t+=String.fromCharCode(parseInt(r.substr(e,2),16));return t};E.bytesToHex=function(r){return E.createBuffer(r).toHex()};E.int32ToBytes=function(r){return String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255)};var Yr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Wr=[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],Dp="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(r,t){for(var e="",n="",i,s,o,a=0;a<r.length;)i=r.charCodeAt(a++),s=r.charCodeAt(a++),o=r.charCodeAt(a++),e+=Yr.charAt(i>>2),e+=Yr.charAt((i&3)<<4|s>>4),isNaN(s)?e+="==":(e+=Yr.charAt((s&15)<<2|o>>6),e+=isNaN(o)?"=":Yr.charAt(o&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
26
- `,e=e.substr(t));return n+=e,n};E.decode64=function(r){r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",e,n,i,s,o=0;o<r.length;)e=Wr[r.charCodeAt(o++)-43],n=Wr[r.charCodeAt(o++)-43],i=Wr[r.charCodeAt(o++)-43],s=Wr[r.charCodeAt(o++)-43],t+=String.fromCharCode(e<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(r){return unescape(encodeURIComponent(r))};E.decodeUtf8=function(r){return decodeURIComponent(escape(r))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Bp.encode,decode:Bp.decode}};E.binary.raw.encode=function(r){return String.fromCharCode.apply(null,r)};E.binary.raw.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,s=0;s<r.length;++s)n[i++]=r.charCodeAt(s);return t?i-e:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/2))),e=e||0;var i=0,s=e;for(r.length&1&&(i=1,n[s++]=parseInt(r[0],16));i<r.length;i+=2)n[s++]=parseInt(r.substr(i,2),16);return t?s-e:n};E.binary.base64.encode=function(r,t){for(var e="",n="",i,s,o,a=0;a<r.byteLength;)i=r[a++],s=r[a++],o=r[a++],e+=Yr.charAt(i>>2),e+=Yr.charAt((i&3)<<4|s>>4),isNaN(s)?e+="==":(e+=Yr.charAt((s&15)<<2|o>>6),e+=isNaN(o)?"=":Yr.charAt(o&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
27
- `,e=e.substr(t));return n+=e,n};E.binary.base64.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/4)*3)),r=r.replace(/[^A-Za-z0-9\+\/\=]/g,""),e=e||0;for(var i,s,o,a,c=0,l=e;c<r.length;)i=Wr[r.charCodeAt(c++)-43],s=Wr[r.charCodeAt(c++)-43],o=Wr[r.charCodeAt(c++)-43],a=Wr[r.charCodeAt(c++)-43],n[l++]=i<<2|s>>4,o!==64&&(n[l++]=(s&15)<<4|o>>2,a!==64&&(n[l++]=(o&3)<<6|a));return t?l-e:n.subarray(0,l)};E.binary.base58.encode=function(r,t){return E.binary.baseN.encode(r,Dp,t)};E.binary.base58.decode=function(r,t){return E.binary.baseN.decode(r,Dp,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(r,t,e){r=E.encodeUtf8(r);var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,s=0;s<r.length;++s)n[i++]=r.charCodeAt(s);return t?i-e:n};E.text.utf8.decode=function(r){return E.decodeUtf8(String.fromCharCode.apply(null,r))};E.text.utf16.encode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length*2));var i=new Uint16Array(n.buffer);e=e||0;for(var s=e,o=e,a=0;a<r.length;++a)i[o++]=r.charCodeAt(a),s+=2;return t?s-e:n};E.text.utf16.decode=function(r){return String.fromCharCode.apply(null,new Uint16Array(r.buffer))};E.deflate=function(r,t,e){if(t=E.decode64(r.deflate(E.encode64(t)).rval),e){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(r,t,e){var n=r.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var eu=function(r,t,e){if(!r)throw new Error("WebStorage not available.");var n;if(e===null?n=r.removeItem(t):(e=E.encode64(JSON.stringify(e)),n=r.setItem(t,e)),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}},ru=function(r,t){if(!r)throw new Error("WebStorage not available.");var e=r.getItem(t);if(r.init)if(e.rval===null){if(e.error){var n=new Error(e.error.message);throw n.id=e.error.id,n.name=e.error.name,n}e=null}else e=e.rval;return e!==null&&(e=JSON.parse(E.decode64(e))),e},Mv=function(r,t,e,n){var i=ru(r,t);i===null&&(i={}),i[e]=n,eu(r,t,i)},Uv=function(r,t,e){var n=ru(r,t);return n!==null&&(n=e in n?n[e]:null),n},Fv=function(r,t,e){var n=ru(r,t);if(n!==null&&e in n){delete n[e];var i=!0;for(var s in n){i=!1;break}i&&(n=null),eu(r,t,n)}},Kv=function(r,t){eu(r,t,null)},$o=function(r,t,e){var n=null;typeof e>"u"&&(e=["web","flash"]);var i,s=!1,o=null;for(var a in e){i=e[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=r.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=r.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(r,t,e,n,i){$o(Mv,arguments,i)};E.getItem=function(r,t,e,n){return $o(Uv,arguments,n)};E.removeItem=function(r,t,e,n){$o(Fv,arguments,n)};E.clearItems=function(r,t,e){$o(Kv,arguments,e)};E.isEmpty=function(r){for(var t in r)if(r.hasOwnProperty(t))return!1;return!0};E.format=function(r){for(var t=/%./g,e,n,i=0,s=[],o=0;e=t.exec(r);){n=r.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.lastIndex;var a=e[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(r.substring(o)),s.join("")};E.formatNumber=function(r,t,e,n){var i=r,s=isNaN(t=Math.abs(t))?2:t,o=e===void 0?",":e,a=n===void 0?".":n,c=i<0?"-":"",l=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",u=l.length>3?l.length%3:0;return c+(u?l.substr(0,u)+a:"")+l.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-l).toFixed(s).slice(2):"")};E.formatSize=function(r){return r>=1073741824?r=E.formatNumber(r/1073741824,2,".","")+" GiB":r>=1048576?r=E.formatNumber(r/1048576,2,".","")+" MiB":r>=1024?r=E.formatNumber(r/1024,0)+" KiB":r=E.formatNumber(r,0)+" bytes",r};E.bytesFromIP=function(r){return r.indexOf(".")!==-1?E.bytesFromIPv4(r):r.indexOf(":")!==-1?E.bytesFromIPv6(r):null};E.bytesFromIPv4=function(r){if(r=r.split("."),r.length!==4)return null;for(var t=E.createBuffer(),e=0;e<r.length;++e){var n=parseInt(r[e],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(r){var t=0;r=r.split(":").filter(function(o){return o.length===0&&++t,!0});for(var e=(8-r.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!r[i]||r[i].length===0){n.fillWithByte(0,e),e=0;continue}var s=E.hexToBytes(r[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(r){return r.length===4?E.bytesToIPv4(r):r.length===16?E.bytesToIPv6(r):null};E.bytesToIPv4=function(r){if(r.length!==4)return null;for(var t=[],e=0;e<r.length;++e)t.push(r.charCodeAt(e));return t.join(".")};E.bytesToIPv6=function(r){if(r.length!==16)return null;for(var t=[],e=[],n=0,i=0;i<r.length;i+=2){for(var s=E.bytesToHex(r[i]+r[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=e[e.length-1],a=t.length;!o||a!==o.end+1?e.push({start:a,end:a}):(o.end=a,o.end-o.start>e[n].end-e[n].start&&(n=e.length-1))}t.push(s)}if(e.length>0){var c=e[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(r,t){if(typeof r=="function"&&(t=r,r={}),r=r||{},"cores"in E&&!r.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.cores);var e=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 l=Math.floor(o.reduce(function(u,f){return u+f},0)/o.length);return E.cores=Math.max(1,l),URL.revokeObjectURL(e),t(null,E.cores)}i(c,function(u,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],l=[],u=0;u<o;++u){var f=new Worker(e);f.addEventListener("message",function(h){if(l.push(h.data),l.length===o){for(var d=0;d<o;++d)c[d].terminate();a(null,l)}}),c.push(f)}for(var u=0;u<o;++u)c[u].postMessage(u)}function s(o,a){for(var c=[],l=0;l<o;++l)for(var u=a[l],f=c[l]=[],h=0;h<o;++h)if(l!==h){var d=a[h];(u.st>d.st&&u.st<d.et||d.st>u.st&&d.st<u.et)&&f.push(h)}return c.reduce(function(p,m){return Math.max(p,m.length)},0)}}});var zo=T((s8,Pp)=>{var ss=ft();ss.pki=ss.pki||{};var nu=Pp.exports=ss.pki.oids=ss.oids=ss.oids||{};function I(r,t){nu[r]=t,nu[t]=r}function ut(r,t){nu[r]=t}I("1.2.840.113549.1.1.1","rsaEncryption");I("1.2.840.113549.1.1.4","md5WithRSAEncryption");I("1.2.840.113549.1.1.5","sha1WithRSAEncryption");I("1.2.840.113549.1.1.7","RSAES-OAEP");I("1.2.840.113549.1.1.8","mgf1");I("1.2.840.113549.1.1.9","pSpecified");I("1.2.840.113549.1.1.10","RSASSA-PSS");I("1.2.840.113549.1.1.11","sha256WithRSAEncryption");I("1.2.840.113549.1.1.12","sha384WithRSAEncryption");I("1.2.840.113549.1.1.13","sha512WithRSAEncryption");I("1.3.101.112","EdDSA25519");I("1.2.840.10040.4.3","dsa-with-sha1");I("1.3.14.3.2.7","desCBC");I("1.3.14.3.2.26","sha1");I("1.3.14.3.2.29","sha1WithRSASignature");I("2.16.840.1.101.3.4.2.1","sha256");I("2.16.840.1.101.3.4.2.2","sha384");I("2.16.840.1.101.3.4.2.3","sha512");I("2.16.840.1.101.3.4.2.4","sha224");I("2.16.840.1.101.3.4.2.5","sha512-224");I("2.16.840.1.101.3.4.2.6","sha512-256");I("1.2.840.113549.2.2","md2");I("1.2.840.113549.2.5","md5");I("1.2.840.113549.1.7.1","data");I("1.2.840.113549.1.7.2","signedData");I("1.2.840.113549.1.7.3","envelopedData");I("1.2.840.113549.1.7.4","signedAndEnvelopedData");I("1.2.840.113549.1.7.5","digestedData");I("1.2.840.113549.1.7.6","encryptedData");I("1.2.840.113549.1.9.1","emailAddress");I("1.2.840.113549.1.9.2","unstructuredName");I("1.2.840.113549.1.9.3","contentType");I("1.2.840.113549.1.9.4","messageDigest");I("1.2.840.113549.1.9.5","signingTime");I("1.2.840.113549.1.9.6","counterSignature");I("1.2.840.113549.1.9.7","challengePassword");I("1.2.840.113549.1.9.8","unstructuredAddress");I("1.2.840.113549.1.9.14","extensionRequest");I("1.2.840.113549.1.9.20","friendlyName");I("1.2.840.113549.1.9.21","localKeyId");I("1.2.840.113549.1.9.22.1","x509Certificate");I("1.2.840.113549.1.12.10.1.1","keyBag");I("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");I("1.2.840.113549.1.12.10.1.3","certBag");I("1.2.840.113549.1.12.10.1.4","crlBag");I("1.2.840.113549.1.12.10.1.5","secretBag");I("1.2.840.113549.1.12.10.1.6","safeContentsBag");I("1.2.840.113549.1.5.13","pkcs5PBES2");I("1.2.840.113549.1.5.12","pkcs5PBKDF2");I("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");I("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");I("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");I("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");I("1.2.840.113549.2.7","hmacWithSHA1");I("1.2.840.113549.2.8","hmacWithSHA224");I("1.2.840.113549.2.9","hmacWithSHA256");I("1.2.840.113549.2.10","hmacWithSHA384");I("1.2.840.113549.2.11","hmacWithSHA512");I("1.2.840.113549.3.7","des-EDE3-CBC");I("2.16.840.1.101.3.4.1.2","aes128-CBC");I("2.16.840.1.101.3.4.1.22","aes192-CBC");I("2.16.840.1.101.3.4.1.42","aes256-CBC");I("2.5.4.3","commonName");I("2.5.4.4","surname");I("2.5.4.5","serialNumber");I("2.5.4.6","countryName");I("2.5.4.7","localityName");I("2.5.4.8","stateOrProvinceName");I("2.5.4.9","streetAddress");I("2.5.4.10","organizationName");I("2.5.4.11","organizationalUnitName");I("2.5.4.12","title");I("2.5.4.13","description");I("2.5.4.15","businessCategory");I("2.5.4.17","postalCode");I("2.5.4.42","givenName");I("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");I("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");I("2.16.840.1.113730.1.1","nsCertType");I("2.16.840.1.113730.1.13","nsComment");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");I("2.5.29.14","subjectKeyIdentifier");I("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");I("2.5.29.17","subjectAltName");I("2.5.29.18","issuerAltName");I("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");I("2.5.29.31","cRLDistributionPoints");I("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");I("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");I("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("2.5.29.54","inhibitAnyPolicy");I("1.3.6.1.4.1.11129.2.4.2","timestampList");I("1.3.6.1.5.5.7.1.1","authorityInfoAccess");I("1.3.6.1.5.5.7.3.1","serverAuth");I("1.3.6.1.5.5.7.3.2","clientAuth");I("1.3.6.1.5.5.7.3.3","codeSigning");I("1.3.6.1.5.5.7.3.4","emailProtection");I("1.3.6.1.5.5.7.3.8","timeStamping")});var as=T((o8,kp)=>{var St=ft();qt();zo();var D=kp.exports=St.asn1=St.asn1||{};D.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};D.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};D.create=function(r,t,e,n,i){if(St.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:r,type:t,constructed:e,composed:e||St.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=D.copy(a)),a};D.copy=function(r,t){var e;if(St.util.isArray(r)){e=[];for(var n=0;n<r.length;++n)e.push(D.copy(r[n],t));return e}return typeof r=="string"?r:(e={tagClass:r.tagClass,type:r.type,constructed:r.constructed,composed:r.composed,value:D.copy(r.value,t)},t&&!t.excludeBitStringContents&&(e.bitStringContents=r.bitStringContents),e)};D.equals=function(r,t,e){if(St.util.isArray(r)){if(!St.util.isArray(t)||r.length!==t.length)return!1;for(var n=0;n<r.length;++n)if(!D.equals(r[n],t[n]))return!1;return!0}if(typeof r!=typeof t)return!1;if(typeof r=="string")return r===t;var i=r.tagClass===t.tagClass&&r.type===t.type&&r.constructed===t.constructed&&r.composed===t.composed&&D.equals(r.value,t.value);return e&&e.includeBitStringContents&&(i=i&&r.bitStringContents===t.bitStringContents),i};D.getBerValueLength=function(r){var t=r.getByte();if(t!==128){var e,n=t&128;return n?e=r.getInt((t&127)<<3):e=t,e}};function os(r,t,e){if(e>t){var n=new Error("Too few bytes to parse DER.");throw n.available=r.length(),n.remaining=t,n.requested=e,n}}var Vv=function(r,t){var e=r.getByte();if(t--,e!==128){var n,i=e&128;if(!i)n=e;else{var s=e&127;os(r,t,s),n=r.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};D.fromDer=function(r,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof r=="string"&&(r=St.util.createBuffer(r));var e=r.length(),n=Ho(r,r.length(),0,t);if(t.parseAllBytes&&r.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=e,i.remaining=r.length(),i}return n};function Ho(r,t,e,n){var i;os(r,t,2);var s=r.getByte();t--;var o=s&192,a=s&31;i=r.length();var c=Vv(r,t);if(t-=i-r.length(),c!==void 0&&c>t){if(n.strict){var l=new Error("Too few bytes to read ASN.1 value.");throw l.available=r.length(),l.remaining=t,l.requested=c,l}c=t}var u,f,h=(s&32)===32;if(h)if(u=[],c===void 0)for(;;){if(os(r,t,2),r.bytes(2)===String.fromCharCode(0,0)){r.getBytes(2),t-=2;break}i=r.length(),u.push(Ho(r,t,e+1,n)),t-=i-r.length()}else for(;c>0;)i=r.length(),u.push(Ho(r,c,e+1,n)),t-=i-r.length(),c-=i-r.length();if(u===void 0&&o===D.Class.UNIVERSAL&&a===D.Type.BITSTRING&&(f=r.bytes(c)),u===void 0&&n.decodeBitStrings&&o===D.Class.UNIVERSAL&&a===D.Type.BITSTRING&&c>1){var d=r.read,p=t,m=0;if(a===D.Type.BITSTRING&&(os(r,t,1),m=r.getByte(),t--),m===0)try{i=r.length();var y={strict:!0,decodeBitStrings:!0},g=Ho(r,t,e+1,y),x=i-r.length();t-=x,a==D.Type.BITSTRING&&x++;var _=g.tagClass;x===c&&(_===D.Class.UNIVERSAL||_===D.Class.CONTEXT_SPECIFIC)&&(u=[g])}catch{}u===void 0&&(r.read=d,t=p)}if(u===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===D.Type.BMPSTRING)for(u="";c>0;c-=2)os(r,t,2),u+=String.fromCharCode(r.getInt16()),t-=2;else u=r.getBytes(c),t-=c}var O=f===void 0?null:{bitStringContents:f};return D.create(o,a,h,u,O)}D.toDer=function(r){var t=St.util.createBuffer(),e=r.tagClass|r.type,n=St.util.createBuffer(),i=!1;if("bitStringContents"in r&&(i=!0,r.original&&(i=D.equals(r,r.original))),i)n.putBytes(r.bitStringContents);else if(r.composed){r.constructed?e|=32:n.putByte(0);for(var s=0;s<r.value.length;++s)r.value[s]!==void 0&&n.putBuffer(D.toDer(r.value[s]))}else if(r.type===D.Type.BMPSTRING)for(var s=0;s<r.value.length;++s)n.putInt16(r.value.charCodeAt(s));else r.type===D.Type.INTEGER&&r.value.length>1&&(r.value.charCodeAt(0)===0&&!(r.value.charCodeAt(1)&128)||r.value.charCodeAt(0)===255&&(r.value.charCodeAt(1)&128)===128)?n.putBytes(r.value.substr(1)):n.putBytes(r.value);if(t.putByte(e),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};D.oidToDer=function(r){var t=r.split("."),e=St.util.createBuffer();e.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)e.putByte(i[c])}return e};D.derToOid=function(r){var t;typeof r=="string"&&(r=St.util.createBuffer(r));var e=r.getByte();t=Math.floor(e/40)+"."+e%40;for(var n=0;r.length()>0;)e=r.getByte(),n=n<<7,e&128?n+=e&127:(t+="."+(n+e),n=0);return t};D.utcTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,2),10);e=e>=50?1900+e:2e3+e;var n=parseInt(r.substr(2,2),10)-1,i=parseInt(r.substr(4,2),10),s=parseInt(r.substr(6,2),10),o=parseInt(r.substr(8,2),10),a=0;if(r.length>11){var c=r.charAt(10),l=10;c!=="+"&&c!=="-"&&(a=parseInt(r.substr(10,2),10),l+=2)}if(t.setUTCFullYear(e,n,i),t.setUTCHours(s,o,a,0),l&&(c=r.charAt(l),c==="+"||c==="-")){var u=parseInt(r.substr(l+1,2),10),f=parseInt(r.substr(l+4,2),10),h=u*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};D.generalizedTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,4),10),n=parseInt(r.substr(4,2),10)-1,i=parseInt(r.substr(6,2),10),s=parseInt(r.substr(8,2),10),o=parseInt(r.substr(10,2),10),a=parseInt(r.substr(12,2),10),c=0,l=0,u=!1;r.charAt(r.length-1)==="Z"&&(u=!0);var f=r.length-5,h=r.charAt(f);if(h==="+"||h==="-"){var d=parseInt(r.substr(f+1,2),10),p=parseInt(r.substr(f+4,2),10);l=d*60+p,l*=6e4,h==="+"&&(l*=-1),u=!0}return r.charAt(14)==="."&&(c=parseFloat(r.substr(14),10)*1e3),u?(t.setUTCFullYear(e,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+l)):(t.setFullYear(e,n,i),t.setHours(s,o,a,c)),t};D.dateToUtcTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push((""+r.getUTCFullYear()).substr(2)),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};D.dateToGeneralizedTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push(""+r.getUTCFullYear()),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};D.integerToDer=function(r){var t=St.util.createBuffer();if(r>=-128&&r<128)return t.putSignedInt(r,8);if(r>=-32768&&r<32768)return t.putSignedInt(r,16);if(r>=-8388608&&r<8388608)return t.putSignedInt(r,24);if(r>=-2147483648&&r<2147483648)return t.putSignedInt(r,32);var e=new Error("Integer too large; max is 32-bits.");throw e.integer=r,e};D.derToInteger=function(r){typeof r=="string"&&(r=St.util.createBuffer(r));var t=r.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return r.getSignedInt(t)};D.validate=function(r,t,e,n){var i=!1;if((r.tagClass===t.tagClass||typeof t.tagClass>"u")&&(r.type===t.type||typeof t.type>"u"))if(r.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&St.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,r.value[s]&&(i=D.validate(r.value[s],t.value[o],e,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+r.value.length+'"');if(i&&e&&(t.capture&&(e[t.capture]=r.value),t.captureAsn1&&(e[t.captureAsn1]=r),t.captureBitStringContents&&"bitStringContents"in r&&(e[t.captureBitStringContents]=r.bitStringContents),t.captureBitStringValue&&"bitStringContents"in r)){var a;if(r.bitStringContents.length<2)e[t.captureBitStringValue]="";else{var c=r.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");e[t.captureBitStringValue]=r.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+r.constructed+'"');else n&&(r.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+r.tagClass+'"'),r.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+r.type+'"'));return i};var Np=/[^\\u0000-\\u00ff]/;D.prettyPrint=function(r,t,e){var n="";t=t||0,e=e||2,t>0&&(n+=`
28
- `);for(var i="",s=0;s<t*e;++s)i+=" ";switch(n+=i+"Tag: ",r.tagClass){case D.Class.UNIVERSAL:n+="Universal:";break;case D.Class.APPLICATION:n+="Application:";break;case D.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case D.Class.PRIVATE:n+="Private:";break}if(r.tagClass===D.Class.UNIVERSAL)switch(n+=r.type,r.type){case D.Type.NONE:n+=" (None)";break;case D.Type.BOOLEAN:n+=" (Boolean)";break;case D.Type.INTEGER:n+=" (Integer)";break;case D.Type.BITSTRING:n+=" (Bit string)";break;case D.Type.OCTETSTRING:n+=" (Octet string)";break;case D.Type.NULL:n+=" (Null)";break;case D.Type.OID:n+=" (Object Identifier)";break;case D.Type.ODESC:n+=" (Object Descriptor)";break;case D.Type.EXTERNAL:n+=" (External or Instance of)";break;case D.Type.REAL:n+=" (Real)";break;case D.Type.ENUMERATED:n+=" (Enumerated)";break;case D.Type.EMBEDDED:n+=" (Embedded PDV)";break;case D.Type.UTF8:n+=" (UTF8)";break;case D.Type.ROID:n+=" (Relative Object Identifier)";break;case D.Type.SEQUENCE:n+=" (Sequence)";break;case D.Type.SET:n+=" (Set)";break;case D.Type.PRINTABLESTRING:n+=" (Printable String)";break;case D.Type.IA5String:n+=" (IA5String (ASCII))";break;case D.Type.UTCTIME:n+=" (UTC time)";break;case D.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case D.Type.BMPSTRING:n+=" (BMP String)";break}else n+=r.type;if(n+=`
29
- `,n+=i+"Constructed: "+r.constructed+`
30
- `,r.composed){for(var o=0,a="",s=0;s<r.value.length;++s)r.value[s]!==void 0&&(o+=1,a+=D.prettyPrint(r.value[s],t+1,e),s+1<r.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",r.type===D.Type.OID){var c=D.derToOid(r.value);n+=c,St.pki&&St.pki.oids&&c in St.pki.oids&&(n+=" ("+St.pki.oids[c]+") ")}if(r.type===D.Type.INTEGER)try{n+=D.derToInteger(r.value)}catch{n+="0x"+St.util.bytesToHex(r.value)}else if(r.type===D.Type.BITSTRING){if(r.value.length>1?n+="0x"+St.util.bytesToHex(r.value.slice(1)):n+="(none)",r.value.length>0){var l=r.value.charCodeAt(0);l==1?n+=" (1 unused bit shown)":l>1&&(n+=" ("+l+" unused bits shown)")}}else if(r.type===D.Type.OCTETSTRING)Np.test(r.value)||(n+="("+r.value+") "),n+="0x"+St.util.bytesToHex(r.value);else if(r.type===D.Type.UTF8)try{n+=St.util.decodeUtf8(r.value)}catch(u){if(u.message==="URI malformed")n+="0x"+St.util.bytesToHex(r.value)+" (malformed UTF8)";else throw u}else r.type===D.Type.PRINTABLESTRING||r.type===D.Type.IA5String?n+=r.value:Np.test(r.value)?n+="0x"+St.util.bytesToHex(r.value):r.value.length===0?n+="[null]":n+=r.value}return n}});var su=T((a8,Op)=>{var jt=ft();qt();Op.exports=jt.cipher=jt.cipher||{};jt.cipher.algorithms=jt.cipher.algorithms||{};jt.cipher.createCipher=function(r,t){var e=r;if(typeof e=="string"&&(e=jt.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new jt.cipher.BlockCipher({algorithm:e,key:t,decrypt:!1})};jt.cipher.createDecipher=function(r,t){var e=r;if(typeof e=="string"&&(e=jt.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new jt.cipher.BlockCipher({algorithm:e,key:t,decrypt:!0})};jt.cipher.registerAlgorithm=function(r,t){r=r.toUpperCase(),jt.cipher.algorithms[r]=t};jt.cipher.getAlgorithm=function(r){return r=r.toUpperCase(),r in jt.cipher.algorithms?jt.cipher.algorithms[r]:null};var iu=jt.cipher.BlockCipher=function(r){this.algorithm=r.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=r.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=r.decrypt,this.algorithm.initialize(r)};iu.prototype.start=function(r){r=r||{};var t={};for(var e in r)t[e]=r[e];t.decrypt=this._decrypt,this._finish=!1,this._input=jt.util.createBuffer(),this.output=r.output||jt.util.createBuffer(),this.mode.start(t)};iu.prototype.update=function(r){for(r&&this._input.putBuffer(r);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};iu.prototype.finish=function(r){r&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(e){return r(this.blockSize,e,!1)},this.mode.unpad=function(e){return r(this.blockSize,e,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var au=T((c8,Mp)=>{var te=ft();qt();te.cipher=te.cipher||{};var Q=Mp.exports=te.cipher.modes=te.cipher.modes||{};Q.ecb=function(r){r=r||{},this.name="ECB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Q.ecb.prototype.start=function(r){};Q.ecb.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Q.ecb.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Q.ecb.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Q.ecb.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Q.cbc=function(r){r=r||{},this.name="CBC",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Q.cbc.prototype.start=function(r){if(r.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in r)this._iv=Go(r.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Q.cbc.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};Q.cbc.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Q.cbc.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Q.cbc.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Q.cfb=function(r){r=r||{},this.name="CFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.cfb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Go(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.cfb.prototype.encrypt=function(r,t,e){var n=r.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]=r.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)r.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&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.cfb.prototype.decrypt=function(r,t,e){var n=r.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]=r.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)r.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&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.ofb=function(r){r=r||{},this.name="OFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.ofb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Go(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.ofb.prototype.encrypt=function(r,t,e){var n=r.length();if(r.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(r.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(r.getInt32()^this._outBlock[i]);if(s>0)r.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&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.ofb.prototype.decrypt=Q.ofb.prototype.encrypt;Q.ctr=function(r){r=r||{},this.name="CTR",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.ctr.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Go(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.ctr.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(r.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(r.getInt32()^this._outBlock[i]);if(s>0&&(r.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Yo(this._inBlock)};Q.ctr.prototype.decrypt=Q.ctr.prototype.encrypt;Q.gcm=function(r){r=r||{},this.name="GCM",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Q.gcm.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");var t=te.util.createBuffer(r.iv);this._cipherLength=0;var e;if("additionalData"in r?e=te.util.createBuffer(r.additionalData):e=te.util.createBuffer(),"tagLength"in r?this._tagLength=r.tagLength:this._tagLength=128,this._tag=null,r.decrypt&&(this._tag=te.util.createBuffer(r.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(ou(n*8)))}this._inBlock=this._j0.slice(0),Yo(this._inBlock),this._partialBytes=0,e=te.util.createBuffer(e),this._aDataLength=ou(e.length()*8);var i=e.length()%this.blockSize;for(i&&e.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])};Q.gcm.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=r.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(r.getInt32()^this._outBlock[i]);if(s<=0||e){if(e){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&&!e)return r.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Yo(this._inBlock)};Q.gcm.prototype.decrypt=function(r,t,e){var n=r.length();if(n<this.blockSize&&!(e&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Yo(this._inBlock),this._hashBlock[0]=r.getInt32(),this._hashBlock[1]=r.getInt32(),this._hashBlock[2]=r.getInt32(),this._hashBlock[3]=r.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};Q.gcm.prototype.afterFinish=function(r,t){var e=!0;t.decrypt&&t.overflow&&r.truncate(this.blockSize-t.overflow),this.tag=te.util.createBuffer();var n=this._aDataLength.concat(ou(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(e=!1),e};Q.gcm.prototype.multiply=function(r,t){for(var e=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=r[i/32|0]&1<<31-i%32;s&&(e[0]^=n[0],e[1]^=n[1],e[2]^=n[2],e[3]^=n[3]),this.pow(n,n)}return e};Q.gcm.prototype.pow=function(r,t){for(var e=r[3]&1,n=3;n>0;--n)t[n]=r[n]>>>1|(r[n-1]&1)<<31;t[0]=r[0]>>>1,e&&(t[0]^=this._R)};Q.gcm.prototype.tableMultiply=function(r){for(var t=[0,0,0,0],e=0;e<32;++e){var n=e/8|0,i=r[n]>>>(7-e%8)*4&15,s=this._m[e][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};Q.gcm.prototype.ghash=function(r,t,e){return t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3],this.tableMultiply(t)};Q.gcm.prototype.generateHashTable=function(r,t){for(var e=8/t,n=4*e,i=16*e,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,l=(n-1-o%n)*t;a[c]=1<<t-1<<l,s[o]=this.generateSubHashTable(this.multiply(a,r),t)}return s};Q.gcm.prototype.generateSubHashTable=function(r,t){var e=1<<t,n=e>>>1,i=new Array(e);i[n]=r.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<e;++s){var l=i[s^n];i[s]=[r[0]^l[0],r[1]^l[1],r[2]^l[2],r[3]^l[3]]}return i};function Go(r,t){if(typeof r=="string"&&(r=te.util.createBuffer(r)),te.util.isArray(r)&&r.length>4){var e=r;r=te.util.createBuffer();for(var n=0;n<e.length;++n)r.putByte(e[n])}if(r.length()<t)throw new Error("Invalid IV length; got "+r.length()+" bytes and expected "+t+" bytes.");if(!te.util.isArray(r)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(r.getInt32());r=i}return r}function Yo(r){r[r.length-1]=r[r.length-1]+1&4294967295}function ou(r){return[r/4294967296|0,r&4294967295]}});var Qo=T((l8,Vp)=>{var vt=ft();su();au();qt();Vp.exports=vt.aes=vt.aes||{};vt.aes.startEncrypting=function(r,t,e,n){var i=Wo({key:r,output:e,decrypt:!1,mode:n});return i.start(t),i};vt.aes.createEncryptionCipher=function(r,t){return Wo({key:r,output:null,decrypt:!1,mode:t})};vt.aes.startDecrypting=function(r,t,e,n){var i=Wo({key:r,output:e,decrypt:!0,mode:n});return i.start(t),i};vt.aes.createDecryptionCipher=function(r,t){return Wo({key:r,output:null,decrypt:!0,mode:t})};vt.aes.Algorithm=function(r,t){uu||Fp();var e=this;e.name=r,e.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return lu(e._w,n,i,!1)},decrypt:function(n,i){return lu(e._w,n,i,!0)}}}),e._init=!1};vt.aes.Algorithm.prototype.initialize=function(r){if(!this._init){var t=r.key,e;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=vt.util.createBuffer(t);else if(vt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){e=t,t=vt.util.createBuffer();for(var n=0;n<e.length;++n)t.putByte(e[n])}if(!vt.util.isArray(t)){e=t,t=[];var i=e.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(e.getInt32())}}if(!vt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Kp(t,r.decrypt&&!o),this._init=!0}};vt.aes._expandKey=function(r,t){return uu||Fp(),Kp(r,t)};vt.aes._updateBlock=lu;Si("AES-ECB",vt.cipher.modes.ecb);Si("AES-CBC",vt.cipher.modes.cbc);Si("AES-CFB",vt.cipher.modes.cfb);Si("AES-OFB",vt.cipher.modes.ofb);Si("AES-CTR",vt.cipher.modes.ctr);Si("AES-GCM",vt.cipher.modes.gcm);function Si(r,t){var e=function(){return new vt.aes.Algorithm(r,t)};vt.cipher.registerAlgorithm(r,e)}var uu=!1,_i=4,ce,cu,Up,Bn,$e;function Fp(){uu=!0,Up=[0,1,2,4,8,16,32,64,128,27,54];for(var r=new Array(256),t=0;t<128;++t)r[t]=t<<1,r[t+128]=t+128<<1^283;ce=new Array(256),cu=new Array(256),Bn=new Array(4),$e=new Array(4);for(var t=0;t<4;++t)Bn[t]=new Array(256),$e[t]=new Array(256);for(var e=0,n=0,i,s,o,a,c,l,u,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,ce[e]=a,cu[a]=e,c=r[a],i=r[e],s=r[i],o=r[s],l=c<<24^a<<16^a<<8^(a^c),u=(i^s^o)<<24^(e^o)<<16^(e^s^o)<<8^(e^i^o);for(var f=0;f<4;++f)Bn[f][e]=l,$e[f][a]=u,l=l<<24|l>>>8,u=u<<24|u>>>8;e===0?e=n=1:(e=i^r[r[r[i^o]]],n^=r[r[n]])}}function Kp(r,t){for(var e=r.slice(0),n,i=1,s=e.length,o=s+6+1,a=_i*o,c=s;c<a;++c)n=e[c-1],c%s===0?(n=ce[n>>>16&255]<<24^ce[n>>>8&255]<<16^ce[n&255]<<8^ce[n>>>24]^Up[i]<<24,i++):s>6&&c%s===4&&(n=ce[n>>>24]<<24^ce[n>>>16&255]<<16^ce[n>>>8&255]<<8^ce[n&255]),e[c]=e[c-s]^n;if(t){var l,u=$e[0],f=$e[1],h=$e[2],d=$e[3],p=e.slice(0);a=e.length;for(var c=0,m=a-_i;c<a;c+=_i,m-=_i)if(c===0||c===a-_i)p[c]=e[m],p[c+1]=e[m+3],p[c+2]=e[m+2],p[c+3]=e[m+1];else for(var y=0;y<_i;++y)l=e[m+y],p[c+(3&-y)]=u[ce[l>>>24]]^f[ce[l>>>16&255]]^h[ce[l>>>8&255]]^d[ce[l&255]];e=p}return e}function lu(r,t,e,n){var i=r.length/4-1,s,o,a,c,l;n?(s=$e[0],o=$e[1],a=$e[2],c=$e[3],l=cu):(s=Bn[0],o=Bn[1],a=Bn[2],c=Bn[3],l=ce);var u,f,h,d,p,m,y;u=t[0]^r[0],f=t[n?3:1]^r[1],h=t[2]^r[2],d=t[n?1:3]^r[3];for(var g=3,x=1;x<i;++x)p=s[u>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[d&255]^r[++g],m=s[f>>>24]^o[h>>>16&255]^a[d>>>8&255]^c[u&255]^r[++g],y=s[h>>>24]^o[d>>>16&255]^a[u>>>8&255]^c[f&255]^r[++g],d=s[d>>>24]^o[u>>>16&255]^a[f>>>8&255]^c[h&255]^r[++g],u=p,f=m,h=y;e[0]=l[u>>>24]<<24^l[f>>>16&255]<<16^l[h>>>8&255]<<8^l[d&255]^r[++g],e[n?3:1]=l[f>>>24]<<24^l[h>>>16&255]<<16^l[d>>>8&255]<<8^l[u&255]^r[++g],e[2]=l[h>>>24]<<24^l[d>>>16&255]<<16^l[u>>>8&255]<<8^l[f&255]^r[++g],e[n?1:3]=l[d>>>24]<<24^l[u>>>16&255]<<16^l[f>>>8&255]<<8^l[h&255]^r[++g]}function Wo(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="AES-"+t,n;r.decrypt?n=vt.cipher.createDecipher(e,r.key):n=vt.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof vt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var zp=T((u8,$p)=>{var Ct=ft();su();au();qt();$p.exports=Ct.des=Ct.des||{};Ct.des.startEncrypting=function(r,t,e,n){var i=Xo({key:r,output:e,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createEncryptionCipher=function(r,t){return Xo({key:r,output:null,decrypt:!1,mode:t})};Ct.des.startDecrypting=function(r,t,e,n){var i=Xo({key:r,output:e,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createDecryptionCipher=function(r,t){return Xo({key:r,output:null,decrypt:!0,mode:t})};Ct.des.Algorithm=function(r,t){var e=this;e.name=r,e.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return qp(e._keys,n,i,!1)},decrypt:function(n,i){return qp(e._keys,n,i,!0)}}}),e._init=!1};Ct.des.Algorithm.prototype.initialize=function(r){if(!this._init){var t=Ct.util.createBuffer(r.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Xv(t),this._init=!0}};or("DES-ECB",Ct.cipher.modes.ecb);or("DES-CBC",Ct.cipher.modes.cbc);or("DES-CFB",Ct.cipher.modes.cfb);or("DES-OFB",Ct.cipher.modes.ofb);or("DES-CTR",Ct.cipher.modes.ctr);or("3DES-ECB",Ct.cipher.modes.ecb);or("3DES-CBC",Ct.cipher.modes.cbc);or("3DES-CFB",Ct.cipher.modes.cfb);or("3DES-OFB",Ct.cipher.modes.ofb);or("3DES-CTR",Ct.cipher.modes.ctr);function or(r,t){var e=function(){return new Ct.des.Algorithm(r,t)};Ct.cipher.registerAlgorithm(r,e)}var qv=[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],$v=[-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],zv=[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],Hv=[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],Gv=[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],Yv=[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],Wv=[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],Qv=[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 Xv(r){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],e=[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],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[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],m=r.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,_,O=0;O<m;O++){var C=r.getInt32(),B=r.getInt32();_=(C>>>4^B)&252645135,B^=_,C^=_<<4,_=(B>>>-16^C)&65535,C^=_,B^=_<<-16,_=(C>>>2^B)&858993459,B^=_,C^=_<<2,_=(B>>>-16^C)&65535,C^=_,B^=_<<-16,_=(C>>>1^B)&1431655765,B^=_,C^=_<<1,_=(B>>>8^C)&16711935,C^=_,B^=_<<8,_=(C>>>1^B)&1431655765,B^=_,C^=_<<1,_=C<<8|B>>>20&240,C=B<<24|B<<8&16711680|B>>>8&65280|B>>>24&240,B=_;for(var X=0;X<g.length;++X){g[X]?(C=C<<2|C>>>26,B=B<<2|B>>>26):(C=C<<1|C>>>27,B=B<<1|B>>>27),C&=-15,B&=-15;var J=t[C>>>28]|e[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|s[C>>>12&15]|o[C>>>8&15]|a[C>>>4&15],Xt=c[B>>>28]|l[B>>>24&15]|u[B>>>20&15]|f[B>>>16&15]|h[B>>>12&15]|d[B>>>8&15]|p[B>>>4&15];_=(Xt>>>16^J)&65535,y[x++]=J^_,y[x++]=Xt^_<<16}}return y}function qp(r,t,e,n){var i=r.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=t[0],c=t[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var l=0;l<i;l+=3){for(var u=s[l+1],f=s[l+2],h=s[l];h!=u;h+=f){var d=c^r[h],p=(c>>>4|c<<28)^r[h+1];o=a,a=c,c=o^($v[d>>>24&63]|Hv[d>>>16&63]|Yv[d>>>8&63]|Qv[d&63]|qv[p>>>24&63]|zv[p>>>16&63]|Gv[p>>>8&63]|Wv[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,e[0]=a,e[1]=c}function Xo(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="DES-"+t,n;r.decrypt?n=Ct.cipher.createDecipher(e,r.key):n=Ct.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Ct.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Dn=T((f8,Hp)=>{var Zo=ft();Hp.exports=Zo.md=Zo.md||{};Zo.md.algorithms=Zo.md.algorithms||{}});var Yp=T((h8,Gp)=>{var Tr=ft();Dn();qt();var Zv=Gp.exports=Tr.hmac=Tr.hmac||{};Zv.create=function(){var r=null,t=null,e=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Tr.md.algorithms)t=Tr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=r;else{if(typeof o=="string")o=Tr.util.createBuffer(o);else if(Tr.util.isArray(o)){var a=o;o=Tr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var l=o.length();l>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),e=Tr.util.createBuffer(),n=Tr.util.createBuffer(),l=o.length();for(var c=0;c<l;++c){var a=o.at(c);e.putByte(54^a),n.putByte(92^a)}if(l<t.blockLength)for(var a=t.blockLength-l,c=0;c<a;++c)e.putByte(54),n.putByte(92);r=o,e=e.bytes(),n=n.bytes()}t.start(),t.update(e)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var fu=T((d8,Wp)=>{var le=ft();Yp();Dn();qt();var Jv=le.pkcs5=le.pkcs5||{},Cr;le.util.isNodejs&&!le.options.usePureJavaScript&&(Cr=Rn());Wp.exports=le.pbkdf2=Jv.pbkdf2=function(r,t,e,n,i,s){if(typeof i=="function"&&(s=i,i=null),le.util.isNodejs&&!le.options.usePureJavaScript&&Cr.pbkdf2&&(i===null||typeof i!="object")&&(Cr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),r=Buffer.from(r,"binary"),t=Buffer.from(t,"binary"),s?Cr.pbkdf2Sync.length===4?Cr.pbkdf2(r,t,e,n,function(_,O){if(_)return s(_);s(null,O.toString("binary"))}):Cr.pbkdf2(r,t,e,n,i,function(_,O){if(_)return s(_);s(null,O.toString("binary"))}):Cr.pbkdf2Sync.length===4?Cr.pbkdf2Sync(r,t,e,n).toString("binary"):Cr.pbkdf2Sync(r,t,e,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in le.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=le.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),l=n-(c-1)*o,u=le.hmac.create();u.start(i,r);var f="",h,d,p;if(!s){for(var m=1;m<=c;++m){u.start(null,null),u.update(t),u.update(le.util.int32ToBytes(m)),h=p=u.digest().getBytes();for(var y=2;y<=e;++y)u.start(null,null),u.update(p),d=u.digest().getBytes(),h=le.util.xorBytes(h,d,o),p=d;f+=m<c?h:h.substr(0,l)}return f}var m=1,y;function g(){if(m>c)return s(null,f);u.start(null,null),u.update(t),u.update(le.util.int32ToBytes(m)),h=p=u.digest().getBytes(),y=2,x()}function x(){if(y<=e)return u.start(null,null),u.update(p),d=u.digest().getBytes(),h=le.util.xorBytes(h,d,o),p=d,++y,le.util.setImmediate(x);f+=m<c?h:h.substr(0,l),++m,g()}g()}});var Zp=T((p8,Xp)=>{var jo=ft();qt();var Qp=Xp.exports=jo.pem=jo.pem||{};Qp.encode=function(r,t){t=t||{};var e="-----BEGIN "+r.type+`-----\r
31
- `,n;if(r.procType&&(n={name:"Proc-Type",values:[String(r.procType.version),r.procType.type]},e+=Jo(n)),r.contentDomain&&(n={name:"Content-Domain",values:[r.contentDomain]},e+=Jo(n)),r.dekInfo&&(n={name:"DEK-Info",values:[r.dekInfo.algorithm]},r.dekInfo.parameters&&n.values.push(r.dekInfo.parameters),e+=Jo(n)),r.headers)for(var i=0;i<r.headers.length;++i)e+=Jo(r.headers[i]);return r.procType&&(e+=`\r
32
- `),e+=jo.util.encode64(r.body,t.maxline||64)+`\r
33
- `,e+="-----END "+r.type+`-----\r
34
- `,e};Qp.decode=function(r){for(var t=[],e=/\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=e.exec(r),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:jo.util.decode64(s[3])};if(t.push(a),!!s[2]){for(var c=s[2].split(i),l=0;s&&l<c.length;){for(var u=c[l].replace(/\s+$/,""),f=l+1;f<c.length;++f){var h=c[f];if(!/\s/.test(h[0]))break;u+=h,l=f}if(s=u.match(n),s){for(var d={name:s[1],values:[]},p=s[2].split(","),m=0;m<p.length;++m)d.values.push(jv(p[m]));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]}}}++l}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Jo(r){for(var t=r.name+": ",e=[],n=function(c,l){return" "+l},i=0;i<r.values.length;++i)e.push(r.values[i].replace(/^(\S+\r\n)/,n));t+=e.join(",")+`\r
35
- `;for(var s=0,o=-1,i=0;i<t.length;++i,++s)if(s>65&&o!==-1){var a=t[o];a===","?(++o,t=t.substr(0,o)+`\r
36
- `+t.substr(o)):t=t.substr(0,o)+`\r
37
- `+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function jv(r){return r.replace(/^\s+/,"")}});var nm=T((m8,rm)=>{var ar=ft();Dn();qt();var jp=rm.exports=ar.sha256=ar.sha256||{};ar.md.sha256=ar.md.algorithms.sha256=jp;jp.create=function(){tm||t2();var r=null,t=ar.util.createBuffer(),e=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=ar.util.createBuffer(),r={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=ar.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),Jp(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=ar.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(hu.substr(0,n.blockLength-o));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4,h5:r.h5,h6:r.h6,h7:r.h7};Jp(f,e,i);var h=ar.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var hu=null,tm=!1,em=null;function t2(){hu=String.fromCharCode(128),hu+=ar.util.fillString(String.fromCharCode(0),64),em=[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],tm=!0}function Jp(r,t,e){for(var n,i,s,o,a,c,l,u,f,h,d,p,m,y,g,x=e.length();x>=64;){for(l=0;l<16;++l)t[l]=e.getInt32();for(;l<64;++l)n=t[l-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[l-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[l]=n+t[l-7]+i+t[l-16]|0;for(u=r.h0,f=r.h1,h=r.h2,d=r.h3,p=r.h4,m=r.h5,y=r.h6,g=r.h7,l=0;l<64;++l)o=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),s=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),c=u&f|h&(u^f),n=g+o+a+em[l]+t[l],i=s+c,g=y,y=m,m=p,p=d+n>>>0,d=h,h=f,f=u,u=n+i>>>0;r.h0=r.h0+u|0,r.h1=r.h1+f|0,r.h2=r.h2+h|0,r.h3=r.h3+d|0,r.h4=r.h4+p|0,r.h5=r.h5+m|0,r.h6=r.h6+y|0,r.h7=r.h7+g|0,x-=64}}});var sm=T((y8,im)=>{var cr=ft();qt();var ta=null;cr.util.isNodejs&&!cr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(ta=Rn());var e2=im.exports=cr.prng=cr.prng||{};e2.create=function(r){for(var t={plugin:r,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},e=r.md,n=new Array(32),i=0;i<32;++i)n[i]=e.create();t.pools=n,t.pool=0,t.generate=function(l,u){if(!u)return t.generateSync(l);var f=t.plugin.cipher,h=t.plugin.increment,d=t.plugin.formatKey,p=t.plugin.formatSeed,m=cr.util.createBuffer();t.key=null,y();function y(g){if(g)return u(g);if(m.length()>=l)return u(null,m.getBytes(l));if(t.generated>1048575&&(t.key=null),t.key===null)return cr.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=d(f(t.key,h(t.seed))),t.seed=p(f(t.key,t.seed)),cr.util.setImmediate(y)}},t.generateSync=function(l){var u=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var p=cr.util.createBuffer();p.length()<l;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=u(t.key,t.seed);t.generated+=m.length,p.putBytes(m),t.key=h(u(t.key,f(t.seed))),t.seed=d(u(t.key,t.seed))}return p.getBytes(l)};function s(l){if(t.pools[0].messageLength>=32)return a(),l();var u=32-t.pools[0].messageLength<<5;t.seedFile(u,function(f,h){if(f)return l(f);t.collect(h),a(),l()})}function o(){if(t.pools[0].messageLength>=32)return a();var l=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(l)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var l=t.plugin.md.create();l.update(t.keyBytes);for(var u=1,f=0;f<32;++f)t.reseeds%u===0&&(l.update(t.pools[f].digest().getBytes()),t.pools[f].start()),u=u<<1;t.keyBytes=l.digest().getBytes(),l.start(),l.update(t.keyBytes);var h=l.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(l){var u=null,f=cr.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(u=function(C){return h.getRandomValues(C)});var d=cr.util.createBuffer();if(u)for(;d.length()<l;){var p=Math.max(1,Math.min(l-d.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{u(m);for(var y=0;y<m.length;++y)d.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(d.length()<l)for(var g,x,_,O=Math.floor(Math.random()*65536);d.length()<l;){x=16807*(O&65535),g=16807*(O>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),O=x&4294967295;for(var y=0;y<3;++y)_=O>>>(y<<3),_^=Math.floor(Math.random()*256),d.putByte(_&255)}return d.getBytes(l)}return ta?(t.seedFile=function(l,u){ta.randomBytes(l,function(f,h){if(f)return u(f);u(null,h.toString())})},t.seedFileSync=function(l){return ta.randomBytes(l).toString()}):(t.seedFile=function(l,u){try{u(null,c(l))}catch(f){u(f)}},t.seedFileSync=c),t.collect=function(l){for(var u=l.length,f=0;f<u;++f)t.pools[t.pool].update(l.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(l,u){for(var f="",h=0;h<u;h+=8)f+=String.fromCharCode(l>>h&255);t.collect(f)},t.registerWorker=function(l){if(l===self)t.seedFile=function(f,h){function d(p){var m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",d),h(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:f}}})};else{var u=function(f){var h=f.data;h.forge&&h.forge.prng&&t.seedFile(h.forge.prng.needed,function(d,p){l.postMessage({forge:{prng:{err:d,bytes:p}}})})};l.addEventListener("message",u)}},t}});var cs=T((g8,du)=>{var ee=ft();Qo();nm();sm();qt();(function(){if(ee.random&&ee.random.getBytes){du.exports=ee.random;return}(function(r){var t={},e=new Array(4),n=ee.util.createBuffer();t.formatKey=function(f){var h=ee.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),ee.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=ee.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),f},t.cipher=function(f,h){return ee.aes._updateBlock(f,h,e,!1),n.putInt32(e[0]),n.putInt32(e[1]),n.putInt32(e[2]),n.putInt32(e[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=ee.md.sha256;function i(){var f=ee.prng.create(t);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=ee.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),ee.options.usePureJavaScript||!ee.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var l="";for(var u in navigator)try{typeof navigator[u]=="string"&&(l+=navigator[u])}catch{}s.collect(l),l=null}r&&(r().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),r().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!ee.random)ee.random=s;else for(var u in s)ee.random[u]=s[u];ee.random.createInstance=i,du.exports=ee.random})(typeof jQuery<"u"?jQuery:null)})()});var lm=T((w8,cm)=>{var he=ft();qt();var pu=[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],om=[1,2,3,5],r2=function(r,t){return r<<t&65535|(r&65535)>>16-t},n2=function(r,t){return(r&65535)>>t|r<<16-t&65535};cm.exports=he.rc2=he.rc2||{};he.rc2.expandKey=function(r,t){typeof r=="string"&&(r=he.util.createBuffer(r)),t=t||128;var e=r,n=r.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)e.putByte(pu[e.at(a-1)+e.at(a-n)&255]);for(e.setAt(128-s,pu[e.at(128-s)&o]),a=127-s;a>=0;a--)e.setAt(a,pu[e.at(a+1)^e.at(a+s)]);return e};var am=function(r,t,e){var n=!1,i=null,s=null,o=null,a,c,l,u,f=[];for(r=he.rc2.expandKey(r,t),l=0;l<64;l++)f.push(r.getInt16Le());e?(a=function(p){for(l=0;l<4;l++)p[l]+=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),p[l]=r2(p[l],om[l]),u++},c=function(p){for(l=0;l<4;l++)p[l]+=f[p[(l+3)%4]&63]}):(a=function(p){for(l=3;l>=0;l--)p[l]=n2(p[l],om[l]),p[l]-=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),u--},c=function(p){for(l=3;l>=0;l--)p[l]-=f[p[(l+3)%4]&63]});var h=function(p){var m=[];for(l=0;l<4;l++){var y=i.getInt16Le();o!==null&&(e?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}u=e?0:63;for(var g=0;g<p.length;g++)for(var x=0;x<p[g][0];x++)p[g][1](m);for(l=0;l<4;l++)o!==null&&(e?o.putInt16Le(m[l]):m[l]^=o.getInt16Le()),s.putInt16Le(m[l])},d=null;return d={start:function(p,m){p&&typeof p=="string"&&(p=he.util.createBuffer(p)),n=!1,i=he.util.createBuffer(),s=m||new he.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 m=!0;if(e)if(p)m=p(8,i,!e);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,d.update()),!e&&(m=i.length()===0,m))if(p)m=p(8,s,!e);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},d};he.rc2.startEncrypting=function(r,t,e){var n=he.rc2.createEncryptionCipher(r,128);return n.start(t,e),n};he.rc2.createEncryptionCipher=function(r,t){return am(r,t,!0)};he.rc2.startDecrypting=function(r,t,e){var n=he.rc2.createDecryptionCipher(r,128);return n.start(t,e),n};he.rc2.createDecryptionCipher=function(r,t){return am(r,t,!1)}});var na=T((E8,gm)=>{var mu=ft();gm.exports=mu.jsbn=mu.jsbn||{};var Br,i2=0xdeadbeefcafe,um=(i2&16777215)==15715070;function A(r,t,e){this.data=[],r!=null&&(typeof r=="number"?this.fromNumber(r,t,e):t==null&&typeof r!="string"?this.fromString(r,256):this.fromString(r,t))}mu.jsbn.BigInteger=A;function st(){return new A(null)}function s2(r,t,e,n,i,s){for(;--s>=0;){var o=t*this.data[r++]+e.data[n]+i;i=Math.floor(o/67108864),e.data[n++]=o&67108863}return i}function o2(r,t,e,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[r]&32767,l=this.data[r++]>>15,u=a*c+l*o;c=o*c+((u&32767)<<15)+e.data[n]+(i&1073741823),i=(c>>>30)+(u>>>15)+a*l+(i>>>30),e.data[n++]=c&1073741823}return i}function fm(r,t,e,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[r]&16383,l=this.data[r++]>>14,u=a*c+l*o;c=o*c+((u&16383)<<14)+e.data[n]+i,i=(c>>28)+(u>>14)+a*l,e.data[n++]=c&268435455}return i}typeof navigator>"u"?(A.prototype.am=fm,Br=28):um&&navigator.appName=="Microsoft Internet Explorer"?(A.prototype.am=o2,Br=30):um&&navigator.appName!="Netscape"?(A.prototype.am=s2,Br=26):(A.prototype.am=fm,Br=28);A.prototype.DB=Br;A.prototype.DM=(1<<Br)-1;A.prototype.DV=1<<Br;var yu=52;A.prototype.FV=Math.pow(2,yu);A.prototype.F1=yu-Br;A.prototype.F2=2*Br-yu;var a2="0123456789abcdefghijklmnopqrstuvwxyz",ea=new Array,Ai,Ne;Ai="0".charCodeAt(0);for(Ne=0;Ne<=9;++Ne)ea[Ai++]=Ne;Ai="a".charCodeAt(0);for(Ne=10;Ne<36;++Ne)ea[Ai++]=Ne;Ai="A".charCodeAt(0);for(Ne=10;Ne<36;++Ne)ea[Ai++]=Ne;function hm(r){return a2.charAt(r)}function dm(r,t){var e=ea[r.charCodeAt(t)];return e??-1}function c2(r){for(var t=this.t-1;t>=0;--t)r.data[t]=this.data[t];r.t=this.t,r.s=this.s}function l2(r){this.t=1,this.s=r<0?-1:0,r>0?this.data[0]=r:r<-1?this.data[0]=r+this.DV:this.t=0}function Qr(r){var t=st();return t.fromInt(r),t}function u2(r,t){var e;if(t==16)e=4;else if(t==8)e=3;else if(t==256)e=8;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else{this.fromRadix(r,t);return}this.t=0,this.s=0;for(var n=r.length,i=!1,s=0;--n>=0;){var o=e==8?r[n]&255:dm(r,n);if(o<0){r.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+e>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+=e,s>=this.DB&&(s-=this.DB)}e==8&&r[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&A.ZERO.subTo(this,this)}function f2(){for(var r=this.s&this.DM;this.t>0&&this.data[this.t-1]==r;)--this.t}function h2(r){if(this.s<0)return"-"+this.negate().toString(r);var t;if(r==16)t=4;else if(r==8)t=3;else if(r==2)t=1;else if(r==32)t=5;else if(r==4)t=2;else return this.toRadix(r);var e=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=hm(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&e,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=hm(n));return i?s:"0"}function d2(){var r=st();return A.ZERO.subTo(this,r),r}function p2(){return this.s<0?this.negate():this}function m2(r){var t=this.s-r.s;if(t!=0)return t;var e=this.t;if(t=e-r.t,t!=0)return this.s<0?-t:t;for(;--e>=0;)if((t=this.data[e]-r.data[e])!=0)return t;return 0}function ra(r){var t=1,e;return(e=r>>>16)!=0&&(r=e,t+=16),(e=r>>8)!=0&&(r=e,t+=8),(e=r>>4)!=0&&(r=e,t+=4),(e=r>>2)!=0&&(r=e,t+=2),(e=r>>1)!=0&&(r=e,t+=1),t}function y2(){return this.t<=0?0:this.DB*(this.t-1)+ra(this.data[this.t-1]^this.s&this.DM)}function g2(r,t){var e;for(e=this.t-1;e>=0;--e)t.data[e+r]=this.data[e];for(e=r-1;e>=0;--e)t.data[e]=0;t.t=this.t+r,t.s=this.s}function w2(r,t){for(var e=r;e<this.t;++e)t.data[e-r]=this.data[e];t.t=Math.max(this.t-r,0),t.s=this.s}function E2(r,t){var e=r%this.DB,n=this.DB-e,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<e&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<e;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function x2(r,t){t.s=this.s;var e=Math.floor(r/this.DB);if(e>=this.t){t.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[e]>>n;for(var o=e+1;o<this.t;++o)t.data[o-e-1]|=(this.data[o]&s)<<i,t.data[o-e]=this.data[o]>>n;n>0&&(t.data[this.t-e-1]|=(this.s&s)<<i),t.t=this.t-e,t.clamp()}function v2(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]-r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n-=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n-=r.s}t.s=n<0?-1:0,n<-1?t.data[e++]=this.DV+n:n>0&&(t.data[e++]=n),t.t=e,t.clamp()}function b2(r,t){var e=this.abs(),n=r.abs(),i=e.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+e.t]=e.am(0,n.data[i],t,i,0,e.t);t.s=0,t.clamp(),this.s!=r.s&&A.ZERO.subTo(t,t)}function _2(r){for(var t=this.abs(),e=r.t=2*t.t;--e>=0;)r.data[e]=0;for(e=0;e<t.t-1;++e){var n=t.am(e,t.data[e],r,2*e,0,1);(r.data[e+t.t]+=t.am(e+1,2*t.data[e],r,2*e+1,n,t.t-e-1))>=t.DV&&(r.data[e+t.t]-=t.DV,r.data[e+t.t+1]=1)}r.t>0&&(r.data[r.t-1]+=t.am(e,t.data[e],r,2*e,0,1)),r.s=0,r.clamp()}function S2(r,t,e){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),e!=null&&this.copyTo(e);return}e==null&&(e=st());var s=st(),o=this.s,a=r.s,c=this.DB-ra(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,e)):(n.copyTo(s),i.copyTo(e));var l=s.t,u=s.data[l-1];if(u!=0){var f=u*(1<<this.F1)+(l>1?s.data[l-2]>>this.F2:0),h=this.FV/f,d=(1<<this.F1)/f,p=1<<this.F2,m=e.t,y=m-l,g=t??st();for(s.dlShiftTo(y,g),e.compareTo(g)>=0&&(e.data[e.t++]=1,e.subTo(g,e)),A.ONE.dlShiftTo(l,g),g.subTo(s,s);s.t<l;)s.data[s.t++]=0;for(;--y>=0;){var x=e.data[--m]==u?this.DM:Math.floor(e.data[m]*h+(e.data[m-1]+p)*d);if((e.data[m]+=s.am(0,x,e,y,0,l))<x)for(s.dlShiftTo(y,g),e.subTo(g,e);e.data[m]<--x;)e.subTo(g,e)}t!=null&&(e.drShiftTo(l,t),o!=a&&A.ZERO.subTo(t,t)),e.t=l,e.clamp(),c>0&&e.rShiftTo(c,e),o<0&&A.ZERO.subTo(e,e)}}}function A2(r){var t=st();return this.abs().divRemTo(r,null,t),this.s<0&&t.compareTo(A.ZERO)>0&&r.subTo(t,t),t}function Ln(r){this.m=r}function R2(r){return r.s<0||r.compareTo(this.m)>=0?r.mod(this.m):r}function I2(r){return r}function T2(r){r.divRemTo(this.m,null,r)}function C2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}function B2(r,t){r.squareTo(t),this.reduce(t)}Ln.prototype.convert=R2;Ln.prototype.revert=I2;Ln.prototype.reduce=T2;Ln.prototype.mulTo=C2;Ln.prototype.sqrTo=B2;function D2(){if(this.t<1)return 0;var r=this.data[0];if(!(r&1))return 0;var t=r&3;return t=t*(2-(r&15)*t)&15,t=t*(2-(r&255)*t)&255,t=t*(2-((r&65535)*t&65535))&65535,t=t*(2-r*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Pn(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t}function L2(r){var t=st();return r.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),r.s<0&&t.compareTo(A.ZERO)>0&&this.m.subTo(t,t),t}function P2(r){var t=st();return r.copyTo(t),this.reduce(t),t}function N2(r){for(;r.t<=this.mt2;)r.data[r.t++]=0;for(var t=0;t<this.m.t;++t){var e=r.data[t]&32767,n=e*this.mpl+((e*this.mph+(r.data[t]>>15)*this.mpl&this.um)<<15)&r.DM;for(e=t+this.m.t,r.data[e]+=this.m.am(0,n,r,t,0,this.m.t);r.data[e]>=r.DV;)r.data[e]-=r.DV,r.data[++e]++}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r)}function k2(r,t){r.squareTo(t),this.reduce(t)}function O2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Pn.prototype.convert=L2;Pn.prototype.revert=P2;Pn.prototype.reduce=N2;Pn.prototype.mulTo=O2;Pn.prototype.sqrTo=k2;function M2(){return(this.t>0?this.data[0]&1:this.s)==0}function U2(r,t){if(r>4294967295||r<1)return A.ONE;var e=st(),n=st(),i=t.convert(this),s=ra(r)-1;for(i.copyTo(e);--s>=0;)if(t.sqrTo(e,n),(r&1<<s)>0)t.mulTo(n,i,e);else{var o=e;e=n,n=o}return t.revert(e)}function F2(r,t){var e;return r<256||t.isEven()?e=new Ln(t):e=new Pn(t),this.exp(r,e)}A.prototype.copyTo=c2;A.prototype.fromInt=l2;A.prototype.fromString=u2;A.prototype.clamp=f2;A.prototype.dlShiftTo=g2;A.prototype.drShiftTo=w2;A.prototype.lShiftTo=E2;A.prototype.rShiftTo=x2;A.prototype.subTo=v2;A.prototype.multiplyTo=b2;A.prototype.squareTo=_2;A.prototype.divRemTo=S2;A.prototype.invDigit=D2;A.prototype.isEven=M2;A.prototype.exp=U2;A.prototype.toString=h2;A.prototype.negate=d2;A.prototype.abs=p2;A.prototype.compareTo=m2;A.prototype.bitLength=y2;A.prototype.mod=A2;A.prototype.modPowInt=F2;A.ZERO=Qr(0);A.ONE=Qr(1);function K2(){var r=st();return this.copyTo(r),r}function V2(){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 q2(){return this.t==0?this.s:this.data[0]<<24>>24}function $2(){return this.t==0?this.s:this.data[0]<<16>>16}function z2(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function H2(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function G2(r){if(r==null&&(r=10),this.signum()==0||r<2||r>36)return"0";var t=this.chunkSize(r),e=Math.pow(r,t),n=Qr(e),i=st(),s=st(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(e+s.intValue()).toString(r).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(r)+o}function Y2(r,t){this.fromInt(0),t==null&&(t=10);for(var e=this.chunkSize(t),n=Math.pow(t,e),i=!1,s=0,o=0,a=0;a<r.length;++a){var c=dm(r,a);if(c<0){r.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=e&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&A.ZERO.subTo(this,this)}function W2(r,t,e){if(typeof t=="number")if(r<2)this.fromInt(1);else for(this.fromNumber(r,e),this.testBit(r-1)||this.bitwiseTo(A.ONE.shiftLeft(r-1),gu,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>r&&this.subTo(A.ONE.shiftLeft(r-1),this);else{var n=new Array,i=r&7;n.length=(r>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Q2(){var r=this.t,t=new Array;t[0]=this.s;var e=this.DB-r*this.DB%8,n,i=0;if(r-- >0)for(e<this.DB&&(n=this.data[r]>>e)!=(this.s&this.DM)>>e&&(t[i++]=n|this.s<<this.DB-e);r>=0;)e<8?(n=(this.data[r]&(1<<e)-1)<<8-e,n|=this.data[--r]>>(e+=this.DB-8)):(n=this.data[r]>>(e-=8)&255,e<=0&&(e+=this.DB,--r)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function X2(r){return this.compareTo(r)==0}function Z2(r){return this.compareTo(r)<0?this:r}function J2(r){return this.compareTo(r)>0?this:r}function j2(r,t,e){var n,i,s=Math.min(r.t,this.t);for(n=0;n<s;++n)e.data[n]=t(this.data[n],r.data[n]);if(r.t<this.t){for(i=r.s&this.DM,n=s;n<this.t;++n)e.data[n]=t(this.data[n],i);e.t=this.t}else{for(i=this.s&this.DM,n=s;n<r.t;++n)e.data[n]=t(i,r.data[n]);e.t=r.t}e.s=t(this.s,r.s),e.clamp()}function tb(r,t){return r&t}function eb(r){var t=st();return this.bitwiseTo(r,tb,t),t}function gu(r,t){return r|t}function rb(r){var t=st();return this.bitwiseTo(r,gu,t),t}function pm(r,t){return r^t}function nb(r){var t=st();return this.bitwiseTo(r,pm,t),t}function mm(r,t){return r&~t}function ib(r){var t=st();return this.bitwiseTo(r,mm,t),t}function sb(){for(var r=st(),t=0;t<this.t;++t)r.data[t]=this.DM&~this.data[t];return r.t=this.t,r.s=~this.s,r}function ob(r){var t=st();return r<0?this.rShiftTo(-r,t):this.lShiftTo(r,t),t}function ab(r){var t=st();return r<0?this.lShiftTo(-r,t):this.rShiftTo(r,t),t}function cb(r){if(r==0)return-1;var t=0;return r&65535||(r>>=16,t+=16),r&255||(r>>=8,t+=8),r&15||(r>>=4,t+=4),r&3||(r>>=2,t+=2),r&1||++t,t}function lb(){for(var r=0;r<this.t;++r)if(this.data[r]!=0)return r*this.DB+cb(this.data[r]);return this.s<0?this.t*this.DB:-1}function ub(r){for(var t=0;r!=0;)r&=r-1,++t;return t}function fb(){for(var r=0,t=this.s&this.DM,e=0;e<this.t;++e)r+=ub(this.data[e]^t);return r}function hb(r){var t=Math.floor(r/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<r%this.DB)!=0}function db(r,t){var e=A.ONE.shiftLeft(r);return this.bitwiseTo(e,t,e),e}function pb(r){return this.changeBit(r,gu)}function mb(r){return this.changeBit(r,mm)}function yb(r){return this.changeBit(r,pm)}function gb(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]+r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n+=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=r.s}t.s=n<0?-1:0,n>0?t.data[e++]=n:n<-1&&(t.data[e++]=this.DV+n),t.t=e,t.clamp()}function wb(r){var t=st();return this.addTo(r,t),t}function Eb(r){var t=st();return this.subTo(r,t),t}function xb(r){var t=st();return this.multiplyTo(r,t),t}function vb(r){var t=st();return this.divRemTo(r,t,null),t}function bb(r){var t=st();return this.divRemTo(r,null,t),t}function _b(r){var t=st(),e=st();return this.divRemTo(r,t,e),new Array(t,e)}function Sb(r){this.data[this.t]=this.am(0,r-1,this,0,0,this.t),++this.t,this.clamp()}function Ab(r,t){if(r!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=r;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function ls(){}function ym(r){return r}function Rb(r,t,e){r.multiplyTo(t,e)}function Ib(r,t){r.squareTo(t)}ls.prototype.convert=ym;ls.prototype.revert=ym;ls.prototype.mulTo=Rb;ls.prototype.sqrTo=Ib;function Tb(r){return this.exp(r,new ls)}function Cb(r,t,e){var n=Math.min(this.t+r.t,t);for(e.s=0,e.t=n;n>0;)e.data[--n]=0;var i;for(i=e.t-this.t;n<i;++n)e.data[n+this.t]=this.am(0,r.data[n],e,n,0,this.t);for(i=Math.min(r.t,t);n<i;++n)this.am(0,r.data[n],e,n,0,t-n);e.clamp()}function Bb(r,t,e){--t;var n=e.t=this.t+r.t-t;for(e.s=0;--n>=0;)e.data[n]=0;for(n=Math.max(t-this.t,0);n<r.t;++n)e.data[this.t+n-t]=this.am(t-n,r.data[n],e,0,0,this.t+n-t);e.clamp(),e.drShiftTo(1,e)}function Ri(r){this.r2=st(),this.q3=st(),A.ONE.dlShiftTo(2*r.t,this.r2),this.mu=this.r2.divide(r),this.m=r}function Db(r){if(r.s<0||r.t>2*this.m.t)return r.mod(this.m);if(r.compareTo(this.m)<0)return r;var t=st();return r.copyTo(t),this.reduce(t),t}function Lb(r){return r}function Pb(r){for(r.drShiftTo(this.m.t-1,this.r2),r.t>this.m.t+1&&(r.t=this.m.t+1,r.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);r.compareTo(this.r2)<0;)r.dAddOffset(1,this.m.t+1);for(r.subTo(this.r2,r);r.compareTo(this.m)>=0;)r.subTo(this.m,r)}function Nb(r,t){r.squareTo(t),this.reduce(t)}function kb(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Ri.prototype.convert=Db;Ri.prototype.revert=Lb;Ri.prototype.reduce=Pb;Ri.prototype.mulTo=kb;Ri.prototype.sqrTo=Nb;function Ob(r,t){var e=r.bitLength(),n,i=Qr(1),s;if(e<=0)return i;e<18?n=1:e<48?n=3:e<144?n=4:e<768?n=5:n=6,e<8?s=new Ln(t):t.isEven()?s=new Ri(t):s=new Pn(t);var o=new Array,a=3,c=n-1,l=(1<<n)-1;if(o[1]=s.convert(this),n>1){var u=st();for(s.sqrTo(o[1],u);a<=l;)o[a]=st(),s.mulTo(u,o[a-2],o[a]),a+=2}var f=r.t-1,h,d=!0,p=st(),m;for(e=ra(r.data[f])-1;f>=0;){for(e>=c?h=r.data[f]>>e-c&l:(h=(r.data[f]&(1<<e+1)-1)<<c-e,f>0&&(h|=r.data[f-1]>>this.DB+e-c)),a=n;!(h&1);)h>>=1,--a;if((e-=a)<0&&(e+=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):(m=i,i=p,p=m),s.mulTo(p,o[h],i)}for(;f>=0&&!(r.data[f]&1<<e);)s.sqrTo(i,p),m=i,i=p,p=m,--e<0&&(e=this.DB-1,--f)}return s.revert(i)}function Mb(r){var t=this.s<0?this.negate():this.clone(),e=r.s<0?r.negate():r.clone();if(t.compareTo(e)<0){var n=t;t=e,e=n}var i=t.getLowestSetBit(),s=e.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),e.rShiftTo(s,e));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),t.compareTo(e)>=0?(t.subTo(e,t),t.rShiftTo(1,t)):(e.subTo(t,e),e.rShiftTo(1,e));return s>0&&e.lShiftTo(s,e),e}function Ub(r){if(r<=0)return 0;var t=this.DV%r,e=this.s<0?r-1:0;if(this.t>0)if(t==0)e=this.data[0]%r;else for(var n=this.t-1;n>=0;--n)e=(t*e+this.data[n])%r;return e}function Fb(r){var t=r.isEven();if(this.isEven()&&t||r.signum()==0)return A.ZERO;for(var e=r.clone(),n=this.clone(),i=Qr(1),s=Qr(0),o=Qr(0),a=Qr(1);e.signum()!=0;){for(;e.isEven();)e.rShiftTo(1,e),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(r,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(r,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(r,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(r,a),a.rShiftTo(1,a);e.compareTo(n)>=0?(e.subTo(n,e),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(e,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(A.ONE)!=0)return A.ZERO;if(a.compareTo(r)>=0)return a.subtract(r);if(a.signum()<0)a.addTo(r,a);else return a;return a.signum()<0?a.add(r):a}var ze=[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],Kb=(1<<26)/ze[ze.length-1];function Vb(r){var t,e=this.abs();if(e.t==1&&e.data[0]<=ze[ze.length-1]){for(t=0;t<ze.length;++t)if(e.data[0]==ze[t])return!0;return!1}if(e.isEven())return!1;for(t=1;t<ze.length;){for(var n=ze[t],i=t+1;i<ze.length&&n<Kb;)n*=ze[i++];for(n=e.modInt(n);t<i;)if(n%ze[t++]==0)return!1}return e.millerRabin(r)}function qb(r){var t=this.subtract(A.ONE),e=t.getLowestSetBit();if(e<=0)return!1;for(var n=t.shiftRight(e),i=$b(),s,o=0;o<r;++o){do s=new A(this.bitLength(),i);while(s.compareTo(A.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(A.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<e&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(A.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function $b(){return{nextBytes:function(r){for(var t=0;t<r.length;++t)r[t]=Math.floor(Math.random()*256)}}}A.prototype.chunkSize=z2;A.prototype.toRadix=G2;A.prototype.fromRadix=Y2;A.prototype.fromNumber=W2;A.prototype.bitwiseTo=j2;A.prototype.changeBit=db;A.prototype.addTo=gb;A.prototype.dMultiply=Sb;A.prototype.dAddOffset=Ab;A.prototype.multiplyLowerTo=Cb;A.prototype.multiplyUpperTo=Bb;A.prototype.modInt=Ub;A.prototype.millerRabin=qb;A.prototype.clone=K2;A.prototype.intValue=V2;A.prototype.byteValue=q2;A.prototype.shortValue=$2;A.prototype.signum=H2;A.prototype.toByteArray=Q2;A.prototype.equals=X2;A.prototype.min=Z2;A.prototype.max=J2;A.prototype.and=eb;A.prototype.or=rb;A.prototype.xor=nb;A.prototype.andNot=ib;A.prototype.not=sb;A.prototype.shiftLeft=ob;A.prototype.shiftRight=ab;A.prototype.getLowestSetBit=lb;A.prototype.bitCount=fb;A.prototype.testBit=hb;A.prototype.setBit=pb;A.prototype.clearBit=mb;A.prototype.flipBit=yb;A.prototype.add=wb;A.prototype.subtract=Eb;A.prototype.multiply=xb;A.prototype.divide=vb;A.prototype.remainder=bb;A.prototype.divideAndRemainder=_b;A.prototype.modPow=Ob;A.prototype.modInverse=Fb;A.prototype.pow=Tb;A.prototype.gcd=Mb;A.prototype.isProbablePrime=Vb});var bm=T((x8,vm)=>{var lr=ft();Dn();qt();var Em=vm.exports=lr.sha1=lr.sha1||{};lr.md.sha1=lr.md.algorithms.sha1=Em;Em.create=function(){xm||zb();var r=null,t=lr.util.createBuffer(),e=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=lr.util.createBuffer(),r={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=lr.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),wm(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=lr.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(wu.substr(0,n.blockLength-o));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4};wm(f,e,i);var h=lr.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 wu=null,xm=!1;function zb(){wu=String.fromCharCode(128),wu+=lr.util.fillString(String.fromCharCode(0),64),xm=!0}function wm(r,t,e){for(var n,i,s,o,a,c,l,u,f=e.length();f>=64;){for(i=r.h0,s=r.h1,o=r.h2,a=r.h3,c=r.h4,u=0;u<16;++u)n=e.getInt32(),t[u]=n,l=a^s&(o^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<20;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=a^s&(o^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<32;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<40;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<60;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s&o|a&(s^o),n=(i<<5|i>>>27)+l+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<80;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;r.h0=r.h0+i|0,r.h1=r.h1+s|0,r.h2=r.h2+o|0,r.h3=r.h3+a|0,r.h4=r.h4+c|0,f-=64}}});var Am=T((v8,Sm)=>{var ur=ft();qt();cs();bm();var _m=Sm.exports=ur.pkcs1=ur.pkcs1||{};_m.encode_rsa_oaep=function(r,t,e){var n,i,s,o;typeof e=="string"?(n=e,i=arguments[3]||void 0,s=arguments[4]||void 0):e&&(n=e.label||void 0,i=e.seed||void 0,s=e.md||void 0,e.mgf1&&e.mgf1.md&&(o=e.mgf1.md)),s?s.start():s=ur.md.sha1.create(),o||(o=s);var a=Math.ceil(r.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var l=new Error("RSAES-OAEP input message length is too long.");throw l.length=t.length,l.maxLength=c,l}n||(n=""),s.update(n,"raw");for(var u=s.digest(),f="",h=c-t.length,d=0;d<h;d++)f+="\0";var p=u.getBytes()+f+""+t;if(!i)i=ur.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var l=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw l.seedLength=i.length,l.digestLength=s.digestLength,l}var m=ia(i,a-s.digestLength-1,o),y=ur.util.xorBytes(p,m,p.length),g=ia(y,s.digestLength,o),x=ur.util.xorBytes(i,g,i.length);return"\0"+x+y};_m.decode_rsa_oaep=function(r,t,e){var n,i,s;typeof e=="string"?(n=e,i=arguments[3]||void 0):e&&(n=e.label||void 0,i=e.md||void 0,e.mgf1&&e.mgf1.md&&(s=e.mgf1.md));var o=Math.ceil(r.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=ur.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),l=t.substring(1,i.digestLength+1),u=t.substring(1+i.digestLength),f=ia(u,i.digestLength,s),h=ur.util.xorBytes(l,f,l.length),d=ia(h,o-i.digestLength-1,s),p=ur.util.xorBytes(u,d,u.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,_=i.digestLength,O=i.digestLength;O<p.length;O++){var C=p.charCodeAt(O),B=C&1^1,X=x?65534:0;y|=C&X,x=x&B,_+=x}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function ia(r,t,e){e||(e=ur.md.sha1.create());for(var n="",i=Math.ceil(t/e.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);e.start(),e.update(r+o),n+=e.digest().getBytes()}return n.substring(0,t)}});var Rm=T((b8,Eu)=>{var Xr=ft();qt();na();cs();(function(){if(Xr.prime){Eu.exports=Xr.prime;return}var r=Eu.exports=Xr.prime=Xr.prime||{},t=Xr.jsbn.BigInteger,e=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};r.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 m=h.prng||Xr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=x.charCodeAt(_)}};if(p.name==="PRIMEINC")return s(f,y,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 m=l(f,h),y=0,g=u(m.bitLength());"millerRabinTests"in d&&(g=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(m,f,h,y,g,x,p)}function a(f,h,d,p,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=l(h,d)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(e[p++%8],0)}while(y<0||+new Date-x<y);Xr.util.setImmediate(function(){a(f,h,d,p,m,y,g)})}function c(f,h,d,p){if(typeof Worker>"u")return o(f,h,d,p);var m=l(f,h),y=d.workers,g=d.workLoad||100,x=g*30/8,_=d.workerScript||"forge/prime.worker.js";if(y===-1)return Xr.util.estimateCores(function(C,B){C&&(B=2),y=B-1,O()});O();function O(){y=Math.max(1,y);for(var C=[],B=0;B<y;++B)C[B]=new Worker(_);for(var X=y,B=0;B<y;++B)C[B].addEventListener("message",Xt);var J=!1;function Xt(Fe){if(!J){--X;var we=Fe.data;if(we.found){for(var ae=0;ae<C.length;++ae)C[ae].terminate();return J=!0,p(null,new t(we.prime,16))}m.bitLength()>f&&(m=l(f,h));var Zn=m.toString(16);Fe.target.postMessage({hex:Zn,workLoad:g}),m.dAddOffset(x,0)}}}}function l(f,h){var d=new t(f,h),p=f-1;return d.testBit(p)||d.bitwiseTo(t.ONE.shiftLeft(p),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function u(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 oa=T((_8,Pm)=>{var K=ft();as();na();zo();Am();Rm();cs();qt();typeof et>"u"&&(et=K.jsbn.BigInteger);var et,xu=K.util.isNodejs?Rn():null,v=K.asn1,ke=K.util;K.pki=K.pki||{};Pm.exports=K.pki.rsa=K.rsa=K.rsa||{};var q=K.pki,Hb=[6,4,2,4,2,4,6,2],Gb={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Yb={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Wb={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Qb=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},Xb={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Zb=function(r){var t;if(r.algorithm in q.oids)t=q.oids[r.algorithm];else{var e=new Error("Unknown message digest algorithm.");throw e.algorithm=r.algorithm,e}var n=v.oidToDer(t).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,r.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},Dm=function(r,t,e){if(e)return r.modPow(t.e,t.n);if(!t.p||!t.q)return r.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(et.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(et.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new et(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(et.ONE));r=r.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=r.mod(t.p).modPow(t.dP,t.p),s=r.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};q.rsa.encrypt=function(r,t,e){var n=e,i,s=Math.ceil(t.n.bitLength()/8);e!==!1&&e!==!0?(n=e===2,i=Lm(r,t,e)):(i=K.util.createBuffer(),i.putBytes(r));for(var o=new et(i.toHex(),16),a=Dm(o,t,n),c=a.toString(16),l=K.util.createBuffer(),u=s-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),l.getBytes()};q.rsa.decrypt=function(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8);if(r.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=r.length,s.expected=i,s}var o=new et(K.util.createBuffer(r).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Dm(o,t,e),c=a.toString(16),l=K.util.createBuffer(),u=i-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),n!==!1?sa(l.getBytes(),t,e):l.getBytes()};q.rsa.createKeyPairGenerationState=function(r,t,e){typeof r=="string"&&(r=parseInt(r,10)),r=r||2048,e=e||{};var n=e.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),l=0;l<a.length;++l)a[l]=c.charCodeAt(l)}},s=e.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:r,rng:i,eInt:t||65537,e:new et(null),p:null,q:null,qBits:r>>1,pBits:r-(r>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};q.rsa.stepKeyPairGenerationState=function(r,t){"algorithm"in r||(r.algorithm="PRIMEINC");var e=new et(null);e.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;r.keys===null&&(t<=0||a<t);){if(r.state===0){var c=r.p===null?r.pBits:r.qBits,l=c-1;r.pqState===0?(r.num=new et(c,r.rng),r.num.testBit(l)||r.num.bitwiseTo(et.ONE.shiftLeft(l),i,r.num),r.num.dAddOffset(31-r.num.mod(e).byteValue(),0),n=0,++r.pqState):r.pqState===1?r.num.bitLength()>c?r.pqState=0:r.num.isProbablePrime(jb(r.num.bitLength()))?++r.pqState:r.num.dAddOffset(Hb[n++%8],0):r.pqState===2?r.pqState=r.num.subtract(et.ONE).gcd(r.e).compareTo(et.ONE)===0?3:0:r.pqState===3&&(r.pqState=0,r.p===null?r.p=r.num:r.q=r.num,r.p!==null&&r.q!==null&&++r.state,r.num=null)}else if(r.state===1)r.p.compareTo(r.q)<0&&(r.num=r.p,r.p=r.q,r.q=r.num),++r.state;else if(r.state===2)r.p1=r.p.subtract(et.ONE),r.q1=r.q.subtract(et.ONE),r.phi=r.p1.multiply(r.q1),++r.state;else if(r.state===3)r.phi.gcd(r.e).compareTo(et.ONE)===0?++r.state:(r.p=null,r.q=null,r.state=0);else if(r.state===4)r.n=r.p.multiply(r.q),r.n.bitLength()===r.bits?++r.state:(r.q=null,r.state=0);else if(r.state===5){var u=r.e.modInverse(r.phi);r.keys={privateKey:q.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:q.rsa.setPublicKey(r.n,r.e)}}o=+new Date,a+=o-s,s=o}return r.keys!==null};q.rsa.generateKeyPair=function(r,t,e,n){if(arguments.length===1?typeof r=="object"?(e=r,r=void 0):typeof r=="function"&&(n=r,r=void 0):arguments.length===2?typeof r=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(e=t,t=void 0):(e=r,n=t,r=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof e=="function"&&(n=e,e=void 0):(n=e,e=t,t=void 0)),e=e||{},r===void 0&&(r=e.bits||2048),t===void 0&&(t=e.e||65537),!K.options.usePureJavaScript&&!e.prng&&r>=256&&r<=16384&&(t===65537||t===3)){if(n){if(Im("generateKeyPair"))return xu.generateKeyPair("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,l){if(a)return n(a);n(null,{privateKey:q.privateKeyFromPem(l),publicKey:q.publicKeyFromPem(c)})});if(Tm("generateKey")&&Tm("exportKey"))return ke.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Bm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return ke.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:q.setRsaPublicKey(c.n,c.e)})}});if(Cm("generateKey")&&Cm("exportKey")){var i=ke.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Bm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,l=ke.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);l.oncomplete=function(u){var f=u.target.result,h=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(f)));n(null,{privateKey:h,publicKey:q.setRsaPublicKey(h.n,h.e)})},l.onerror=function(u){n(u)}},i.onerror=function(a){n(a)};return}}else if(Im("generateKeyPairSync")){var s=xu.generateKeyPairSync("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:q.privateKeyFromPem(s.privateKey),publicKey:q.publicKeyFromPem(s.publicKey)}}}var o=q.rsa.createKeyPairGenerationState(r,t,e);if(!n)return q.rsa.stepKeyPairGenerationState(o,0),o.keys;Jb(o,e,n)};q.setRsaPublicKey=q.rsa.setPublicKey=function(r,t){var e={n:r,e:t};return e.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,l){return Lm(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.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,e,!0);return q.rsa.encrypt(o,e,!0)},e.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,l){l=sa(l,e,!0);var u=v.fromDer(l,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(u,Xb,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=v.derToOid(f.algorithmIdentifier);if(!(p===K.oids.md2||p===K.oids.md5||p===K.oids.sha1||p===K.oids.sha224||p===K.oids.sha256||p===K.oids.sha384||p===K.oids.sha512||p===K.oids["sha512-224"]||p===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=p,d}if((p===K.oids.md2||p===K.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,l){return l=sa(l,e,!0),c===l}});var a=q.rsa.decrypt(i,e,!0,!1);return s.verify(n,a,e.n.bitLength())},e};q.setRsaPrivateKey=q.rsa.setPrivateKey=function(r,t,e,n,i,s,o,a){var c={n:r,e:t,d:e,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(l,u,f){typeof u=="string"?u=u.toUpperCase():u===void 0&&(u="RSAES-PKCS1-V1_5");var h=q.rsa.decrypt(l,c,!1,!1);if(u==="RSAES-PKCS1-V1_5")u={decode:sa};else if(u==="RSA-OAEP"||u==="RSAES-OAEP")u={decode:function(d,p){return K.pkcs1.decode_rsa_oaep(p,d,f)}};else if(["RAW","NONE","NULL",null].indexOf(u)!==-1)u={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+u+'".');return u.decode(h,c,!1)},c.sign=function(l,u){var f=!1;typeof u=="string"&&(u=u.toUpperCase()),u===void 0||u==="RSASSA-PKCS1-V1_5"?(u={encode:Zb},f=1):(u==="NONE"||u==="NULL"||u===null)&&(u={encode:function(){return l}},f=1);var h=u.encode(l,c.n.bitLength());return q.rsa.encrypt(h,c,f)},c};q.wrapRsaPrivateKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(r).getBytes())])};q.privateKeyFromAsn1=function(r){var t={},e=[];if(v.validate(r,Gb,t,e)&&(r=v.fromDer(K.util.createBuffer(t.privateKey))),t={},e=[],!v.validate(r,Yb,t,e)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=e,n}var i,s,o,a,c,l,u,f;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),s=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),l=K.util.createBuffer(t.privateKeyExponent1).toHex(),u=K.util.createBuffer(t.privateKeyExponent2).toHex(),f=K.util.createBuffer(t.privateKeyCoefficient).toHex(),q.setRsaPrivateKey(new et(i,16),new et(s,16),new et(o,16),new et(a,16),new et(c,16),new et(l,16),new et(u,16),new et(f,16))};q.privateKeyToAsn1=q.privateKeyToRSAPrivateKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.qInv))])};q.publicKeyFromAsn1=function(r){var t={},e=[];if(v.validate(r,Qb,t,e)){var n=v.derToOid(t.publicKeyOid);if(n!==q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}r=t.rsaPublicKey}if(e=[],!v.validate(r,Wb,t,e)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=e,i}var s=K.util.createBuffer(t.publicKeyModulus).toHex(),o=K.util.createBuffer(t.publicKeyExponent).toHex();return q.setRsaPublicKey(new et(s,16),new et(o,16))};q.publicKeyToAsn1=q.publicKeyToSubjectPublicKeyInfo=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[q.publicKeyToRSAPublicKey(r)])])};q.publicKeyToRSAPublicKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(r.e))])};function Lm(r,t,e){var n=K.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(r.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=r.length,s.max=i-11,s}n.putByte(0),n.putByte(e);var o=i-3-r.length,a;if(e===0||e===1){a=e===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var l=0,u=K.random.getBytes(o),c=0;c<o;++c)a=u.charCodeAt(c),a===0?++l:n.putByte(a);o=l}return n.putByte(0),n.putBytes(r),n}function sa(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8),s=K.util.createBuffer(r),o=s.getByte(),a=s.getByte();if(o!==0||e&&a!==0&&a!==1||!e&&a!=2||e&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var l=0;l<c;++l)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 u=s.getByte();if(u!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function Jb(r,t,e){typeof t=="function"&&(e=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(r.pBits,function(a,c){if(a)return e(a);if(r.p=c,r.q!==null)return o(a,r.q);s(r.qBits,o)})}function s(a,c){K.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return e(a);if(r.q=c,r.p.compareTo(r.q)<0){var l=r.p;r.p=r.q,r.q=l}if(r.p.subtract(et.ONE).gcd(r.e).compareTo(et.ONE)!==0){r.p=null,i();return}if(r.q.subtract(et.ONE).gcd(r.e).compareTo(et.ONE)!==0){r.q=null,s(r.qBits,o);return}if(r.p1=r.p.subtract(et.ONE),r.q1=r.q.subtract(et.ONE),r.phi=r.p1.multiply(r.q1),r.phi.gcd(r.e).compareTo(et.ONE)!==0){r.p=r.q=null,i();return}if(r.n=r.p.multiply(r.q),r.n.bitLength()!==r.bits){r.q=null,s(r.qBits,o);return}var u=r.e.modInverse(r.phi);r.keys={privateKey:q.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:q.rsa.setPublicKey(r.n,r.e)},e(null,r.keys)}}function fr(r){var t=r.toString(16);t[0]>="8"&&(t="00"+t);var e=K.util.hexToBytes(t);return e.length>1&&(e.charCodeAt(0)===0&&!(e.charCodeAt(1)&128)||e.charCodeAt(0)===255&&(e.charCodeAt(1)&128)===128)?e.substr(1):e}function jb(r){return r<=100?27:r<=150?18:r<=200?15:r<=250?12:r<=300?9:r<=350?8:r<=400?7:r<=500?6:r<=600?5:r<=800?4:r<=1250?3:2}function Im(r){return K.util.isNodejs&&typeof xu[r]=="function"}function Tm(r){return typeof ke.globalScope<"u"&&typeof ke.globalScope.crypto=="object"&&typeof ke.globalScope.crypto.subtle=="object"&&typeof ke.globalScope.crypto.subtle[r]=="function"}function Cm(r){return typeof ke.globalScope<"u"&&typeof ke.globalScope.msCrypto=="object"&&typeof ke.globalScope.msCrypto.subtle=="object"&&typeof ke.globalScope.msCrypto.subtle[r]=="function"}function Bm(r){for(var t=K.util.hexToBytes(r.toString(16)),e=new Uint8Array(t.length),n=0;n<t.length;++n)e[n]=t.charCodeAt(n);return e}});var Fm=T((S8,Um)=>{var L=ft();Qo();as();zp();Dn();zo();fu();Zp();cs();lm();oa();qt();typeof Nm>"u"&&(Nm=L.jsbn.BigInteger);var Nm,b=L.asn1,H=L.pki=L.pki||{};Um.exports=H.pbe=L.pbe=L.pbe||{};var Nn=H.oids,t_={name:"EncryptedPrivateKeyInfo",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},e_={name:"PBES2Algorithms",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},r_={name:"pkcs-12PbeParams",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"iterations"}]};H.encryptPrivateKeyInfo=function(r,t,e){e=e||{},e.saltSize=e.saltSize||8,e.count=e.count||2048,e.algorithm=e.algorithm||"aes128",e.prfAlgorithm=e.prfAlgorithm||"sha1";var n=L.random.getBytesSync(e.saltSize),i=e.count,s=b.integerToDer(i),o,a,c;if(e.algorithm.indexOf("aes")===0||e.algorithm==="des"){var l,u,f;switch(e.algorithm){case"aes128":o=16,l=16,u=Nn["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":o=24,l=16,u=Nn["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":o=32,l=16,u=Nn["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":o=8,l=8,u=Nn.desCBC,f=L.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=e.algorithm,h}var d="hmacWith"+e.prfAlgorithm.toUpperCase(),p=Mm(d),m=L.pkcs5.pbkdf2(t,n,i,o,p),y=L.random.getBytesSync(l),g=f(m);g.start(y),g.update(b.toDer(r)),g.finish(),c=g.output.getBytes();var x=n_(n,s,o,d);a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn.pkcs5PBES2).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn.pkcs5PBKDF2).getBytes()),x]),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(u).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,y)])])])}else if(e.algorithm==="3des"){o=24;var _=new L.util.ByteBuffer(n),m=H.pbe.generatePkcs12Key(t,_,1,i,o),y=H.pbe.generatePkcs12Key(t,_,2,i,o),g=L.des.createEncryptionCipher(m);g.start(y),g.update(b.toDer(r)),g.finish(),c=g.output.getBytes(),a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,n),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,s.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=e.algorithm,h}var O=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[a,b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,c)]);return O};H.decryptPrivateKeyInfo=function(r,t){var e=null,n={},i=[];if(!b.validate(r,t_,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=b.derToOid(n.encryptionOid),a=H.pbe.getCipher(o,n.encryptionParams,t),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(e=b.fromDer(a.output)),e};H.encryptedPrivateKeyToPem=function(r,t){var e={type:"ENCRYPTED PRIVATE KEY",body:b.toDer(r).getBytes()};return L.pem.encode(e,{maxline:t})};H.encryptedPrivateKeyFromPem=function(r){var t=L.pem.decode(r)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var e=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw e.headerType=t.type,e}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return b.fromDer(t.body)};H.encryptRsaPrivateKey=function(r,t,e){if(e=e||{},!e.legacy){var n=H.wrapRsaPrivateKey(H.privateKeyToAsn1(r));return n=H.encryptPrivateKeyInfo(n,t,e),H.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(e.algorithm){case"aes128":i="AES-128-CBC",o=16,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+e.algorithm+'".');throw c.algorithm=e.algorithm,c}var l=L.pbe.opensslDeriveBytes(t,s.substr(0,8),o),u=a(l);u.start(s),u.update(b.toDer(H.privateKeyToAsn1(r))),u.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(s).toUpperCase()},body:u.output.getBytes()};return L.pem.encode(f)};H.decryptRsaPrivateKey=function(r,t){var e=null,n=L.pem.decode(r)[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=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=L.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=L.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=L.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return L.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=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(t,a.substr(0,8),s),l=o(c);if(l.start(a),l.update(L.util.createBuffer(n.body)),l.finish())e=l.output.getBytes();else return e}else e=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?e=H.decryptPrivateKeyInfo(b.fromDer(e),t):e=b.fromDer(e),e!==null&&(e=H.privateKeyFromAsn1(e)),e};H.pbe.generatePkcs12Key=function(r,t,e,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');s=L.md.sha1.create()}var c=s.digestLength,l=s.blockLength,u=new L.util.ByteBuffer,f=new L.util.ByteBuffer;if(r!=null){for(a=0;a<r.length;a++)f.putInt16(r.charCodeAt(a));f.putInt16(0)}var h=f.length(),d=t.length(),p=new L.util.ByteBuffer;p.fillWithByte(e,l);var m=l*Math.ceil(d/l),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%d));var g=l*Math.ceil(h/l),x=new L.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var _=y;_.putBuffer(x);for(var O=Math.ceil(i/c),C=1;C<=O;C++){var B=new L.util.ByteBuffer;B.putBytes(p.bytes()),B.putBytes(_.bytes());for(var X=0;X<n;X++)s.start(),s.update(B.getBytes()),B=s.digest();var J=new L.util.ByteBuffer;for(a=0;a<l;a++)J.putByte(B.at(a%c));var Xt=Math.ceil(d/l)+Math.ceil(h/l),Fe=new L.util.ByteBuffer;for(o=0;o<Xt;o++){var we=new L.util.ByteBuffer(_.getBytes(l)),ae=511;for(a=J.length()-1;a>=0;a--)ae=ae>>8,ae+=J.at(a)+we.at(a),we.setAt(a,ae&255);Fe.putBuffer(we)}_=Fe,u.putBuffer(B)}return u.truncate(u.length()-i),u};H.pbe.getCipher=function(r,t,e){switch(r){case H.oids.pkcs5PBES2:return H.pbe.getCipherForPBES2(r,t,e);case H.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case H.oids["pbewithSHAAnd40BitRC2-CBC"]:return H.pbe.getCipherForPKCS12PBE(r,t,e);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=r,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};H.pbe.getCipherForPBES2=function(r,t,e){var n={},i=[];if(!b.validate(t,e_,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(r=b.derToOid(n.kdfOid),r!==H.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=r,s.supportedOids=["pkcs5PBKDF2"],s}if(r=b.derToOid(n.encOid),r!==H.oids["aes128-CBC"]&&r!==H.oids["aes192-CBC"]&&r!==H.oids["aes256-CBC"]&&r!==H.oids["des-EDE3-CBC"]&&r!==H.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=r,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,l;switch(H.oids[r]){case"aes128-CBC":c=16,l=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,l=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,l=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,l=L.des.createDecryptionCipher;break;case"desCBC":c=8,l=L.des.createDecryptionCipher;break}var u=Om(n.prfOid),f=L.pkcs5.pbkdf2(e,o,a,c,u),h=n.encIv,d=l(f);return d.start(h),d};H.pbe.getCipherForPKCS12PBE=function(r,t,e){var n={},i=[];if(!b.validate(t,r_,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=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,l,u;switch(r){case H.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,l=8,u=L.des.startDecrypting;break;case H.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,l=8,u=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=r,s}var f=Om(n.prfOid),h=H.pbe.generatePkcs12Key(e,o,1,a,c,f);f.start();var d=H.pbe.generatePkcs12Key(e,o,2,a,l,f);return u(h,d)};H.pbe.opensslDeriveBytes=function(r,t,e,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}t===null&&(t="");for(var i=[km(n,r+t)],s=16,o=1;s<e;++o,s+=16)i.push(km(n,i[o-1]+r+t));return i.join("").substr(0,e)};function km(r,t){return r.start().update(t).digest().getBytes()}function Om(r){var t;if(!r)t="hmacWithSHA1";else if(t=H.oids[b.derToOid(r)],!t){var e=new Error("Unsupported PRF OID.");throw e.oid=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}return Mm(t)}function Mm(r){var t=L.md;switch(r){case"hmacWithSHA224":t=L.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":r=r.substr(8).toLowerCase();break;default:var e=new Error("Unsupported PRF algorithm.");throw e.algorithm=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}if(!t||!(r in t))throw new Error("Unknown hash algorithm: "+r);return t[r].create()}function n_(r,t,e,n){var i=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,r),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,L.util.hexToBytes(e.toString(16))),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(H.oids[n]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.NULL,!1,"")])),i}});var Qm=T((nB,Wm)=>{var At=ft();Dn();qt();var us=Wm.exports=At.sha512=At.sha512||{};At.md.sha512=At.md.algorithms.sha512=us;var Gm=At.sha384=At.sha512.sha384=At.sha512.sha384||{};Gm.create=function(){return us.create("SHA-384")};At.md.sha384=At.md.algorithms.sha384=Gm;At.sha512.sha256=At.sha512.sha256||{create:function(){return us.create("SHA-512/256")}};At.md["sha512/256"]=At.md.algorithms["sha512/256"]=At.sha512.sha256;At.sha512.sha224=At.sha512.sha224||{create:function(){return us.create("SHA-512/224")}};At.md["sha512/224"]=At.md.algorithms["sha512/224"]=At.sha512.sha224;us.create=function(r){if(Ym||o_(),typeof r>"u"&&(r="SHA-512"),!(r in kn))throw new Error("Invalid SHA-512 algorithm: "+r);for(var t=kn[r],e=null,n=At.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(r){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:r.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,l=0;l<c;++l)a.fullMessageLength.push(0);n=At.util.createBuffer(),e=new Array(t.length);for(var l=0;l<t.length;++l)e[l]=t[l].slice(0);return a},a.start(),a.update=function(c,l){l==="utf8"&&(c=At.util.encodeUtf8(c));var u=c.length;a.messageLength+=u,u=[u/4294967296>>>0,u>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=u[1],u[1]=u[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,u[0]=u[1]/4294967296>>>0;return n.putBytes(c),Hm(e,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=At.util.createBuffer();c.putBytes(n.bytes());var l=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,u=l&a.blockLength-1;c.putBytes(vu.substr(0,a.blockLength-u));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 m=new Array(e.length),p=0;p<e.length;++p)m[p]=e[p].slice(0);Hm(m,i,c);var y=At.util.createBuffer(),g;r==="SHA-512"?g=m.length:r==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||r!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var vu=null,Ym=!1,bu=null,kn=null;function o_(){vu=String.fromCharCode(128),vu+=At.util.fillString(String.fromCharCode(0),128),bu=[[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]],kn={},kn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],kn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],kn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],kn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Ym=!0}function Hm(r,t,e){for(var n,i,s,o,a,c,l,u,f,h,d,p,m,y,g,x,_,O,C,B,X,J,Xt,Fe,we,ae,Zn,Zs,zt,fe,V,xc,vc,bc,_c,Hf=e.length();Hf>=128;){for(zt=0;zt<16;++zt)t[zt][0]=e.getInt32()>>>0,t[zt][1]=e.getInt32()>>>0;for(;zt<80;++zt)xc=t[zt-2],fe=xc[0],V=xc[1],n=((fe>>>19|V<<13)^(V>>>29|fe<<3)^fe>>>6)>>>0,i=((fe<<13|V>>>19)^(V<<3|fe>>>29)^(fe<<26|V>>>6))>>>0,bc=t[zt-15],fe=bc[0],V=bc[1],s=((fe>>>1|V<<31)^(fe>>>8|V<<24)^fe>>>7)>>>0,o=((fe<<31|V>>>1)^(fe<<24|V>>>8)^(fe<<25|V>>>7))>>>0,vc=t[zt-7],_c=t[zt-16],V=i+vc[1]+o+_c[1],t[zt][0]=n+vc[0]+s+_c[0]+(V/4294967296>>>0)>>>0,t[zt][1]=V>>>0;for(m=r[0][0],y=r[0][1],g=r[1][0],x=r[1][1],_=r[2][0],O=r[2][1],C=r[3][0],B=r[3][1],X=r[4][0],J=r[4][1],Xt=r[5][0],Fe=r[5][1],we=r[6][0],ae=r[6][1],Zn=r[7][0],Zs=r[7][1],zt=0;zt<80;++zt)l=((X>>>14|J<<18)^(X>>>18|J<<14)^(J>>>9|X<<23))>>>0,u=((X<<18|J>>>14)^(X<<14|J>>>18)^(J<<23|X>>>9))>>>0,f=(we^X&(Xt^we))>>>0,h=(ae^J&(Fe^ae))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,d=(m&g|_&(m^g))>>>0,p=(y&x|O&(y^x))>>>0,V=Zs+u+h+bu[zt][1]+t[zt][1],n=Zn+l+f+bu[zt][0]+t[zt][0]+(V/4294967296>>>0)>>>0,i=V>>>0,V=c+p,s=a+d+(V/4294967296>>>0)>>>0,o=V>>>0,Zn=we,Zs=ae,we=Xt,ae=Fe,Xt=X,Fe=J,V=B+i,X=C+n+(V/4294967296>>>0)>>>0,J=V>>>0,C=_,B=O,_=g,O=x,g=m,x=y,V=i+o,m=n+s+(V/4294967296>>>0)>>>0,y=V>>>0;V=r[0][1]+y,r[0][0]=r[0][0]+m+(V/4294967296>>>0)>>>0,r[0][1]=V>>>0,V=r[1][1]+x,r[1][0]=r[1][0]+g+(V/4294967296>>>0)>>>0,r[1][1]=V>>>0,V=r[2][1]+O,r[2][0]=r[2][0]+_+(V/4294967296>>>0)>>>0,r[2][1]=V>>>0,V=r[3][1]+B,r[3][0]=r[3][0]+C+(V/4294967296>>>0)>>>0,r[3][1]=V>>>0,V=r[4][1]+J,r[4][0]=r[4][0]+X+(V/4294967296>>>0)>>>0,r[4][1]=V>>>0,V=r[5][1]+Fe,r[5][0]=r[5][0]+Xt+(V/4294967296>>>0)>>>0,r[5][1]=V>>>0,V=r[6][1]+ae,r[6][0]=r[6][0]+we+(V/4294967296>>>0)>>>0,r[6][1]=V>>>0,V=r[7][1]+Zs,r[7][0]=r[7][0]+Zn+(V/4294967296>>>0)>>>0,r[7][1]=V>>>0,Hf-=128}}});var Bg=T((AP,Cg)=>{function DS(){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)}Cg.exports=DS});var Mg=T(Vs=>{(function(){var r,t,e,n,i,s,o,a;a=function(c){var l,u,f,h;return l=(c&255<<24)>>>24,u=(c&255<<16)>>>16,f=(c&255<<8)>>>8,h=c&255,[l,u,f,h].join(".")},o=function(c){var l,u,f,h,d,p;for(l=[],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=t(c),d=p[0],u=p[1],c=c.substring(u),l.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(l.length){case 1:if(l[0]>4294967295)throw new Error("Invalid IP");return l[0]>>>0;case 2:if(l[0]>255||l[1]>16777215)throw new Error("Invalid IP");return(l[0]<<24|l[1])>>>0;case 3:if(l[0]>255||l[1]>255||l[2]>65535)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2])>>>0;case 4:if(l[0]>255||l[1]>255||l[2]>255||l[3]>255)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2]<<8|l[3])>>>0;default:throw new Error("Invalid IP")}},e=function(c){return c.charCodeAt(0)},n=e("0"),s=e("a"),i=e("A"),t=function(c){var l,u,f,h,d;for(h=0,l=10,u="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,l=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,l=8,u="7")),d=f;f<c.length;){if("0"<=c[f]&&c[f]<=u)h=h*l+(e(c[f])-n)>>>0;else if(l===16)if("a"<=c[f]&&c[f]<="f")h=h*l+(10+e(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")h=h*l+(10+e(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]},r=function(){function c(l,u){var f,h,d,p;if(typeof l!="string")throw new Error("Missing `net' parameter");if(u||(p=l.split("/",2),l=p[0],u=p[1]),u||(u=32),typeof u=="string"&&u.indexOf(".")>-1){try{this.maskLong=o(u)}catch(m){throw f=m,new Error("Invalid mask: "+u)}for(h=d=32;d>=0;h=--d)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;break}}else if(u||u===0)this.bitmask=parseInt(u,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(l)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+l)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+u);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(l){return typeof l=="string"&&(l.indexOf("/")>0||l.split(".").length!==4)&&(l=new c(l)),l instanceof c?this.contains(l.base)&&this.contains(l.broadcast||l.last):(o(l)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(l){return l==null&&(l=1),new c(a(this.netLong+this.size*l),this.mask)},c.prototype.forEach=function(l){var u,f,h;for(h=o(this.first),f=o(this.last),u=0;h<=f;)l(a(h),h,u),u++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Vs.ip2long=o,Vs.long2ip=a,Vs.Netmask=r}).call(Vs)});var Vg=T((Kg,Ma)=>{(function(r){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(d,p){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let m=0,y=-1,g=(d.match(a.zoneIndex)||[])[0],x,_;for(g&&(g=g.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)m++;if(d.substr(0,2)==="::"&&m--,d.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,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 O=d.split(":"),C=[];for(let B=0;B<O.length;B++)C.push(parseInt(O[B],16));return C}(),{parts:p,zoneId:g}}function l(d,p,m,y){if(d.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),d[g]>>x!==p[g]>>x)return!1;y-=m,g+=1}return!0}function u(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 m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=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,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return l(this.octets,p.octets,8,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,_;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(_=y[x],m&&_!==0)return null;_!==8&&(m=!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),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(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,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(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 m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,m,y;if(p=d.match(e.fourOctet))return function(){let g=p.slice(1,6),x=[];for(let _=0;_<g.length;_++)m=g[_],x.push(u(m));return x}();if(p=d.match(e.longValue)){if(y=u(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(p=d.match(e.twoOctet))?function(){let g=p.slice(1,4),x=[];if(y=u(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(u(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(p=d.match(e.threeOctet))?function(){let g=p.slice(1,5),x=[];if(y=u(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(u(g[0])),x.push(u(g[1])),x.push(y>>8&255),x.push(y&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],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.IPv6=function(){function d(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return 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,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return l(this.parts,p.parts,16,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!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,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},d.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},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),m=p[0],y=p[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},d.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=p.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},d.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},d}(),h.IPv6.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(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,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have 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,m,y;if((m=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,m,y,g,x,_;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return 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],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=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,m){let y,g,x,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(x=p[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(_=x[y],d.kind()===_[0].kind()&&d.match.apply(d,_))return g}return m},typeof Ma<"u"&&Ma.exports?Ma.exports=h:r.ipaddr=h})(Kg)});var Xg=T((DN,lf)=>{"use strict";var $S=Object.prototype.hasOwnProperty,ue="~";function $s(){}Object.create&&($s.prototype=Object.create(null),new $s().__proto__||(ue=!1));function zS(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function Qg(r,t,e,n,i){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new zS(e,n||r,i),o=ue?ue+t:t;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],s]:r._events[o].push(s):(r._events[o]=s,r._eventsCount++),r}function Xa(r,t){--r._eventsCount===0?r._events=new $s:delete r._events[t]}function oe(){this._events=new $s,this._eventsCount=0}oe.prototype.eventNames=function(){var t=[],e,n;if(this._eventsCount===0)return t;for(n in e=this._events)$S.call(e,n)&&t.push(ue?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};oe.prototype.listeners=function(t){var e=ue?ue+t:t,n=this._events[e];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};oe.prototype.listenerCount=function(t){var e=ue?ue+t:t,n=this._events[e];return n?n.fn?1:n.length:0};oe.prototype.emit=function(t,e,n,i,s,o){var a=ue?ue+t:t;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,s),!0;case 6:return c.fn.call(c.context,e,n,i,s,o),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var h=c.length,d;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,e);break;case 3:c[f].fn.call(c[f].context,e,n);break;case 4:c[f].fn.call(c[f].context,e,n,i);break;default:if(!u)for(d=1,u=new Array(l-1);d<l;d++)u[d-1]=arguments[d];c[f].fn.apply(c[f].context,u)}}return!0};oe.prototype.on=function(t,e,n){return Qg(this,t,e,n,!1)};oe.prototype.once=function(t,e,n){return Qg(this,t,e,n,!0)};oe.prototype.removeListener=function(t,e,n,i){var s=ue?ue+t:t;if(!this._events[s])return this;if(!e)return Xa(this,s),this;var o=this._events[s];if(o.fn)o.fn===e&&(!i||o.once)&&(!n||o.context===n)&&Xa(this,s);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==e||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:Xa(this,s)}return this};oe.prototype.removeAllListeners=function(t){var e;return t?(e=ue?ue+t:t,this._events[e]&&Xa(this,e)):(this._events=new $s,this._eventsCount=0),this};oe.prototype.off=oe.prototype.removeListener;oe.prototype.addListener=oe.prototype.on;oe.prefixed=ue;oe.EventEmitter=oe;typeof lf<"u"&&(lf.exports=oe)});var mw=T((Xk,pw)=>{"use strict";pw.exports=dw;var ZS=Sc(),pn=dw.prototype,JS=new Date%1e9;function jS(){return(Math.random()*1e9>>>0)+JS++}function dw(r){r=r||{},this.id=r.id||jS(),this.max=r.max||1/0,this.items=r.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(r.lastModified||new Date);for(var t,e,n=this.items.length;n--;)t=this.items[n],e=new Date(t.expires)-new Date,this._lookup[t.key]=t,e>0?this.expire(t.key,e):e<=0&&this.delete(t.key)}pn.has=function(r){return r in this._lookup};pn.get=function(r){if(!this.has(r))return null;var t=this._lookup[r];return t.refresh&&this.expire(r,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};pn.meta=function(r){if(!this.has(r))return null;var t=this._lookup[r];return"meta"in t?t.meta:null};pn.set=function(r,t,e){var n=this._lookup[r],i=this._lookup[r]={key:r,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),e&&("ttl"in e&&this.expire(r,e.ttl),"meta"in e&&(i.meta=e.meta),e.refresh&&(i.refresh=e.ttl)),this};pn.delete=function(r){var t=this._lookup[r];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[r],this.size--,this):!1};pn.expire=function(r,t){var e=t||0,n=this._lookup[r];if(!n)return this;if(typeof e=="string"&&(e=ZS(t)),typeof e!="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),e),n.expires=Number(new Date)+e,this};pn.clear=function(){for(var r=this.items.length;r--;)this.delete(this.items[r].key);return this};pn.toJSON=function(){for(var r=new Array(this.items.length),t,e=r.length;e--;)t=this.items[e],r[e]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:r}}});var Vf=T((B6,Kf)=>{function Sw(r){let t=new globalThis.AbortController;function e(){t.abort();for(let n of r)!n||!n.removeEventListener||n.removeEventListener("abort",e)}for(let n of r)if(!(!n||!n.addEventListener)){if(n.aborted){e();break}n.addEventListener("abort",e)}return t.signal}Kf.exports=Sw;Kf.exports.anySignal=Sw});var Rw=T((L6,Aw)=>{Aw.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Cw=T((N6,Tw)=>{var Iw=Rw();Tw.exports=class{constructor(t){this.hwm=t||16,this.head=new Iw(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let e=this.head;this.head=e.next=new Iw(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next){let e=this.tail.next;return this.tail.next=null,this.tail=e,this.tail.shift()}return t}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var Dw=T((k6,Bw)=>{"use strict";var sA=()=>{let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r};Bw.exports=sA});var kw=T((M6,Nw)=>{var Lw=Cw(),Pw=Dw();Nw.exports=class{constructor(){this._buffer=new Lw,this._waitingConsumers=new Lw}push(t){let{promise:e,resolve:n}=Pw();return this._buffer.push({chunk:t,resolve:n}),this._consume(),e}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let t=this._waitingConsumers.shift(),e=this._buffer.shift();t.resolve(e.chunk),e.resolve()}}shift(){let{promise:t,resolve:e}=Pw();return this._waitingConsumers.push({resolve:e}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var lA={};ne(lA,{createLibp2p:()=>cA});var Ce=N(Ac(),1);var Bc={};ne(Bc,{base58btc:()=>Mt,base58flickr:()=>h1});function a1(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var i=0;i<r.length;i++){var s=r.charAt(i),o=s.charCodeAt(0);if(e[o]!==255)throw new TypeError(s+" is ambiguous");e[o]=i}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=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 m=0,y=0,g=0,x=p.length;g!==x&&p[g]===0;)g++,m++;for(var _=(x-g)*u+1>>>0,O=new Uint8Array(_);g!==x;){for(var C=p[g],B=0,X=_-1;(C!==0||B<y)&&X!==-1;X--,B++)C+=256*O[X]>>>0,O[X]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=B,g++}for(var J=_-y;J!==_&&O[J]===0;)J++;for(var Xt=c.repeat(m);J<_;++J)Xt+=r.charAt(O[J]);return Xt}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var x=(p.length-m)*l+1>>>0,_=new Uint8Array(x);p[m];){var O=e[p.charCodeAt(m)];if(O===255)return;for(var C=0,B=x-1;(O!==0||C<g)&&B!==-1;B--,C++)O+=a*_[B]>>>0,_[B]=O%256>>>0,O=O/256>>>0;if(O!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var X=x-g;X!==x&&_[X]===0;)X++;for(var J=new Uint8Array(y+(x-X)),Xt=y;X!==x;)J[Xt++]=_[X++];return J}}}function d(p){var m=h(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:d}}var c1=a1,l1=c1,Xf=l1;var pA=new Uint8Array(0);var Zf=(r,t)=>{if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0},gr=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")};var Jf=r=>new TextEncoder().encode(r),jf=r=>new TextDecoder().decode(r);var Rc=class{constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ic=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return eh(this,t)}},Tc=class{constructor(t){this.decoders=t}or(t){return eh(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},eh=(r,t)=>new Tc({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),Cc=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new Rc(t,e,n),this.decoder=new Ic(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},ei=({name:r,prefix:t,encode:e,decode:n})=>new Cc(r,t,e,n),Fr=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=Xf(e,t);return ei({prefix:r,name:t,encode:n,decode:s=>gr(i(s))})},u1=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let s=r.length;for(;r[s-1]==="=";)--s;let o=new Uint8Array(s*e/8|0),a=0,c=0,l=0;for(let u=0;u<s;++u){let f=i[r[u]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|f,a+=e,a>=8&&(a-=8,o[l++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},f1=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,s="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>e;)o-=e,s+=t[i&a>>o];if(o&&(s+=t[i&a<<e-o]),n)for(;s.length*e&7;)s+="=";return s},Lt=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>ei({prefix:t,name:r,encode(i){return f1(i,n,e)},decode(i){return u1(i,n,e,r)}});var Mt=Fr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),h1=Fr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Dc={};ne(Dc,{base32:()=>xe,base32hex:()=>y1,base32hexpad:()=>w1,base32hexpadupper:()=>E1,base32hexupper:()=>g1,base32pad:()=>p1,base32padupper:()=>m1,base32upper:()=>d1,base32z:()=>x1});var xe=Lt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),d1=Lt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),p1=Lt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),m1=Lt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),y1=Lt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),g1=Lt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),w1=Lt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),E1=Lt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),x1=Lt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Lc={};ne(Lc,{base64:()=>yn,base64pad:()=>v1,base64url:()=>b1,base64urlpad:()=>_1});var yn=Lt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),v1=Lt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),b1=Lt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),_1=Lt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});Ce.default.formatters.b=r=>r==null?"undefined":Mt.baseEncode(r);Ce.default.formatters.t=r=>r==null?"undefined":xe.baseEncode(r);Ce.default.formatters.m=r=>r==null?"undefined":yn.baseEncode(r);Ce.default.formatters.p=r=>r==null?"undefined":r.toString();Ce.default.formatters.c=r=>r==null?"undefined":r.toString();Ce.default.formatters.k=r=>r==null?"undefined":r.toString();function S1(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function U(r){let t=S1(`${r}:trace`);return Ce.default.enabled(`${r}:trace`)&&Ce.default.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=(0,Ce.default)(`${r}:trace`)),Object.assign((0,Ce.default)(r),{error:(0,Ce.default)(`${r}:error`),trace:t})}var gn=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},wr,Pt=class extends EventTarget{constructor(){super(...arguments),wr.set(this,new Map)}listenerCount(t){let e=gn(this,wr,"f").get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let i=gn(this,wr,"f").get(t);i==null&&(i=[],gn(this,wr,"f").set(t,i)),i.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let i=gn(this,wr,"f").get(t);i!=null&&(i=i.filter(({callback:s})=>s!==e),gn(this,wr,"f").set(t,i))}dispatchEvent(t){let e=super.dispatchEvent(t),n=gn(this,wr,"f").get(t.type);return n==null||(n=n.filter(({once:i})=>!i),gn(this,wr,"f").set(t.type,n)),e}safeDispatchEvent(t,e){return this.dispatchEvent(new $(t,e))}};wr=new WeakMap;var Pc=class extends Event{constructor(t,e){super(t,e),this.detail=e?.detail}},$=globalThis.CustomEvent??Pc;function Er(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var eo=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*i)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let h=Number.parseInt(f,t);if(!Number.isNaN(h))return h});if(u===void 0)break;if(s*=t,s+=u,s>l||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let i=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[i]=o[0],e[i+1]=o[1],e[i+2]=o[2],e[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];e[i]=s>>8,e[i+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,i]=t(e);if(n===16)return e;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=t(s.subarray(0,o));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var rh=45,A1=15,ri=new eo;function Nc(r){if(!(r.length>A1))return ri.new(r).parseWith(()=>ri.readIPv4Addr())}function kc(r){if(!(r.length>rh))return ri.new(r).parseWith(()=>ri.readIPv6Addr())}function ro(r){if(!(r.length>rh))return ri.new(r).parseWith(()=>ri.readIPAddr())}function nh(r){return!!Nc(r)}function ih(r){return!!kc(r)}function ni(r){return!!ro(r)}var Oc={};ne(Oc,{identity:()=>R1});var R1=ei({prefix:"\0",name:"identity",encode:r=>jf(r),decode:r=>Jf(r)});var Mc={};ne(Mc,{base2:()=>I1});var I1=Lt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Uc={};ne(Uc,{base8:()=>T1});var T1=Lt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Fc={};ne(Fc,{base10:()=>C1});var C1=Fr({prefix:"9",name:"base10",alphabet:"0123456789"});var Kc={};ne(Kc,{base16:()=>B1,base16upper:()=>D1});var B1=Lt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),D1=Lt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Vc={};ne(Vc,{base36:()=>L1,base36upper:()=>P1});var L1=Fr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),P1=Fr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var qc={};ne(qc,{base256emoji:()=>U1});var sh=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}"),N1=sh.reduce((r,t,e)=>(r[e]=t,r),[]),k1=sh.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function O1(r){return r.reduce((t,e)=>(t+=N1[e],t),"")}function M1(r){let t=[];for(let e of r){let n=k1[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var U1=ei({prefix:"\u{1F680}",name:"base256emoji",encode:O1,decode:M1});var Gc={};ne(Gc,{sha256:()=>ie,sha512:()=>nE});var F1=ch,oh=128,K1=127,V1=~K1,q1=Math.pow(2,31);function ch(r,t,e){t=t||[],e=e||0;for(var n=e;r>=q1;)t[e++]=r&255|oh,r/=128;for(;r&V1;)t[e++]=r&255|oh,r>>>=7;return t[e]=r|0,ch.bytes=e-n+1,t}var $1=$c,z1=128,ah=127;function $c(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a)throw $c.bytes=0,new RangeError("Could not decode varint");o=r[s++],e+=i<28?(o&ah)<<i:(o&ah)*Math.pow(2,i),i+=7}while(o>=z1);return $c.bytes=s-n,e}var H1=Math.pow(2,7),G1=Math.pow(2,14),Y1=Math.pow(2,21),W1=Math.pow(2,28),Q1=Math.pow(2,35),X1=Math.pow(2,42),Z1=Math.pow(2,49),J1=Math.pow(2,56),j1=Math.pow(2,63),tE=function(r){return r<H1?1:r<G1?2:r<Y1?3:r<W1?4:r<Q1?5:r<X1?6:r<Z1?7:r<J1?8:r<j1?9:10},eE={encode:F1,decode:$1,encodingLength:tE},rE=eE,qi=rE;var $i=(r,t=0)=>[qi.decode(r,t),qi.decode.bytes],ii=(r,t,e=0)=>(qi.encode(r,t,e),t),si=r=>qi.encodingLength(r);var Je=(r,t)=>{let e=t.byteLength,n=si(r),i=n+si(e),s=new Uint8Array(i+e);return ii(r,s,0),ii(e,s,n),s.set(t,i),new oi(r,e,t,s)},wn=r=>{let t=gr(r),[e,n]=$i(t),[i,s]=$i(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new oi(e,i,o,t)},lh=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Zf(r.bytes,e.bytes)}},oi=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var Hc=({name:r,code:t,encode:e})=>new zc(r,t,e),zc=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?Je(this.code,e):e.then(n=>Je(this.code,n))}else throw Error("Unknown type, must be binary type")}};var fh=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),ie=Hc({name:"sha2-256",code:18,encode:fh("SHA-256")}),nE=Hc({name:"sha2-512",code:19,encode:fh("SHA-512")});var Yc={};ne(Yc,{identity:()=>Kr});var hh=0,iE="identity",dh=gr,sE=r=>Je(hh,dh(r)),Kr={code:hh,name:iE,encode:dh,digest:sE};var GA=new TextEncoder,YA=new TextDecoder;var ph=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return lE(e,Wc(r),t||Mt.encoder);default:return uE(e,Wc(r),t||xe.encoder)}};var mh=new WeakMap,Wc=r=>{let t=mh.get(r);if(t==null){let e=new Map;return mh.set(r,e),e}return t},Et=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==zi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==fE)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return Et.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=Je(t,e);return Et.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return Et.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&lh(t.multihash,n.multihash)}toString(t){return ph(this,t)}toJSON(){return{"/":ph(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof Et)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:s,bytes:o}=e;return new Et(n,i,s,o||yh(n,i,s.bytes))}else if(e[hE]===!0){let{version:n,multihash:i,code:s}=e,o=wn(i);return Et.create(n,s,o)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==zi)throw new Error(`Version 0 CID must use dag-pb (code: ${zi}) block encoding`);return new Et(t,e,n,n.bytes)}case 1:{let i=yh(t,e,n.bytes);return new Et(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return Et.create(0,zi,t)}static createV1(t,e){return Et.create(1,t,e)}static decode(t){let[e,n]=Et.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=Et.inspectBytes(t),n=e.size-e.multihashSize,i=gr(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=i.subarray(e.multihashSize-e.digestSize),o=new oi(e.multihashCode,e.digestSize,s,i);return[e.version===0?Et.createV0(o):Et.createV1(e.codec,o),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[f,h]=$i(t.subarray(e));return e+=h,f},i=n(),s=zi;if(i===18?(i=0,e=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=e,a=n(),c=n(),l=e+c,u=l-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(t,e){let[n,i]=cE(t,e),s=Et.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Wc(s).set(n,t),s}},cE=(r,t)=>{switch(r[0]){case"Q":{let e=t||Mt;return[Mt.prefix,e.decode(`${Mt.prefix}${r}`)]}case Mt.prefix:{let e=t||Mt;return[Mt.prefix,e.decode(r)]}case xe.prefix:{let e=t||xe;return[xe.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},lE=(r,t,e)=>{let{prefix:n}=e;if(n!==Mt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return i},uE=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let s=e.encode(r);return t.set(n,s),s}else return i},zi=112,fE=18,yh=(r,t,e)=>{let n=si(r),i=n+si(t),s=new Uint8Array(i+e.byteLength);return ii(r,s,0),ii(t,s,n),s.set(e,i),s},hE=Symbol.for("@ipld/js-cid/CID");var Vr={...Oc,...Mc,...Uc,...Fc,...Kc,...Dc,...Vc,...Bc,...Lc,...qc},nR={...Gc,...Yc};function xn(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function xr(r=0){return globalThis.Buffer?.alloc!=null?xn(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function vr(r=0){return globalThis.Buffer?.allocUnsafe!=null?xn(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function wh(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var gh=wh("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Qc=wh("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=vr(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),dE={utf8:gh,"utf-8":gh,hex:Vr.base16,latin1:Qc,ascii:Qc,binary:Qc,...Vr},io=dE;function z(r,t="utf8"){let e=io[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var Eh=nh,pE=ih,Xc=function(r){let t=0;if(r=r.toString().trim(),Eh(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(pE(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Eh(e[n]),o;s&&(o=Xc(e[n]),e[n]=z(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,z(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let i=new Uint8Array(t+16);for(n=0;n<e.length;n++){let s=parseInt(e[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},xh=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let i=[];for(let s=0;s<e;s++)i.push(r[t+s]);return i.join(".")}if(e===16){let i=[];for(let s=0;s<e;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Hi={},Zc={},yE=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];yE.forEach(r=>{let t=gE(...r);Zc[t.code]=t,Hi[t.name]=t});function gE(r,t,e,n,i){return{code:r,size:t,name:e,resolvable:!!n,path:!!i}}function j(r){if(typeof r=="number"){if(Zc[r]!=null)return Zc[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Hi[r]!=null)return Hi[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var je=N(so(),1);function F(r,t="utf8"){let e=io[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?xn(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}function Ut(r,t){t==null&&(t=r.reduce((i,s)=>i+s.length,0));let e=vr(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return xn(e)}var PR=parseInt("0xFFFF",16),NR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var fI=j("ip4"),hI=j("ip6"),dI=j("ipcidr");function Oh(r,t){switch(j(r).code){case 4:case 41:return OE(t);case 42:return Nh(t);case 6:case 273:case 33:case 132:return Uh(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Nh(t);case 421:return KE(t);case 444:return kh(t);case 445:return kh(t);case 466:return FE(t);default:return z(t,"base16")}}function Mh(r,t){switch(j(r).code){case 4:return Lh(t);case 41:return Lh(t);case 42:return Ph(t);case 6:case 273:case 33:case 132:return el(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ph(t);case 421:return ME(t);case 444:return VE(t);case 445:return qE(t);case 466:return UE(t);default:return F(t,"base16")}}var tl=Object.values(Vr).map(r=>r.decoder),kE=function(){let r=tl[0].or(tl[1]);return tl.slice(2).forEach(t=>r=r.or(t)),r}();function Lh(r){if(!ni(r))throw new Error("invalid ip address");return Xc(r)}function OE(r){let t=xh(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!ni(t))throw new Error("invalid ip address");return t}function el(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Uh(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Ph(r){let t=F(r),e=Uint8Array.from(je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function Nh(r){let t=je.default.decode(r);if(r=r.slice(je.default.decode.bytes),r.length!==t)throw new Error("inconsistent lengths");return z(r)}function ME(r){let t;r[0]==="Q"||r[0]==="1"?t=wn(Mt.decode(`z${r}`)).bytes:t=Et.parse(r).multihash.bytes;let e=Uint8Array.from(je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function UE(r){let t=kE.decode(r),e=Uint8Array.from(je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function FE(r){let t=je.default.decode(r),e=r.slice(je.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return"u"+z(e,"base64url")}function KE(r){let t=je.default.decode(r),e=r.slice(je.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return z(e,"base58btc")}function VE(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=xe.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=el(n);return Ut([e,i],e.length+i.length)}function qE(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=xe.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=el(n);return Ut([e,i],e.length+i.length)}function kh(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=z(t,"base32"),i=Uh(e);return`${n}:${i}`}var ai=N(so(),1);function $E(r){let t=[],e=r.split("/").slice(1);if(e.length===1&&e[0]==="")return[];for(let n=0;n<e.length;n++){let i=e[n],s=j(i);if(s.size===0){t.push([i]);continue}if(n++,n>=e.length)throw Kh("invalid address: "+r);if(s.path===!0){t.push([i,ol(e.slice(n).join("/"))]);break}t.push([i,e[n]])}return t}function zE(r){let t=[];return r.map(e=>{let n=co(e);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),ol(t.join("/"))}function HE(r){return r.map(t=>{Array.isArray(t)||(t=[t]);let e=co(t);return t.length>1?[e.code,Mh(e.code,t[1])]:[e.code]})}function rl(r){return r.map(t=>{let e=co(t);return t[1]!=null?[e.code,Oh(e.code,t[1])]:[e.code]})}function nl(r){return ao(Ut(r.map(t=>{let e=co(t),n=Uint8Array.from(ai.default.encode(e.code));return t.length>1&&t[1]!=null&&(n=Ut([n,t[1]])),n})))}function il(r,t){return r.size>0?r.size/8:r.size===0?0:ai.default.decode(t)+(ai.default.decode.bytes??0)}function oo(r){let t=[],e=0;for(;e<r.length;){let n=ai.default.decode(r,e),i=ai.default.decode.bytes??0,s=j(n),o=il(s,r.slice(e+i));if(o===0){t.push([n]),e+=i;continue}let a=r.slice(e+i,e+i+o);if(e+=o+i,e>r.length)throw Kh("Invalid address Uint8Array: "+z(r,"base16"));t.push([n,a])}return t}function sl(r){let t=oo(r),e=rl(t);return zE(e)}function GE(r){r=ol(r);let t=$E(r),e=HE(t);return nl(e)}function Fh(r){return GE(r)}function ao(r){let t=YE(r);if(t!=null)throw t;return Uint8Array.from(r)}function YE(r){try{oo(r)}catch(t){return t}}function ol(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Kh(r){return new Error("Error parsing address: "+r)}function co(r){return j(r[0])}var cl=N(so(),1);var zh=N(ci(),1);function xt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var li=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},al=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},Gi,Yi,Wi,$h,XE=Symbol.for("nodejs.util.inspect.custom"),ZE=[j("dns").code,j("dns4").code,j("dns6").code,j("dnsaddr").code],ll=new Map,Hh=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Gh(r,t){if(r==null)throw new Error("requires node address object");if(t==null)throw new Error("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],e=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new tr("/"+[e,n,t,r.port].join("/"))}function ve(r){return!!r?.[Hh]}var tr=class{constructor(t){if(Gi.set(this,void 0),Yi.set(this,void 0),Wi.set(this,void 0),this[$h]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=ao(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Fh(t)}else if(ve(t))this.bytes=ao(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return li(this,Gi,"f")==null&&al(this,Gi,sl(this.bytes),"f"),li(this,Gi,"f")}toJSON(){return this.toString()}toOptions(){let t,e,n,i,s="",o=j("tcp"),a=j("udp"),c=j("ip4"),l=j("ip6"),u=j("dns6"),f=j("ip6zone");for(let[d,p]of this.stringTuples())d===f.code&&(s=`%${p??""}`),ZE.includes(d)&&(e=o.name,i=443,n=`${p??""}${s}`,t=d===u.code?6:4),(d===o.code||d===a.code)&&(e=j(d).name,i=parseInt(p??"")),(d===c.code||d===l.code)&&(e=j(d).name,n=`${p??""}${s}`,t=d===l.code?6:4);if(t==null||e==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:i}}protos(){return this.protoCodes().map(t=>Object.assign({},j(t)))}protoCodes(){let t=[],e=this.bytes,n=0;for(;n<e.length;){let i=cl.default.decode(e,n),s=cl.default.decode.bytes??0,o=j(i),a=il(o,e.slice(n+s));n+=a+s,t.push(i)}return t}protoNames(){return this.protos().map(t=>t.name)}tuples(){return li(this,Yi,"f")==null&&al(this,Yi,oo(this.bytes),"f"),li(this,Yi,"f")}stringTuples(){return li(this,Wi,"f")==null&&al(this,Wi,rl(this.tuples()),"f"),li(this,Wi,"f")}encapsulate(t){return t=new tr(t),new tr(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),i=n.lastIndexOf(e);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new tr(n.slice(0,i))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new tr(nl(e.slice(0,n)));return this}getPeerId(){try{let e=this.stringTuples().filter(n=>n[0]===Hi.ipfs.code).pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?z(Mt.decode(`z${n}`),"base58btc"):z(Et.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let t=null;try{t=this.stringTuples().filter(e=>j(e[0]).path===!0)[0][1],t==null&&(t=null)}catch{t=null}return t}equals(t){return xt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(s=>s.resolvable);if(e==null)return[this];let n=ll.get(e.name);if(n==null)throw(0,zh.default)(new Error(`no available resolver for ${e.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new tr(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[(Gi=new WeakMap,Yi=new WeakMap,Wi=new WeakMap,$h=Hh,XE)](){return`Multiaddr(${sl(this.bytes)})`}};function _t(r){return new tr(r)}async function ul(r){let t=[];for await(let e of r)t.push(e);return t}async function*lo(r,t){yield*(await ul(r)).sort(t)}async function Ke(r){for await(let t of r);}async function*Be(r,t){for await(let e of r)await t(e)&&(yield e)}async function*uo(r,t){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}var fo=class{put(t,e,n){return Promise.reject(new Error(".put is not implemented"))}get(t,e){return Promise.reject(new Error(".get is not implemented"))}has(t,e){return Promise.reject(new Error(".has is not implemented"))}delete(t,e){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,e={}){for await(let{key:n,value:i}of t)await this.put(n,i,e),yield n}async*getMany(t,e={}){for await(let n of t)yield{key:n,value:await this.get(n,e)}}async*deleteMany(t,e={}){for await(let n of t)await this.delete(n,e),yield n}batch(){let t=[],e=[];return{put(n,i){t.push({key:n,value:i})},delete(n){e.push(n)},commit:async n=>{await Ke(this.putMany(t,n)),t=[],await Ke(this.deleteMany(e,n)),e=[]}}}async*_all(t,e){throw new Error("._all is not implemented")}async*_allKeys(t,e){throw new Error("._allKeys is not implemented")}query(t,e){let n=this._all(t,e);if(t.prefix!=null){let i=t.prefix;n=Be(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Be(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>lo(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=Be(n,()=>i++>=s)}return t.limit!=null&&(n=uo(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null){let i=t.prefix;n=Be(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Be(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>lo(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=Be(n,()=>s++>=i)}return t.limit!=null&&(n=uo(n,t.limit)),n}};var ho=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((t,e)=>(e&=63,e<36?t+=e.toString(36):e<62?t+=(e-26).toString(36).toUpperCase():e>62?t+="-":t+="_",t),"");var br="/",Yh=new TextEncoder().encode(br),po=Yh[0],Nt=class{constructor(t,e){if(typeof t=="string")this._buf=F(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==po)throw new Error("Invalid key")}toString(t="utf8"){return z(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new Nt(t.join(br))}static random(){return new Nt(ho().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new Nt(t):typeof t.uint8Array=="function"?new Nt(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Yh),this._buf[0]!==po){let t=new Uint8Array(this._buf.byteLength+1);t.fill(po,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===po;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let i=0;i<e.length;i++){if(n.length<i+1)return!1;let s=e[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return e.length<n.length}reverse(){return Nt.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(br).slice(1)}type(){return JE(this.baseNamespace())}name(){return jE(this.baseNamespace())}instance(t){return new Nt(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(br)||(t+=br),t+=this.type(),new Nt(t)}parent(){let t=this.list();return t.length===1?new Nt(br):new Nt(t.slice(0,-1).join(br))}child(t){return this.toString()===br?t:t.toString()===br?this:new Nt(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return Nt.withNamespaces([...this.namespaces(),...tx(t.map(e=>e.namespaces()))])}};function JE(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function jE(r){let t=r.split(":");return t[t.length-1]}function tx(r){return[].concat(...r)}var Wh=N(ci(),1);function Qh(r){return r=r??new Error("Not Found"),(0,Wh.default)(r,"ERR_NOT_FOUND")}var mo=class extends fo{constructor(){super(),this.data=new Map}put(t,e){return this.data.set(t.toString(),e),t}get(t){let e=this.data.get(t.toString());if(e==null)throw Qh();return e}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,e]of this.data.entries())yield{key:new Nt(t),value:e}}*_allKeys(){for(let t of this.data.keys())yield new Nt(t)}};var w=class extends Error{constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var W;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.DHT_DISABLED="DHT is not available",r.PUBSUB_DISABLED="PubSub is not available",r.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",r.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(W||(W={}));var S;(function(r){r.DHT_DISABLED="ERR_DHT_DISABLED",r.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",r.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",r.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",r.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",r.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TIMEOUT="ERR_TIMEOUT",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",r.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(S||(S={}));async function*Qi(r,t){for await(let e of r)yield t(e)}async function*Xi(r,t){yield*Qi(r,async e=>(await t.addressBook.add(e.id,e.multiaddrs),e))}function yo(r){let t=new Set;return Be(r,e=>t.has(e.id.toString())?!1:(t.add(e.id.toString()),!0))}async function*go(r,t=1){let e=0;for await(let n of r)e++,yield n;if(e<t)throw new w("not found","NOT_FOUND")}var m0=N(_r(),1);var Eo=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},ui=class{constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Eo(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new Eo(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};function vn(r={}){return ix(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function ix(r,t){t=t??{};let e=t.onEnd,n=new ui,i,s,o,a=async()=>n.isEmpty()?o?{done:!0}:await new Promise((m,y)=>{s=g=>{s=null,n.push(g);try{m(r(n))}catch(x){y(x)}return i}}):r(n),c=m=>s!=null?s(m):(n.push(m),i),l=m=>(n=new ui,s!=null?s({error:m}):(n.push({error:m}),i)),u=m=>{if(o)return i;if(t?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>o?i:(o=!0,m!=null?l(m):c({done:!0})),h=()=>(n=new ui,f(),{done:!0}),d=m=>(f(m),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:h,throw:d,push:u,end:f,get readableLength(){return n.size}},e==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),e!=null&&(e(m),e=void 0),{done:!0}},return(){return p.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(m){return p.end(m),e!=null&&(e(m),e=void 0),i},get readableLength(){return p.readableLength}},i}async function*Sr(...r){let t=vn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async e=>{for await(let n of e)t.push(n)})),t.end()}catch(e){t.end(e)}}),yield*t}var sx=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},e0=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),dl=r=>r!=null&&typeof r.sink=="function"&&e0(r.source),ox=r=>t=>{let e=r.sink(t);if(e.then!=null){let n=vn({objectMode:!0});return e.then(()=>{n.end()},s=>{n.end(s)}),Sr(n,async function*(){yield*r.source,n.end()}())}return r.source};function Ft(r,...t){if(dl(r)){let n=r;r=()=>n.source}else if(e0(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&dl(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)dl(e[n])&&(e[n]=ox(e[n]));return sx(...e)}async function se(r){for await(let t of r)return t}var _o=N(n0(),1),y0=N(er(),1),p0=U("libp2p:peer-routing"),bo=class{constructor(t,e){this.components=t,this.routers=e.routers??[],this.refreshManagerInit=e.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,_o.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new m0.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,y0.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await Ke(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){p0.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,_o.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(t,e){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",S.ERR_FIND_SELF);let n=await Ft(Sr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,e)}catch(s){p0.error(s)}}())),i=>Be(i,Boolean),i=>Xi(i,this.components.peerStore),async i=>await se(i));if(n!=null)return n;throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getClosestPeers(t,e){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ft(Sr(...this.routers.map(n=>n.getClosestPeers(t,e))),n=>Xi(n,this.components.peerStore),n=>yo(n),n=>go(n))}};var So=class{constructor(t,e){this.routers=e.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,e={}){if(this.routers.length===0)throw new w("No content this.routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ft(Sr(...this.routers.map(n=>n.findProviders(t,e))),n=>Xi(n,this.components.peerStore),n=>yo(n),n=>go(n))}async provide(t,e={}){if(this.routers.length===0)throw new w("No content routers available",S.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,e)}))}async put(t,e,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await Ke(i.put(t,e,n))}async get(t,e){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(t,e))if(i.name==="VALUE")return i.value}throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getMany(t,e,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);if(e==null||e===0)return;let i=0,s=this.components.dht;if(s!=null){for await(let o of s.get(t,n))if(o.name==="VALUE"&&(yield{from:o.from,val:o.value},i++,i===e))break}if(i===0)throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}};var ml=Symbol.for("@libp2p/peer-id");function bn(r){return r!=null&&!!r[ml]}var gx=Symbol.for("nodejs.util.inspect.custom"),g0=Object.values(Vr).map(r=>r.decoder).reduce((r,t)=>r.or(t),Vr.identity.decoder),w0=114,yl=36,gl=37,Ji=class{constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[ml](){return!0}toString(){return this.string==null&&(this.string=Mt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Et.createV1(w0,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return xt(this.multihash.bytes,t);if(typeof t=="string")return at(t).equals(this);if(t?.multihash?.bytes!=null)return xt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[gx](){return`PeerId(${this.toString()})`}},_n=class extends Ji{constructor(t){super({...t,type:"RSA"}),this.type="RSA",this.publicKey=t.publicKey}},Sn=class extends Ji{constructor(t){super({...t,type:"Ed25519"}),this.type="Ed25519",this.publicKey=t.multihash.digest}},An=class extends Ji{constructor(t){super({...t,type:"secp256k1"}),this.type="secp256k1",this.publicKey=t.multihash.digest}};function Kt(r){if(r.type==="RSA")return new _n(r);if(r.type==="Ed25519")return new Sn(r);if(r.type==="secp256k1")return new An(r);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function at(r,t){if(t=t??g0,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=wn(Mt.decode(`z${r}`));return r.startsWith("12D")?new Sn({multihash:e}):r.startsWith("16U")?new An({multihash:e}):new _n({multihash:e})}return qr(g0.decode(r))}function qr(r){try{let t=wn(r);if(t.code===Kr.code){if(t.digest.length===yl)return new Sn({multihash:t});if(t.digest.length===gl)return new An({multihash:t})}if(t.code===ie.code)return new _n({multihash:t})}catch{return wx(Et.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function wx(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==w0)throw new Error("Supplied PeerID CID is invalid");let t=r.multihash;if(t.code===ie.code)return new _n({multihash:r.multihash});if(t.code===Kr.code){if(t.digest.length===yl)return new Sn({multihash:r.multihash});if(t.digest.length===gl)return new An({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function $r(r,t){return r.length===yl?new Sn({multihash:Je(Kr.code,r),privateKey:t}):r.length===gl?new An({multihash:Je(Kr.code,r),privateKey:t}):new _n({multihash:await ie.digest(r),publicKey:r,privateKey:t})}var Ex=r=>r;function wl(r,t){let e=r.getPeerId();return e!=null&&at(e).equals(t)&&(r=r.decapsulate(_t(`/p2p/${t.toString()}`))),r}var Ao=class extends Pt{constructor(t,e){super();let{listen:n=[],announce:i=[]}=e;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=e.announceFilter??Ex}getListenAddrs(){return Array.from(this.listen).map(t=>_t(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>_t(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>_t(t))}addObservedAddr(t){t=wl(t,this.components.peerId);let e=t.toString();this.observed.has(e)||this.observed.set(e,{confident:!1})}confirmObservedAddr(t){t=wl(t,this.components.peerId);let e=t.toString(),i=(this.observed.get(e)??{confident:!1}).confident;this.observed.set(e,{confident:!0}),i||this.dispatchEvent(new $("change:addresses"))}removeObservedAddr(t){t=wl(t,this.components.peerId);let e=t.toString();this.observed.delete(e)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let e=new Set(t);return this.announceFilter(Array.from(e).map(n=>_t(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var I0=N(R0(),1),De=I0.default;var T0=U("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),To=class extends Pt{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let t="hidden",e="visibilitychange";typeof globalThis.document.hidden<"u"?(t="hidden",e="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(t="mozHidden",e="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(t="msHidden",e="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(t="webkitHidden",e="webkitvisibilitychange"),this.hidden=t,this.visibilityChange=e}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?T0("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 t=globalThis.document[this.hidden]===!1;T0(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new $("visibilityChange",{detail:t}))}};var Ar=U("libp2p:connection-manager:latency-monitor"),Co=class extends Pt{constructor(t={}){super();let{latencyCheckIntervalMs:e,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:s}=t;this.latencyCheckIntervalMs=e??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,Ar("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?Ar("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):Ar("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(Ar("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?(Ar("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(Ar("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){Ax()&&(this.visibilityChangeEmitter=new To,this.visibilityChangeEmitter.addEventListener("visibilityChange",t=>{let{detail:e}=t;e?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 t=this.getSummary();t.events>0&&this.dispatchEvent(new $("data",{detail:t}))}getSummary(){let t={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(),Ar.trace("Summary: %O",t),t}checkLatency(){let t=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,e={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+t),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(e.startTime)-e.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,Ar.trace("MS: %s Data: %O",i,this.latencyData)};Ar.trace("localData: %O",e),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(e.deltaOffset=0,e.startTime=this.now(),this.asyncTestFn(n)):(e.deltaOffset-=1,n())},e.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 Ax(){return typeof globalThis.window<"u"}var No=N(er(),1);var Bo="OPEN",xl="CLOSING",Do="CLOSED";function Rr(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return e}var ji=class{constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Rr(this.map.entries(),t=>[at(t[0]),t[1]])}forEach(t){this.map.forEach((e,n)=>{t(e,at(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),e)}keys(){return Rr(this.map.keys(),t=>at(t))}values(){return this.map.values()}get size(){return this.map.size}};var Ir=class{constructor(t){if(this.set=new Set,t!=null)for(let e of t)this.set.add(e.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Rr(this.set.entries(),t=>{let e=at(t[0]);return[e,e]})}forEach(t){this.set.forEach(e=>{let n=at(e);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Rr(this.set.values(),t=>at(t))}intersection(t){let e=new Ir;for(let n of t)this.has(n)&&e.add(n);return e}difference(t){let e=new Ir;for(let n of this)t.has(n)||e.add(n);return e}union(t){let e=new Ir;for(let n of t)e.add(n);for(let n of this)e.add(n);return e}};var mi=class{constructor(t){if(this.list=[],t!=null)for(let e of t)this.list.push(e.toString())}[Symbol.iterator](){return Rr(this.list.entries(),t=>at(t[1]))}concat(t){let e=new mi(this);for(let n of t)e.push(n);return e}entries(){return Rr(this.list.entries(),t=>[t[0],at(t[1])])}every(t){return this.list.every((e,n)=>t(at(e),n,this))}filter(t){let e=new mi;return this.list.forEach((n,i)=>{let s=at(n);t(s,i,this)&&e.push(s)}),e}find(t){let e=this.list.find((n,i)=>t(at(n),i,this));if(e!=null)return at(e)}findIndex(t){return this.list.findIndex((e,n)=>t(at(e),n,this))}forEach(t){this.list.forEach((e,n)=>{t(at(e),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return at(t)}push(...t){for(let e of t)this.list.push(e.toString())}shift(){let t=this.list.shift();if(t!=null)return at(t)}unshift(...t){let e=this.list.length;for(let n=t.length-1;n>-1;n--)e=this.list.unshift(t[n].toString());return e}get length(){return this.list.length}};var Nl=N(_r(),1);var C0="keep-alive";var Ad=N(Sd(),1);function Po(r){if(bn(r))return{peerId:r};if(ve(r)){let t=r.getPeerId();return{multiaddr:r,peerId:t==null?void 0:at(t)}}throw new w(`${r} is not a PeerId or a Multiaddr`,S.ERR_INVALID_MULTIADDR)}var Ht=U("libp2p:connection-manager"),cv={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},lv=6e4,ko=class extends Pt{constructor(t,e){if(super(),this.opts=De.call({ignoreUndefined:!0},cv,e),this.opts.maxConnections<this.opts.minConnections)throw new w("Connection Manager maxConnections must be greater than minConnections",S.ERR_INVALID_PARAMETERS);Ht("options: %o",this.opts),this.components=t,this.connections=new Map,this.started=!1,e.maxEventLoopDelay!=null&&e.maxEventLoopDelay>0&&e.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new Co({latencyCheckIntervalMs:e.pollInterval,dataEmitIntervalMs:e.pollInterval}));try{(0,No.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=e.startupReconnectTimeout??lv,this.dialTimeout=e.dialTimeout??3e4,this.allow=(e.allow??[]).map(n=>_t(n)),this.deny=(e.deny??[]).map(n=>_t(n)),this.inboundConnectionRateLimiter=new Ad.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 t={inbound:0,outbound:0};for(let e of this.connections.values())for(let n of e)n.stat.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let e of this.connections.values())for(let n of e)for(let i of n.streams){let s=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;t[s]=(t[s]??0)+1}return t}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.stat.direction} ${o.stat.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))t[o]=t[o]??[],t[o].push(a)}let e={};for(let[n,i]of Object.entries(t)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);e[n]=i[s]}return e}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,Ht("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let t=[];for(let e of await this.components.peerStore.all())(await this.components.peerStore.getTags(e.id)).filter(s=>s.name===C0).length>0&&t.push(e.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Nl.TimeoutController(this.startupReconnectTimeout);try{(0,No.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(t.map(async e=>{await this.openConnection(e,{signal:this.connectOnStartupController?.signal}).catch(n=>{Ht.error(n)})}))}).catch(t=>{Ht.error(t)}).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(),Ht("stopped")}async _close(){let t=[];for(let e of this.connections.values())for(let n of e)t.push((async()=>{try{await n.close()}catch(i){Ht.error(i)}})());Ht("closing %d connections",t.length),await Promise.all(t),this.connections.clear()}onConnect(t){this._onConnect(t).catch(e=>{Ht.error(e)})}async _onConnect(t){let{detail:e}=t;if(!this.started){await e.close();return}let n=e.remotePeer,i=n.toString(),s=this.connections.get(i);s!=null?s.push(e):this.connections.set(i,[e]),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 $("peer:connect",{detail:e}))}onDisconnect(t){let{detail:e}=t;if(!this.started)return;let n=e.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==e.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new $("peer:disconnect",{detail:e})))}getConnections(t){if(t!=null)return this.connections.get(t.toString())??[];let e=[];for(let n of this.connections.values())e=e.concat(n);return e}getConnectionsMap(){return this.connections}async openConnection(t,e={}){let{peerId:n,multiaddr:i}=Po(t);if(n==null&&i==null)throw new w("Can only open connections to PeerIds or Multiaddrs",S.ERR_INVALID_PARAMETERS);if(n!=null){Ht("dial to",n);let o=this.getConnections(n);if(o.length>0)return Ht("had an existing connection to %p",n),o[0]}let s;if(e?.signal==null){s=new Nl.TimeoutController(this.dialTimeout),e.signal=s.signal;try{(0,No.setMaxListeners)?.(1/0,s.signal)}catch{}}try{let o=await this.components.dialer.dial(t,e),a=this.connections.get(o.remotePeer.toString());a==null&&(a=[],this.connections.set(o.remotePeer.toString(),a));let c=!1;for(let l of a)l.id===o.id&&(c=!0);return c||a.push(o),o}finally{s?.clear()}}async closeConnections(t){let e=this.connections.get(t.toString())??[];await Promise.all(e.map(async n=>{await n.close()}))}getAll(t){if(!bn(t))throw new w("peerId must be an instance of peer-id",S.ERR_INVALID_PARAMETERS);let e=t.toString(),n=this.connections.get(e);return n!=null?n.filter(i=>i.stat.status===Bo):[]}_onLatencyMeasure(t){let{detail:e}=t;this._checkMaxLimit("maxEventLoopDelay",e.avgMs,1).catch(n=>{Ht.error(n)})}async _checkMaxLimit(t,e,n=1){let i=this.opts[t];if(i==null){Ht.trace("limit %s was not set so it cannot be applied",t);return}Ht.trace("checking limit of %s. current value: %d of %d",t,e,i),e>i&&(Ht("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,t,e,i,n),await this._pruneConnections(n))}async _pruneConnections(t){let e=this.getConnections(),n=new ji;for(let o of e){let a=o.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((l,u)=>l+u.value,0))}let i=e.sort((o,a)=>{let c=n.get(o.remotePeer)??0,l=n.get(a.remotePeer)??0;if(c>l)return 1;if(c<l)return-1;let u=o.stat.timeline.open,f=a.stat.timeline.open;return u<f?1:u>f?-1:0}),s=[];for(let o of i)if(Ht("too many connections open - closing a connection to %p",o.remotePeer),this.allow.some(c=>o.remoteAddr.toString().startsWith(c.toString()))||s.push(o),s.length===t)break;await Promise.all(s.map(async o=>{try{await o.close()}catch(a){Ht.error(a)}this.onDisconnect(new $("connectionEnd",{detail:o}))}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Ht("connection from %s refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return Ht("connection from %s refused - incomingPendingConnections exceeded by peer %s",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Ht("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,t.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(Ht("connection from %s refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var kl=N(hl(),1),xi=U("libp2p:connection-manager:auto-dialler"),uv={minConnections:0,autoDialInterval:1e4},Oo=class{constructor(t,e){this.components=t,this.options=De.call({ignoreUndefined:!0},uv,e),this.running=!1,this._autoDial=this._autoDial.bind(this),xi("options: %j",this.options)}isStarted(){return this.running}async start(){this.running=!0,this._autoDial().catch(t=>{xi.error("could start autodial",t)}),xi("started")}async stop(){this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),xi("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let t=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=t){this.autoDialTimeout=(0,kl.default)(this._autoDial,this.options.autoDialInterval);return}let e=await this.components.peerStore.all();e=e.filter(n=>!(n.id.equals(this.components.peerId)||n.addresses.length===0)),e=e.sort(()=>Math.random()>.5?1:-1),e=e.sort((n,i)=>i.protocols.length>n.protocols.length||i.id.publicKey!=null&&n.id.publicKey==null?1:-1);for(let n=0;this.running&&n<e.length&&this.components.connectionManager.getConnections().length<t;n++){if(!this.running)return;let i=e[n];if(this.components.connectionManager.getConnections(i.id).length===0){xi("connecting to a peerStore stored peer %p",i.id);try{await this.components.connectionManager.openConnection(i.id)}catch(s){xi.error("could not connect to peerStore stored peer",s)}}}this.running&&(this.autoDialTimeout=(0,kl.default)(this._autoDial,this.options.autoDialInterval))}};var Gy=N(Nd(),1);var tt;(function(r){r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(tt||(tt={}));var Wl=N(Kl(),1),vp=N(dp(),1),bp=N(Tn(),1),Ql=N(Yl(),1),_p=N(xp(),1);function Dv(){bp.default._configure(),Wl.default._configure(vp.default),Ql.default._configure(_p.default)}Dv();var Sp=["uint64","int64","sint64","fixed64","sfixed64"];function Lv(r){for(let t of Sp){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function Xl(r){return Lv(new Wl.default(r))}function Pv(r){for(let t of Sp){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function Zl(){return Pv(Ql.default.create())}function dt(r,t){let e=Xl(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function pt(r,t){let e=Zl();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var bi;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(bi||(bi={}));function Vo(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Gr(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return Vo("enum",bi.VARINT,e,n)}function mt(r,t){return Vo("message",bi.LENGTH_DELIMITED,r,t)}var Tt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(Tt||(Tt={}));var Jl;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Jl||(Jl={}));(function(r){r.codec=()=>Gr(Jl)})(Tt||(Tt={}));var ir;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.Type=Tt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(ir||(ir={}));var sr;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.Type=Tt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(sr||(sr={}));var GB=N(as(),1),YB=N(Fm(),1),xa=N(ft(),1);var de={get(r=globalThis){let t=r.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var k8=N(qt(),1),O8=N(na(),1),Vm=N(ft(),1);function He(r,t){let e=Uint8Array.from(r.abs().toByteArray());if(e=e[0]===0?e.subarray(1):e,t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=Ut([new Uint8Array(t-e.length),e])}return z(e,"base64url")}function _e(r){let t=qm(r);return new Vm.default.jsbn.BigInteger(z(t,"base16"),16)}function qm(r,t){let e=F(r,"base64urlpad");if(t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=Ut([new Uint8Array(t-e.length),e])}return e}var i_={"P-256":256,"P-384":384,"P-521":521},s_=Object.keys(i_),Y8=s_.join(" / ");function aa(r){let t=r?.algorithm??"AES-GCM",e=r?.keyLength??16,n=r?.nonceLength??12,i=r?.digest??"SHA-256",s=r?.saltLength??16,o=r?.iterations??32767,a=de.get();e*=8;async function c(f,h){let d=a.getRandomValues(new Uint8Array(s)),p=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:p};typeof h=="string"&&(h=F(h));let y={name:"PBKDF2",salt:d,iterations:o,hash:{name:i}},g=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),x=await a.subtle.deriveKey(y,g,{name:t,length:e},!0,["encrypt"]),_=await a.subtle.encrypt(m,x,f);return Ut([d,m.iv,new Uint8Array(_)])}async function l(f,h){let d=f.subarray(0,s),p=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:p};typeof h=="string"&&(h=F(h));let g={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(g,x,{name:t,length:e},!0,["decrypt"]),O=await a.subtle.decrypt(y,_,m);return new Uint8Array(O)}return{encrypt:c,decrypt:l}}async function zm(r,t){let e=yn.decode(r);return await aa().decrypt(e,t)}var Du={};ne(Du,{RsaPrivateKey:()=>Ni,RsaPublicKey:()=>ys,fromJwk:()=>B_,generateKeyPair:()=>D_,unmarshalRsaPrivateKey:()=>T_,unmarshalRsaPublicKey:()=>C_});var TB=N(Qm(),1),ms=N(ft(),1);var a_=N(Rn(),1);var rt=BigInt(0),Rt=BigInt(1),Jr=BigInt(2),hs=BigInt(3),Xm=BigInt(8),kt=Object.freeze({a:rt,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Rt,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Zm=(r,t)=>(r+t/Jr)/t,ca={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){let{n:t}=kt,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Rt*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,o=BigInt("0x100000000000000000000000000000000"),a=Zm(s*r,t),c=Zm(-n*r,t),l=P(r-a*e-c*i,t),u=P(-a*n-c*s,t),f=l>o,h=u>o;if(f&&(l=t-l),h&&(u=t-u),l>o||u>o)throw new Error("splitScalarEndo: Endomorphism failed, k="+r);return{k1neg:f,k1:l,k2neg:h,k2:u}}},Ge=32,Ci=32,c_=32,Jm=Ge+1,jm=2*Ge+1;function ty(r){let{a:t,b:e}=kt,n=P(r*r),i=P(n*r);return P(i+t*r+e)}var la=kt.a===rt,ha=class extends Error{constructor(t){super(t)}};function ey(r){if(!(r instanceof ot))throw new TypeError("JacobianPoint expected")}var ot=class{constructor(t,e,n){this.x=t,this.y=e,this.z=n}static fromAffine(t){if(!(t instanceof ct))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(ct.ZERO)?ot.ZERO:new ot(t.x,t.y,Rt)}static toAffineBatch(t){let e=d_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return ot.toAffineBatch(t).map(ot.fromAffine)}equals(t){ey(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t,c=P(i*i),l=P(a*a),u=P(e*l),f=P(s*c),h=P(P(n*a)*l),d=P(P(o*i)*c);return u===f&&h===d}negate(){return new ot(this.x,P(-this.y),this.z)}double(){let{x:t,y:e,z:n}=this,i=P(t*t),s=P(e*e),o=P(s*s),a=t+s,c=P(Jr*(P(a*a)-i-o)),l=P(hs*i),u=P(l*l),f=P(u-Jr*c),h=P(l*(c-f)-Xm*o),d=P(Jr*e*n);return new ot(f,h,d)}add(t){ey(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t;if(s===rt||o===rt)return this;if(e===rt||n===rt)return t;let c=P(i*i),l=P(a*a),u=P(e*l),f=P(s*c),h=P(P(n*a)*l),d=P(P(o*i)*c),p=P(f-u),m=P(d-h);if(p===rt)return m===rt?this.double():ot.ZERO;let y=P(p*p),g=P(p*y),x=P(u*y),_=P(m*m-g-Jr*x),O=P(m*(x-_)-h*g),C=P(i*a*p);return new ot(_,O,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let e=ot.ZERO;if(typeof t=="bigint"&&t===rt)return e;let n=iy(t);if(n===Rt)return this;if(!la){let f=e,h=this;for(;n>rt;)n&Rt&&(f=f.add(h)),h=h.double(),n>>=Rt;return f}let{k1neg:i,k1:s,k2neg:o,k2:a}=ca.splitScalar(n),c=e,l=e,u=this;for(;s>rt||a>rt;)s&Rt&&(c=c.add(u)),a&Rt&&(l=l.add(u)),u=u.double(),s>>=Rt,a>>=Rt;return i&&(c=c.negate()),o&&(l=l.negate()),l=new ot(P(l.x*ca.beta),l.y,l.z),c.add(l)}precomputeWindow(t){let e=la?128/t+1:256/t+1,n=[],i=this,s=i;for(let o=0;o<e;o++){s=i,n.push(s);for(let a=1;a<2**(t-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(t,e){!e&&this.equals(ot.BASE)&&(e=ct.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Su.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=ot.normalizeZ(i),Su.set(e,i)));let s=ot.ZERO,o=ot.BASE,a=1+(la?128/n:256/n),c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=Rt);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(ua(g,i[m])):s=s.add(ua(x,i[y]))}return{p:s,f:o}}multiply(t,e){let n=iy(t),i,s;if(la){let{k1neg:o,k1:a,k2neg:c,k2:l}=ca.splitScalar(n),{p:u,f}=this.wNAF(a,e),{p:h,f:d}=this.wNAF(l,e);u=ua(o,u),h=ua(c,h),h=new ot(P(h.x*ca.beta),h.y,h.z),i=u.add(h),s=f.add(d)}else{let{p:o,f:a}=this.wNAF(n,e);i=o,s=a}return ot.normalizeZ([i,s])[0]}toAffine(t){let{x:e,y:n,z:i}=this,s=this.equals(ot.ZERO);t==null&&(t=s?Xm:Li(i));let o=t,a=P(o*o),c=P(a*o),l=P(e*a),u=P(n*c),f=P(i*o);if(s)return ct.ZERO;if(f!==Rt)throw new Error("invZ was invalid");return new ct(l,u)}};ot.BASE=new ot(kt.Gx,kt.Gy,Rt);ot.ZERO=new ot(rt,Rt,rt);function ua(r,t){let e=t.negate();return r?e:t}var Su=new WeakMap,ct=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Su.delete(this)}hasEvenY(){return this.y%Jr===rt}static fromCompressedHex(t){let e=t.length===32,n=jr(e?t:t.subarray(1));if(!_u(n))throw new Error("Point is not on curve");let i=ty(n),s=h_(i),o=(s&Rt)===Rt;e?o&&(s=P(-s)):(t[0]&1)===1!==o&&(s=P(-s));let a=new ct(n,s);return a.assertValidity(),a}static fromUncompressedHex(t){let e=jr(t.subarray(1,Ge+1)),n=jr(t.subarray(Ge+1,Ge*2+1)),i=new ct(e,n);return i.assertValidity(),i}static fromHex(t){let e=Di(t),n=e.length,i=e[0];if(n===Ge)return this.fromCompressedHex(e);if(n===Jm&&(i===2||i===3))return this.fromCompressedHex(e);if(n===jm&&i===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Jm} compressed bytes or ${jm} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return ct.BASE.multiply(pa(t))}static fromSignature(t,e,n){let{r:i,s}=sy(e);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let o=Iu(Di(t)),{n:a}=kt,c=n===2||n===3?i+a:i,l=Li(c,a),u=P(-o*l,a),f=P(s*l,a),h=n&1?"03":"02",d=ct.fromHex(h+Ii(c)),p=ct.BASE.multiplyAndAddUnsafe(d,u,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(t=!1){return On(this.toHex(t))}toHex(t=!1){let e=Ii(this.x);return t?`${this.hasEvenY()?"02":"03"}${e}`:`04${e}${Ii(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let t="Point is not on elliptic curve",{x:e,y:n}=this;if(!_u(e)||!_u(n))throw new Error(t);let i=P(n*n),s=ty(e);if(P(i-s)!==rt)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new ct(this.x,P(-this.y))}double(){return ot.fromAffine(this).double().toAffine()}add(t){return ot.fromAffine(this).add(ot.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return ot.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,n){let i=ot.fromAffine(this),s=e===rt||e===Rt||this!==ct.BASE?i.multiplyUnsafe(e):i.multiply(e),o=ot.fromAffine(t).multiplyUnsafe(n),a=s.add(o);return a.equals(ot.ZERO)?void 0:a.toAffine()}};ct.BASE=new ct(kt.Gx,kt.Gy);ct.ZERO=new ct(rt,rt);function ry(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function ny(r){if(r.length<2||r[0]!==2)throw new Error(`Invalid signature integer tag: ${Bi(r)}`);let t=r[1],e=r.subarray(2,t+2);if(!t||e.length!==t)throw new Error("Invalid signature integer: wrong length");if(e[0]===0&&e[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:jr(e),left:r.subarray(t+2)}}function l_(r){if(r.length<2||r[0]!=48)throw new Error(`Invalid signature tag: ${Bi(r)}`);if(r[1]!==r.length-2)throw new Error("Invalid signature: incorrect length");let{data:t,left:e}=ny(r.subarray(2)),{data:n,left:i}=ny(e);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Bi(i)}`);return{r:t,s:n}}var hr=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromCompact(t){let e=t instanceof Uint8Array,n="Signature.fromCompact";if(typeof t!="string"&&!e)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=e?Bi(t):t;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new hr(da(i.slice(0,64)),da(i.slice(64,128)))}static fromDER(t){let e=t instanceof Uint8Array;if(typeof t!="string"&&!e)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=l_(e?t:On(t));return new hr(n,i)}static fromHex(t){return this.fromDER(t)}assertValidity(){let{r:t,s:e}=this;if(!ps(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!ps(e))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let t=kt.n>>Rt;return this.s>t}normalizeS(){return this.hasHighS()?new hr(this.r,P(-this.s,kt.n)):this}toDERRawBytes(){return On(this.toDERHex())}toDERHex(){let t=ry(fs(this.s)),e=ry(fs(this.r)),n=t.length/2,i=e.length/2,s=fs(n),o=fs(i);return`30${fs(i+n+4)}02${o}${e}02${s}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return On(this.toCompactHex())}toCompactHex(){return Ii(this.r)+Ii(this.s)}};function Zr(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let s=r[n];e.set(s,i),i+=s.length}return e}var u_=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Bi(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let e=0;e<r.length;e++)t+=u_[r[e]];return t}var f_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Ii(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(rt<=r&&r<f_))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function Au(r){let t=On(Ii(r));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function fs(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function da(r){if(typeof r!="string")throw new TypeError("hexToNumber: expected string, got "+typeof r);return BigInt(`0x${r}`)}function On(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+r.length);let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");t[e]=s}return t}function jr(r){return da(Bi(r))}function Di(r){return r instanceof Uint8Array?Uint8Array.from(r):On(r)}function iy(r){if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)return BigInt(r);if(typeof r=="bigint"&&ps(r))return r;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(r,t=kt.P){let e=r%t;return e>=rt?e:t+e}function Oe(r,t){let{P:e}=kt,n=r;for(;t-- >rt;)n*=n,n%=e;return n}function h_(r){let{P:t}=kt,e=BigInt(6),n=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),a=BigInt(88),c=r*r*r%t,l=c*c*r%t,u=Oe(l,hs)*l%t,f=Oe(u,hs)*l%t,h=Oe(f,Jr)*c%t,d=Oe(h,n)*h%t,p=Oe(d,i)*d%t,m=Oe(p,o)*p%t,y=Oe(m,a)*m%t,g=Oe(y,o)*p%t,x=Oe(g,hs)*l%t,_=Oe(x,s)*d%t,O=Oe(_,e)*c%t,C=Oe(O,Jr);if(C*C%t!==r)throw new Error("Cannot find square root");return C}function Li(r,t=kt.P){if(r===rt||t<=rt)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=P(r,t),n=t,i=rt,s=Rt,o=Rt,a=rt;for(;e!==rt;){let l=n/e,u=n%e,f=i-o*l,h=s-a*l;n=e,e=u,i=o,s=a,o=f,a=h}if(n!==Rt)throw new Error("invert: does not exist");return P(i,t)}function d_(r,t=kt.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===rt?s:(e[a]=s,P(s*o,t)),Rt),i=Li(n,t);return r.reduceRight((s,o,a)=>o===rt?s:(e[a]=P(s*e[a],t),P(s*o,t)),i),e}function p_(r){let t=r.length*8-Ci*8,e=jr(r);return t>0?e>>BigInt(t):e}function Iu(r,t=!1){let e=p_(r);if(t)return e;let{n}=kt;return e>=n?e-n:e}var Ti,ds,Ru=class{constructor(t,e){if(this.hashLen=t,this.qByteLen=e,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return Ye.hmacSha256(this.k,...t)}hmacSync(...t){return ds(this.k,...t)}checkSync(){if(typeof ds!="function")throw new ha("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(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return Zr(...e)}generateSync(){this.checkSync(),this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return Zr(...e)}};function ps(r){return rt<r&&r<kt.n}function _u(r){return rt<r&&r<kt.P}function m_(r,t,e,n=!0){let{n:i}=kt,s=Iu(r,!0);if(!ps(s))return;let o=Li(s,i),a=ct.BASE.multiply(s),c=P(a.x,i);if(c===rt)return;let l=P(o*P(t+e*c,i),i);if(l===rt)return;let u=new hr(c,l),f=(a.x===u.r?0:2)|Number(a.y&Rt);return n&&u.hasHighS()&&(u=u.normalizeS(),f^=1),{sig:u,recovery:f}}function pa(r){let t;if(typeof r=="bigint")t=r;else if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)t=BigInt(r);else if(typeof r=="string"){if(r.length!==2*Ci)throw new Error("Expected 32 bytes of private key");t=da(r)}else if(r instanceof Uint8Array){if(r.length!==Ci)throw new Error("Expected 32 bytes of private key");t=jr(r)}else throw new TypeError("Expected valid private key");if(!ps(t))throw new Error("Expected private key: 0 < key < n");return t}function y_(r){return r instanceof ct?(r.assertValidity(),r):ct.fromHex(r)}function sy(r){if(r instanceof hr)return r.assertValidity(),r;try{return hr.fromDER(r)}catch{return hr.fromCompact(r)}}function Tu(r,t=!1){return ct.fromPrivateKey(r).toRawBytes(t)}function oy(r){let t=r.length>Ge?r.slice(0,Ge):r;return jr(t)}function g_(r){let t=oy(r),e=P(t,kt.n);return ay(e<rt?t:e)}function ay(r){return Au(r)}function w_(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);let n=Di(r),i=pa(t),s=[ay(i),g_(n)];if(e!=null){e===!0&&(e=Ye.randomBytes(Ge));let c=Di(e);if(c.length!==Ge)throw new Error(`sign: Expected ${Ge} bytes of extra data`);s.push(c)}let o=Zr(...s),a=oy(n);return{seed:o,m:a,d:i}}function E_(r,t){let{sig:e,recovery:n}=r,{der:i,recovered:s}=Object.assign({canonical:!0,der:!0},t),o=i?e.toDERRawBytes():e.toCompactRawBytes();return s?[o,n]:o}async function cy(r,t,e={}){let{seed:n,m:i,d:s}=w_(r,t,e.extraEntropy),o=new Ru(c_,Ci);await o.reseed(n);let a;for(;!(a=m_(await o.generate(),i,s,e.canonical));)await o.reseed();return E_(a,e)}var x_={strict:!0};function ly(r,t,e,n=x_){let i;try{i=sy(r),t=Di(t)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=Iu(t),c;try{c=y_(e)}catch{return!1}let{n:l}=kt,u=Li(o,l),f=P(a*u,l),h=P(s*u,l),d=ct.BASE.multiplyAndAddUnsafe(c,f,h);return d?P(d.x,l)===s:!1}ct.BASE._setWindowSize(8);var Se={node:a_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var fa={},Ye={bytesToHex:Bi,hexToBytes:On,concatBytes:Zr,mod:P,invert:Li,isValidPrivateKey(r){try{return pa(r),!0}catch{return!1}},_bigintTo32Bytes:Au,_normalizePrivateKey:pa,hashToPrivateKey:r=>{r=Di(r);let t=Ci+8;if(r.length<t||r.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let e=P(jr(r),kt.n-Rt)+Rt;return Au(e)},randomBytes:(r=32)=>{if(Se.web)return Se.web.getRandomValues(new Uint8Array(r));if(Se.node){let{randomBytes:t}=Se.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Ye.hashToPrivateKey(Ye.randomBytes(Ci+8)),precompute(r=8,t=ct.BASE){let e=t===ct.BASE?t:new ct(t.x,t.y);return e._setWindowSize(r),e.multiply(hs),e},sha256:async(...r)=>{if(Se.web){let t=await Se.web.subtle.digest("SHA-256",Zr(...r));return new Uint8Array(t)}else if(Se.node){let{createHash:t}=Se.node,e=t("sha256");return r.forEach(n=>e.update(n)),Uint8Array.from(e.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(r,...t)=>{if(Se.web){let e=await Se.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Zr(...t),i=await Se.web.subtle.sign("HMAC",e,n);return new Uint8Array(i)}else if(Se.node){let{createHmac:e}=Se.node,n=e("sha256",r);return t.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(r,...t)=>{let e=fa[r];if(e===void 0){let n=await Ye.sha256(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),fa[r]=e}return Ye.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof Ti!="function")throw new ha("sha256Sync is undefined, you need to set it");let e=fa[r];if(e===void 0){let n=Ti(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),fa[r]=e}return Ti(e,...t)},_JacobianPoint:ot};Object.defineProperties(Ye,{sha256Sync:{configurable:!1,get(){return Ti},set(r){Ti||(Ti=r)}},hmacSha256Sync:{configurable:!1,get(){return ds},set(r){ds||(ds=r)}}});function Dr(r){if(isNaN(r)||r<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ye.randomBytes(r)}var Mn={};ne(Mn,{jwkToPkcs1:()=>__,jwkToPkix:()=>A_,pkcs1ToJwk:()=>b_,pkixToJwk:()=>S_});var aB=N(as(),1),cB=N(oa(),1),Lr=N(ft(),1);function b_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:He(e.n),e:He(e.e),d:He(e.d),p:He(e.p),q:He(e.q),dp:He(e.dP),dq:He(e.dQ),qi:He(e.qInv),alg:"RS256"}}function __(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Lr.default.pki.privateKeyToAsn1({n:_e(r.n),e:_e(r.e),d:_e(r.d),p:_e(r.p),q:_e(r.q),dP:_e(r.dp),dQ:_e(r.dq),qInv:_e(r.qi)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}function S_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:He(e.n),e:He(e.e)}}function A_(r){if(r.n==null||r.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Lr.default.pki.publicKeyToAsn1({n:_e(r.n),e:_e(r.e)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}var dB=N(oa(),1),Cu=N(ft(),1);function uy(r,t){return t.map(e=>_e(r[e]))}function fy(r){return Cu.default.pki.setRsaPrivateKey(...uy(r,["n","e","d","p","q","dp","dq","qi"]))}function hy(r){return Cu.default.pki.setRsaPublicKey(...uy(r,["n","e"]))}async function dy(r){let t=await de.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await yy(t);return{privateKey:e[0],publicKey:e[1]}}async function Bu(r){let e=[await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await R_(r)],n=await yy({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function py(r,t){let e=await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await de.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function my(r,t,e){let n=await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await de.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e)}async function yy(r){if(r.privateKey==null||r.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([de.get().subtle.exportKey("jwk",r.privateKey),de.get().subtle.exportKey("jwk",r.publicKey)])}async function R_(r){return await de.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function gy(r,t,e,n){let i=t?hy(r):fy(r),s=z(Uint8Array.from(e),"ascii"),o=n(s,i);return F(o,"ascii")}function wy(r,t){return gy(r,!0,t,(e,n)=>n.encrypt(e))}function Ey(r,t){return gy(r,!1,t,(e,n)=>n.decrypt(e))}async function Pi(r,t){let n=await aa().encrypt(r,t);return yn.encode(n)}var ys=class{constructor(t){this._key=t}async verify(t,e){return await my(this._key,e,t)}marshal(){return Mn.jwkToPkix(this._key)}get bytes(){return ir.encode({Type:Tt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return wy(this._key,t)}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},Ni=class{constructor(t,e){this._key=t,this._publicKey=e}genSecret(){return Dr(16)}async sign(t){return await py(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ys(this._publicKey)}decrypt(t){return Ey(this._key,t)}marshal(){return Mn.jwkToPkcs1(this._key)}get bytes(){return sr.encode({Type:Tt.RSA,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="pkcs-8"){if(e==="pkcs-8"){let n=new ms.default.util.ByteBuffer(this.marshal()),i=ms.default.asn1.fromDer(n),s=ms.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ms.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function T_(r){let t=Mn.pkcs1ToJwk(r),e=await Bu(t);return new Ni(e.privateKey,e.publicKey)}function C_(r){let t=Mn.pkixToJwk(r);return new ys(t)}async function B_(r){let t=await Bu(r);return new Ni(t.privateKey,t.publicKey)}async function D_(r){let t=await dy(r);return new Ni(t.privateKey,t.publicKey)}var Ku={};ne(Ku,{Ed25519PrivateKey:()=>Fn,Ed25519PublicKey:()=>vs,generateKeyPair:()=>J_,generateKeyPairFromSeed:()=>Ny,unmarshalEd25519PrivateKey:()=>X_,unmarshalEd25519PublicKey:()=>Z_});var L_=N(Rn(),1);var re=BigInt(0),nt=BigInt(1),rn=BigInt(2),P_=BigInt(8),xy=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),It=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:xy,n:xy,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var Ay=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),gs=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),BB=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),N_=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),k_=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),O_=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),M_=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Z=class{constructor(t,e,n,i){this.x=t,this.y=e,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Bt))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Bt.ZERO)?Z.ZERO:new Z(t.x,t.y,nt,R(t.x*t.y))}static toAffineBatch(t){let e=K_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}equals(t){by(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t,c=R(e*a),l=R(s*i),u=R(n*a),f=R(o*i);return c===l&&u===f}negate(){return new Z(R(-this.x),this.y,this.z,R(-this.t))}double(){let{x:t,y:e,z:n}=this,{a:i}=It,s=R(t*t),o=R(e*e),a=R(rn*R(n*n)),c=R(i*s),l=t+e,u=R(R(l*l)-s-o),f=c+o,h=f-a,d=c-o,p=R(u*h),m=R(f*d),y=R(u*d),g=R(h*f);return new Z(p,m,g,y)}add(t){by(t);let{x:e,y:n,z:i,t:s}=this,{x:o,y:a,z:c,t:l}=t,u=R((n-e)*(a+o)),f=R((n+e)*(a-o)),h=R(f-u);if(h===re)return this.double();let d=R(i*rn*l),p=R(s*rn*c),m=p+d,y=f+u,g=p-d,x=R(m*h),_=R(y*g),O=R(m*g),C=R(h*y);return new Z(x,_,C,O)}subtract(t){return this.add(t.negate())}precomputeWindow(t){let e=1+256/t,n=[],i=this,s=i;for(let o=0;o<e;o++){s=i,n.push(s);for(let a=1;a<2**(t-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(t,e){!e&&this.equals(Z.BASE)&&(e=Bt.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Ou.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=Z.normalizeZ(i),Ou.set(e,i)));let s=Z.ZERO,o=Z.BASE,a=1+256/n,c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=nt);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(vy(g,i[m])):s=s.add(vy(x,i[y]))}return Z.normalizeZ([s,o])[0]}multiply(t,e){return this.wNAF(ya(t,It.l),e)}multiplyUnsafe(t){let e=ya(t,It.l,!1),n=Z.BASE,i=Z.ZERO;if(e===re)return i;if(this.equals(i)||e===nt)return this;if(this.equals(n))return this.wNAF(e);let s=i,o=this;for(;e>re;)e&nt&&(s=s.add(o)),o=o.double(),e>>=nt;return s}isSmallOrder(){return this.multiplyUnsafe(It.h).equals(Z.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(It.l/rn).double();return It.l%rn&&(t=t.add(this)),t.equals(Z.ZERO)}toAffine(t){let{x:e,y:n,z:i}=this,s=this.equals(Z.ZERO);t==null&&(t=s?P_:ga(i));let o=R(e*t),a=R(n*t),c=R(i*t);if(s)return Bt.ZERO;if(c!==nt)throw new Error("invZ was invalid");return new Bt(o,a)}fromRistrettoBytes(){Pu()}toRistrettoBytes(){Pu()}fromRistrettoHash(){Pu()}};Z.BASE=new Z(It.Gx,It.Gy,nt,R(It.Gx*It.Gy));Z.ZERO=new Z(re,nt,nt,re);function vy(r,t){let e=t.negate();return r?e:t}function by(r){if(!(r instanceof Z))throw new TypeError("ExtendedPoint expected")}function Lu(r){if(!(r instanceof pe))throw new TypeError("RistrettoPoint expected")}function Pu(){throw new Error("Legacy method: switch to RistrettoPoint")}var pe=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:e}=It,n=R(gs*t*t),i=R((n+nt)*O_),s=BigInt(-1),o=R((s-e*n)*R(n+e)),{isValid:a,value:c}=Uu(i,o),l=R(c*t);en(l)||(l=R(-l)),a||(c=l),a||(s=n);let u=R(s*(n-nt)*M_-o),f=c*c,h=R((c+c)*o),d=R(u*N_),p=R(nt-f),m=R(nt+f);return new Z(R(h*m),R(p*d),R(d*m),R(h*p))}static hashToCurve(t){t=nn(t,64);let e=Nu(t.slice(0,32)),n=this.calcElligatorRistrettoMap(e),i=Nu(t.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new pe(n.add(s))}static fromHex(t){t=nn(t,32);let{a:e,d:n}=It,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=Nu(t);if(!q_(ws(s),t)||en(s))throw new Error(i);let o=R(s*s),a=R(nt+e*o),c=R(nt-e*o),l=R(a*a),u=R(c*c),f=R(e*n*l-u),{isValid:h,value:d}=Sy(R(f*u)),p=R(d*c),m=R(d*p*f),y=R((s+s)*p);en(y)&&(y=R(-y));let g=R(a*m),x=R(y*g);if(!h||en(x)||g===re)throw new Error(i);return new pe(new Z(y,g,nt,x))}toRawBytes(){let{x:t,y:e,z:n,t:i}=this.ep,s=R(R(n+e)*R(n-e)),o=R(t*e),a=R(o*o),{value:c}=Sy(R(s*a)),l=R(c*s),u=R(c*o),f=R(l*u*i),h;if(en(i*f)){let p=R(e*gs),m=R(t*gs);t=p,e=m,h=R(l*k_)}else h=u;en(t*f)&&(e=R(-e));let d=R((n-e)*h);return en(d)&&(d=R(-d)),ws(d)}toHex(){return Es(this.toRawBytes())}toString(){return this.toHex()}equals(t){Lu(t);let e=this.ep,n=t.ep,i=R(e.x*n.y)===R(e.y*n.x),s=R(e.y*n.y)===R(e.x*n.x);return i||s}add(t){return Lu(t),new pe(this.ep.add(t.ep))}subtract(t){return Lu(t),new pe(this.ep.subtract(t.ep))}multiply(t){return new pe(this.ep.multiply(t))}multiplyUnsafe(t){return new pe(this.ep.multiplyUnsafe(t))}};pe.BASE=new pe(Z.BASE);pe.ZERO=new pe(Z.ZERO);var Ou=new WeakMap,Bt=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Ou.delete(this)}static fromHex(t,e=!0){let{d:n,P:i}=It;t=nn(t,32);let s=t.slice();s[31]=t[31]&-129;let o=xs(s);if(e&&o>=i)throw new Error("Expected 0 < hex < P");if(!e&&o>=Ay)throw new Error("Expected 0 < hex < 2**256");let a=R(o*o),c=R(a-nt),l=R(n*a+nt),{isValid:u,value:f}=Uu(c,l);if(!u)throw new Error("Point.fromHex: invalid y coordinate");let h=(f&nt)===nt;return(t[31]&128)!==0!==h&&(f=R(-f)),new Bt(f,o)}static async fromPrivateKey(t){return(await wa(t)).point}toRawBytes(){let t=ws(this.y);return t[31]|=this.x&nt?128:0,t}toHex(){return Es(this.toRawBytes())}toX25519(){let{y:t}=this,e=R((nt+t)*ga(nt-t));return ws(e)}isTorsionFree(){return Z.fromAffine(this).isTorsionFree()}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Bt(R(-this.x),this.y)}add(t){return Z.fromAffine(this).add(Z.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return Z.fromAffine(this).multiply(t,this).toAffine()}};Bt.BASE=new Bt(It.Gx,It.Gy);Bt.ZERO=new Bt(re,nt);var Un=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromHex(t){let e=nn(t,64),n=Bt.fromHex(e.slice(0,32),!1),i=xs(e.slice(32,64));return new Un(n,i)}assertValidity(){let{r:t,s:e}=this;if(!(t instanceof Bt))throw new Error("Expected Point instance");return ya(e,It.l,!1),this}toRawBytes(){let t=new Uint8Array(64);return t.set(this.r.toRawBytes()),t.set(ws(this.s),32),t}toHex(){return Es(this.toRawBytes())}};function _y(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let s=r[n];e.set(s,i),i+=s.length}return e}var U_=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Es(r){if(!(r instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=U_[r[e]];return t}function Mu(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");t[e]=s}return t}function Ry(r){let e=r.toString(16).padStart(64,"0");return Mu(e)}function ws(r){return Ry(r).reverse()}function en(r){return(R(r)&nt)===nt}function xs(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Es(Uint8Array.from(r).reverse()))}var F_=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Nu(r){return R(xs(r)&F_)}function R(r,t=It.P){let e=r%t;return e>=re?e:t+e}function ga(r,t=It.P){if(r===re||t<=re)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=R(r,t),n=t,i=re,s=nt,o=nt,a=re;for(;e!==re;){let l=n/e,u=n%e,f=i-o*l,h=s-a*l;n=e,e=u,i=o,s=a,o=f,a=h}if(n!==nt)throw new Error("invert: does not exist");return R(i,t)}function K_(r,t=It.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===re?s:(e[a]=s,R(s*o,t)),nt),i=ga(n,t);return r.reduceRight((s,o,a)=>o===re?s:(e[a]=R(s*e[a],t),R(s*o,t)),i),e}function dr(r,t){let{P:e}=It,n=r;for(;t-- >re;)n*=n,n%=e;return n}function V_(r){let{P:t}=It,e=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=r*r%t*r%t,l=dr(c,rn)*c%t,u=dr(l,nt)*r%t,f=dr(u,e)*u%t,h=dr(f,n)*f%t,d=dr(h,i)*h%t,p=dr(d,s)*d%t,m=dr(p,o)*p%t,y=dr(m,o)*p%t,g=dr(y,n)*f%t;return{pow_p_5_8:dr(g,rn)*r%t,b2:c}}function Uu(r,t){let e=R(t*t*t),n=R(e*e*t),i=V_(r*n).pow_p_5_8,s=R(r*e*i),o=R(t*s*s),a=s,c=R(s*gs),l=o===r,u=o===R(-r),f=o===R(-r*gs);return l&&(s=a),(u||f)&&(s=c),en(s)&&(s=R(-s)),{isValid:l||u,value:s}}function Sy(r){return Uu(nt,r)}function ma(r){return R(xs(r),It.l)}function q_(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function nn(r,t){let e=r instanceof Uint8Array?Uint8Array.from(r):Mu(r);if(typeof t=="number"&&e.length!==t)throw new Error(`Expected ${t} bytes`);return e}function ya(r,t,e=!0){if(!t)throw new TypeError("Specify max value");if(typeof r=="number"&&Number.isSafeInteger(r)&&(r=BigInt(r)),typeof r=="bigint"&&r<t){if(e){if(re<r)return r}else if(re<=r)return r}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function $_(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function z_(r){if(r=typeof r=="bigint"||typeof r=="number"?Ry(ya(r,Ay)):nn(r),r.length!==32)throw new Error("Expected 32 bytes");return r}function H_(r){let t=$_(r.slice(0,32)),e=r.slice(32,64),n=ma(t),i=Bt.BASE.multiply(n),s=i.toRawBytes();return{head:t,prefix:e,scalar:n,point:i,pointBytes:s}}var ku;async function wa(r){return H_(await sn.sha512(z_(r)))}async function Fu(r){return(await wa(r)).pointBytes}async function Iy(r,t){r=nn(r);let{prefix:e,scalar:n,pointBytes:i}=await wa(t),s=ma(await sn.sha512(e,r)),o=Bt.BASE.multiply(s),a=ma(await sn.sha512(o.toRawBytes(),i,r)),c=R(s+a*n,It.l);return new Un(o,c).toRawBytes()}function G_(r,t,e){t=nn(t),e instanceof Bt||(e=Bt.fromHex(e,!1));let{r:n,s:i}=r instanceof Un?r.assertValidity():Un.fromHex(r),s=Z.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:e,msg:t}}function Y_(r,t,e,n){let i=ma(n),s=Z.fromAffine(r).multiplyUnsafe(i);return Z.fromAffine(t).add(s).subtract(e).multiplyUnsafe(It.h).equals(Z.ZERO)}async function Ty(r,t,e){let{r:n,SB:i,msg:s,pub:o}=G_(r,t,e),a=await sn.sha512(n.toRawBytes(),o.toRawBytes(),s);return Y_(o,n,i,a)}Bt.BASE._setWindowSize(8);var tn={node:L_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},sn={bytesToHex:Es,hexToBytes:Mu,concatBytes:_y,getExtendedPublicKey:wa,mod:R,invert:ga,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:r=>{if(r=nn(r),r.length<40||r.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return R(xs(r),It.l-nt)+nt},randomBytes:(r=32)=>{if(tn.web)return tn.web.getRandomValues(new Uint8Array(r));if(tn.node){let{randomBytes:t}=tn.node;return new Uint8Array(t(r).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>sn.randomBytes(32),sha512:async(...r)=>{let t=_y(...r);if(tn.web){let e=await tn.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}else{if(tn.node)return Uint8Array.from(tn.node.createHash("sha512").update(t).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(r=8,t=Bt.BASE){let e=t.equals(Bt.BASE)?t:new Bt(t.x,t.y);return e._setWindowSize(r),e.multiply(rn),e},sha512Sync:void 0};Object.defineProperties(sn,{sha512Sync:{configurable:!1,get(){return ku},set(r){ku||(ku=r)}}});var ki=32,Pr=64,Ea=32;async function Cy(){let r=sn.randomPrivateKey(),t=await Fu(r);return{privateKey:Py(r,t),publicKey:t}}async function By(r){if(r.length!==Ea)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=r,e=await Fu(t);return{privateKey:Py(t,e),publicKey:e}}async function Dy(r,t){let e=r.subarray(0,Ea);return await Iy(t,e)}async function Ly(r,t,e){return await Ty(t,e,r)}function Py(r,t){let e=new Uint8Array(Pr);for(let n=0;n<Ea;n++)e[n]=r[n],e[Ea+n]=t[n];return e}var vs=class{constructor(t){this._key=Oi(t,ki)}async verify(t,e){return await Ly(this._key,e,t)}marshal(){return this._key}get bytes(){return ir.encode({Type:Tt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},Fn=class{constructor(t,e){this._key=Oi(t,Pr),this._publicKey=Oi(e,ki)}async sign(t){return await Dy(this._key,t)}get public(){return new vs(this._publicKey)}marshal(){return this._key}get bytes(){return sr.encode({Type:Tt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=Kr.digest(this.public.bytes);return Mt.encode(t.bytes).substring(1)}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function X_(r){if(r.length>Pr){r=Oi(r,Pr+ki);let n=r.subarray(0,Pr),i=r.subarray(Pr,r.length);return new Fn(n,i)}r=Oi(r,Pr);let t=r.subarray(0,Pr),e=r.subarray(ki);return new Fn(t,e)}function Z_(r){return r=Oi(r,ki),new vs(r)}async function J_(){let{privateKey:r,publicKey:t}=await Cy();return new Fn(r,t)}async function Ny(r){let{privateKey:t,publicKey:e}=await By(r);return new Fn(t,e)}function Oi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var qu={};ne(qu,{Secp256k1PrivateKey:()=>_s,Secp256k1PublicKey:()=>bs,generateKeyPair:()=>rS,unmarshalSecp256k1PrivateKey:()=>tS,unmarshalSecp256k1PublicKey:()=>eS});function ky(){return Ye.randomPrivateKey()}async function Oy(r,t){let{digest:e}=await ie.digest(t);try{return await cy(e,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function My(r,t,e){try{let{digest:n}=await ie.digest(e);return ly(t,n,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function Uy(r){return ct.fromHex(r).toRawBytes(!0)}function Fy(r){try{Tu(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Vu(r){try{ct.fromHex(r)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Ky(r){try{return Tu(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var bs=class{constructor(t){Vu(t),this._key=t}async verify(t,e){return await My(this._key,e,t)}marshal(){return Uy(this._key)}get bytes(){return ir.encode({Type:Tt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},_s=class{constructor(t,e){this._key=t,this._publicKey=e??Ky(t),Fy(this._key),Vu(this._publicKey)}async sign(t){return await Oy(this._key,t)}get public(){return new bs(this._publicKey)}marshal(){return this._key}get bytes(){return sr.encode({Type:Tt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function tS(r){return new _s(r)}function eS(r){return new bs(r)}async function rS(){let r=ky();return new _s(r)}var Nr={rsa:Du,ed25519:Ku,secp256k1:qu};function $u(r){let t=Object.keys(Nr).join(" / ");return new w(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function zu(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return Nr[r];throw $u(r)}async function va(r,t){return await zu(r).generateKeyPair(t??2048)}function Ss(r){let t=ir.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Tt.RSA:return Nr.rsa.unmarshalRsaPublicKey(e);case Tt.Ed25519:return Nr.ed25519.unmarshalEd25519PublicKey(e);case Tt.Secp256k1:return Nr.secp256k1.unmarshalSecp256k1PublicKey(e);default:throw $u(t.Type??"RSA")}}function Vy(r,t){return t=(t??"rsa").toLowerCase(),zu(t),r.bytes}async function Mi(r){let t=sr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Tt.RSA:return await Nr.rsa.unmarshalRsaPrivateKey(e);case Tt.Ed25519:return Nr.ed25519.unmarshalEd25519PrivateKey(e);case Tt.Secp256k1:return Nr.secp256k1.unmarshalSecp256k1PrivateKey(e);default:throw $u(t.Type??"RSA")}}function qy(r,t){return t=(t??"rsa").toLowerCase(),zu(t),r.bytes}async function As(r,t){try{let i=await zm(r,t);return await Mi(i)}catch{}let e=xa.default.pki.decryptRsaPrivateKey(r,t);if(e===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=xa.default.asn1.toDer(xa.default.pki.privateKeyToAsn1(e));return n=F(n.getBytes(),"ascii"),await Nr.rsa.unmarshalRsaPrivateKey(n)}var jB=N(Qo(),1),iS=N(ft(),1);var zy=N(fu(),1),Hy=N(qt(),1);var $y={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Rs(r,t,e,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys($y).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=$y[i],o=(0,zy.default)(r,t,e,n,s);return Hy.default.encode64(o,null)}var ba=U("libp2p:keychain"),aS="/pkcs8/",Yy="/info/",Kn=new WeakMap,Vn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Hu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function kr(r){return r==null||typeof r!="string"?!1:r===(0,Gy.default)(r.trim())&&r.length>0}async function yt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function pr(r){return new Nt(aS+r)}function on(r){return new Nt(Yy+r)}var qn=class{constructor(t,e){if(this.components=t,this.init=De(Hu,e),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<Vn.minKeyLength)throw new Error(`dek.keyLength must be least ${Vn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Vn.minSaltLength)throw new Error(`dek.saltLength must be least ${Vn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Vn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Vn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Rs(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Kn.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Hu),e=Math.ceil(Vn.minSaltLength/3)*3;return t.dek.salt=z(Dr(e),"base64"),t}static get options(){return Hu}async createKey(t,e,n=2048){if(!kr(t)||t==="self")throw await yt(),new w("Invalid key name",tt.ERR_INVALID_KEY_NAME);if(typeof e!="string")throw await yt(),new w("Invalid key type",tt.ERR_INVALID_KEY_TYPE);let i=pr(t);if(await this.components.datastore.has(i))throw await yt(),new w("Key name already exists",tt.ERR_KEY_ALREADY_EXISTS);switch(e.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await yt(),new w("Invalid RSA key size",tt.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await va(e,n),c=await a.id(),l=Kn.get(this);if(l==null)throw new w("dek missing",tt.ERR_INVALID_PARAMETERS);let u=l.dek,f=await a.export(u);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,F(f)),h.put(on(t),F(JSON.stringify(o))),await h.commit()}catch(a){throw await yt(),a}return o}async listKeys(){let t={prefix:Yy},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(z(n.value)));return e}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,tt.ERR_KEY_NOT_FOUND);return n}catch(e){throw await yt(),e}}async findKeyByName(t){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);let e=on(t);try{let n=await this.components.datastore.get(e);return JSON.parse(z(n))}catch(n){throw await yt(),ba.error(n),new w(`Key '${t}' does not exist.`,tt.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);let e=pr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(e),i.delete(on(t)),await i.commit(),n}async renameKey(t,e){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid old key name '${t}'`,tt.ERR_OLD_KEY_NAME_INVALID);if(!kr(e)||e==="self")throw await yt(),new w(`Invalid new key name '${e}'`,tt.ERR_NEW_KEY_NAME_INVALID);let n=pr(t),i=pr(e),s=on(t),o=on(e);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${e}' already exists`,tt.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),l=await this.components.datastore.get(s),u=JSON.parse(z(l));u.name=e;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,F(JSON.stringify(u))),f.delete(n),f.delete(s),await f.commit(),u}catch(c){throw await yt(),c}}async exportKey(t,e){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("Password is required",tt.ERR_PASSWORD_REQUIRED);let n=pr(t);try{let i=await this.components.datastore.get(n),s=z(i),o=Kn.get(this);if(o==null)throw new w("dek missing",tt.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await As(s,a)).export(e)}catch(i){throw await yt(),i}}async exportPeerId(t){let e="temporary-password",n=await this.exportKey(t,e),i=await As(n,e);return await $r(i.public.bytes,i.bytes)}async importKey(t,e,n){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("PEM encoded key is required",tt.ERR_PEM_REQUIRED);let i=pr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,tt.ERR_KEY_ALREADY_EXISTS);let o;try{o=await As(e,n)}catch{throw await yt(),new w("Cannot read the key, most likely the password is wrong",tt.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let u=Kn.get(this);if(u==null)throw new w("dek missing",tt.ERR_INVALID_PARAMETERS);let f=u.dek;e=await o.export(f)}catch(u){throw await yt(),u}let c={name:t,id:a},l=this.components.datastore.batch();return l.put(i,F(e)),l.put(on(t),F(JSON.stringify(c))),await l.commit(),c}async importPeer(t,e){try{if(!kr(t))throw new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);if(e==null)throw new w("PeerId is required",tt.ERR_MISSING_PRIVATE_KEY);if(e.privateKey==null)throw new w("PeerId.privKey is required",tt.ERR_MISSING_PRIVATE_KEY);let n=await Mi(e.privateKey),i=pr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,tt.ERR_KEY_ALREADY_EXISTS);let o=Kn.get(this);if(o==null)throw new w("dek missing",tt.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),l={name:t,id:e.toString()},u=this.components.datastore.batch();return u.put(i,F(c)),u.put(on(t),F(JSON.stringify(l))),await u.commit(),l}catch(n){throw await yt(),n}}async getPrivateKey(t){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,tt.ERR_INVALID_KEY_NAME);try{let e=pr(t),n=await this.components.datastore.get(e);return z(n)}catch(e){throw await yt(),ba.error(e),new w(`Key '${t}' does not exist.`,tt.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await yt(),new w(`Invalid old pass type '${typeof t}'`,tt.ERR_INVALID_OLD_PASS_TYPE);if(typeof e!="string")throw await yt(),new w(`Invalid new pass type '${typeof e}'`,tt.ERR_INVALID_NEW_PASS_TYPE);if(e.length<20)throw await yt(),new w(`Invalid pass length ${e.length}`,tt.ERR_INVALID_PASS_LENGTH);ba("recreating keychain");let n=Kn.get(this);if(n==null)throw new w("dek missing",tt.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=e;let s=e!=null&&this.init.dek?.salt!=null?Rs(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Kn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(pr(a.name)),l=z(c),u=await As(l,i),f=s.toString(),h=await u.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(pr(a.name),F(h)),d.put(on(a.name),F(JSON.stringify(p))),await d.commit()}ba("keychain reconstructed")}};var SD=Symbol.for("@libp2p/transport");var an;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(an||(an={}));var Gu=class extends Map{constructor(t){super();let{name:e,metrics:n}=t;this.metric=n.registerMetric(e),this.updateComponentMetric()}set(t,e){return super.set(t,e),this.updateComponentMetric(),this}delete(t){let e=super.delete(t);return this.updateComponentMetric(),e}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Is(r){let{name:t,metrics:e}=r,n;return e!=null?n=new Gu({name:t,metrics:e}):n=new Map,n}var $n=U("libp2p:transports"),_a=class extends Pt{constructor(t,e={}){super(),this.components=t,this.started=!1,this.transports=new Map,this.listeners=Is({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=e.faultTolerance??an.FATAL_ALL}add(t){let e=t[Symbol.toStringTag];if(e==null)throw new w("Transport must have a valid tag",S.ERR_INVALID_KEY);if(this.transports.has(e))throw new w(`There is already a transport with the tag ${e}`,S.ERR_DUPLICATE_TRANSPORT);$n("adding transport %s",e),this.transports.set(e,t),this.listeners.has(e)||this.listeners.set(e,[])}isStarted(){return this.started}async start(){let t=this.components.addressManager.getListenAddrs();await this.listen(t),this.started=!0}async stop(){let t=[];for(let[e,n]of this.listeners)for($n("closing listeners for %s",e);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),$n("all listeners closed");for(let e of this.listeners.keys())this.listeners.set(e,[]);this.started=!1}async dial(t,e){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,S.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...e,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=S.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let e of this.listeners.values())for(let n of e)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(t){for(let e of this.transports.values())if(e.filter([t]).length>0)return e}async listen(t){if(t==null||t.length===0){$n("no addresses were provided for listening, this node is dial only");return}let e=[];for(let[n,i]of this.transports.entries()){let s=i.filter(t),o=[];for(let l of s){$n("creating listener for %s on %s",n,l);let u=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(u),u.addEventListener("listening",()=>{this.dispatchEvent(new $("listener:listening",{detail:u}))}),u.addEventListener("close",()=>{this.dispatchEvent(new $("listener:close",{detail:u}))}),o.push(u.listen(l))}if(o.length===0){e.push(n);continue}if((await Promise.allSettled(o)).find(l=>l.status==="fulfilled")==null&&this.faultTolerance!==an.NO_FATAL)throw new w(`Transport (${n}) could not listen on any available address`,S.ERR_NO_VALID_ADDRESSES)}if(e.length===this.transports.size){let n=`no valid addresses were provided for transports [${e.join(", ")}]`;if(this.faultTolerance===an.FATAL_ALL)throw new w(n,S.ERR_NO_VALID_ADDRESSES);$n(`libp2p in dial mode only: ${n}`)}}async remove(t){$n("removing %s",t);for(let e of this.listeners.get(t)??[])await e.close();this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let e of this.transports.keys())t.push(this.remove(e));await Promise.all(t)}};var Or="/multistream/1.0.0";var rg=N(ci(),1);var Qy=Symbol.for("@achingbrain/uint8arraylist");function Wy(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function Sa(r){return!!r?.[Qy]}var Ot=class{constructor(...t){Object.defineProperty(this,Qy,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Sa(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Sa(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Wy(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Wy(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(Sa(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:i}=this._subList(t,e);return Ut(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:Ut(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),s=new Ot;return s.length=i,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,t>=c)continue;let l=t>=a&&t<c,u=e>a&&e<=c;if(l&&u){if(t===a&&e===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(e-t)));break}if(l){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(u){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Sa(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let 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,l=n.byteLength-1,u;for(let f=e;f<=c;f+=u){u=0;for(let h=l;h>=0;h--){let d=this.get(f+h);if(n[h]!==d){u=Math.max(1,h-a[d]);break}}if(u===0)return f}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let i=xr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let i=xr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof Ot)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!xt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new Ot;return n.bufs=t,e==null&&(e=t.reduce((i,s)=>i+s.byteLength,0)),n.length=e,n}};function Aa(r){return r instanceof Uint8Array?{get(t){return r[t]},set(t,e){r[t]=e}}:{get(t){return r.get(t)},set(t,e){r.set(t,e)}}}var Xy=4294967296,Ae=class{constructor(t=0,e=0){this.hi=t,this.lo=e}toBigInt(t){if(t===!0)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),e=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new Ae(n,e)}zzEncode(){let t=this.hi>>31,e=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new Ae(e,n)}toBytes(t,e=0){let n=Aa(t);for(;this.hi>0;)n.set(e++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(e++,this.lo&127|128),this.lo=this.lo>>>7;n.set(e++,this.lo)}static fromBigInt(t){if(t===0n)return new Ae;let e=t<0;e&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return e&&(n=~n>>>0,i=~i>>>0,++i>Xy&&(i=0,++n>Xy&&(n=0))),new Ae(n,i)}static fromNumber(t){if(t===0)return new Ae;let e=t<0;e&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Ae(i,n)}static fromBytes(t,e=0){let n=Aa(t),i=new Ae,s=0;if(t.length-e>4){for(;s<4;++s)if(i.lo=(i.lo|(n.get(e)&127)<<s*7)>>>0,n.get(e++)<128)return i;if(i.lo=(i.lo|(n.get(e)&127)<<28)>>>0,i.hi=(i.hi|(n.get(e)&127)>>4)>>>0,n.get(e++)<128)return i;s=0}else for(;s<4;++s){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.lo=(i.lo|(n.get(e)&127)<<s*7)>>>0,n.get(e++)<128)return i}if(t.length-e>4){for(;s<5;++s)if(i.hi=(i.hi|(n.get(e)&127)<<s*7+3)>>>0,n.get(e++)<128)return i}else if(e<t.byteLength)for(;s<5;++s){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.hi=(i.hi|(n.get(e)&127)<<s*7+3)>>>0,n.get(e++)<128)return i}throw RangeError("invalid varint encoding")}};var cS=Math.pow(2,7),lS=Math.pow(2,14),uS=Math.pow(2,21),fS=Math.pow(2,28),hS=Math.pow(2,35),dS=Math.pow(2,42),pS=Math.pow(2,49),mS=Math.pow(2,56),yS=Math.pow(2,63),We={encodingLength(r){return r<cS?1:r<lS?2:r<uS?3:r<fS?4:r<hS?5:r<dS?6:r<pS?7:r<mS?8:r<yS?9:10},encode(r,t,e=0){if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=vr(We.encodingLength(r))),Ae.fromNumber(r).toBytes(t,e),t},decode(r,t=0){return Ae.fromBytes(r,t).toNumber(!0)}};function Zy(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Ra=r=>{let t=We.encodingLength(r),e=Zy(t);return We.encode(r,e),Ra.bytes=t,e};Ra.bytes=0;function Re(r){r=r??{};let t=r.lengthEncoder??Ra;return async function*(n){for await(let i of n){let s=t(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}}}Re.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Ra;return new Ot(e(r.byteLength),r)};var Ts=N(ci(),1),gS=8,wS=1024*1024*4,zn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(zn||(zn={}));var Yu=r=>{let t=We.decode(r);return Yu.bytes=We.encodingLength(t),t};Yu.bytes=0;function me(r){return async function*(e){let n=new Ot,i=zn.LENGTH,s=-1,o=r?.lengthDecoder??Yu,a=r?.maxLengthLength??gS,c=r?.maxDataLength??wS;for await(let l of e)for(n.append(l);n.byteLength>0;){if(i===zn.LENGTH)try{if(s=o(n),s<0)throw(0,Ts.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(s>c)throw(0,Ts.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;n.consume(u),r?.onLength!=null&&r.onLength(s),i=zn.DATA}catch(u){if(u instanceof RangeError){if(n.byteLength>a)throw(0,Ts.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(i===zn.DATA){if(n.byteLength<s)break;let u=n.sublist(0,s);n.consume(s),r?.onData!=null&&r.onData(u),yield u,i=zn.LENGTH}}if(n.byteLength>0)throw(0,Ts.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}me.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:s,value:o}=await r.next(e);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{e=1}}();return me({...t??{},onLength:s=>{e=s}})(n)};var Wu=N(ci(),1);var Cs=class extends Error{constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Jy(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function Ta(r,t,e){let n=e??{},i=Jy(r);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:u,abortCode:f}=n;throw new Cs(u,f)}let l=new Promise((u,f)=>{o=()=>{let{abortMessage:h,abortCode:d}=n;f(new Cs(h,d))}});c=await Promise.race([l,i.next()]),o=null}catch(l){t.removeEventListener("abort",a);let u=l.type==="aborted"&&t.aborted;if(u&&n.onAbort!=null&&await n.onAbort(r),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(u&&n.returnOnAbort===!0)return;throw l}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function ES(r,t,e){return n=>r(Ta(n,t,e))}function ye(r,t,e){return{sink:ES(r.sink,t,{...e,onAbort:void 0}),source:Ta(r.source,t,e)}}var vS=U("libp2p:mss"),jy=F(`
38
- `);function Bs(r){let t=new Ot(r,jy);return Re.single(t)}function Hn(r,t,e={}){let n=Bs(t);e.writeBytes===!0?r.push(n.subarray()):r.push(n)}function tg(r,t,e={}){let n=new Ot;for(let i of t)n.append(Bs(i));e.writeBytes===!0?r.push(n.subarray()):r.push(n)}async function bS(r,t){let e=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await r.next(e)},i=n;t?.signal!=null&&(i=Ta(n,t.signal));let o=await Ft(i,me({onLength:a=>{e=a},maxDataLength:1024}),async a=>await se(a));if(o==null||o.length===0)throw(0,Wu.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==jy[0])throw vS.error("Invalid mss message - missing newline - %s",o.subarray()),(0,Wu.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ui(r,t){let e=await bS(r,t);return z(e.subarray())}function Qu(r){let t=async function*(){let e=yield,n=new Ot;for await(let i of r){if(e==null){n.append(i),e=yield n,n=new Ot;continue}for(n.append(i);n.length>=e;){let s=n.sublist(0,e);if(n.consume(e),e=yield s,e==null){n.length>0&&(e=yield n,n=new Ot);break}}}if(e!=null)throw Object.assign(new Error(`stream ended before ${e} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function cn(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}function Ca(r){let t=vn(),e=Qu(r.source),n=cn(),i,s=r.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:e,writer:t,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await s),source:e},rest:()=>t.end(),write:t.push,read:async()=>{let a=await e.next();if(a.value!=null)return a.value}}}var Ds=U("libp2p:mss:select");async function Ls(r,t,e={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=Ca(r),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Ds('select: write ["%s", "%s"]',Or,a);let c=F(Or),l=F(a);tg(i,[c,l],e);let u=await Ui(n,e);if(Ds('select: read "%s"',u),u===Or&&(u=await Ui(n,e),Ds('select: read "%s"',u)),u===a)return s(),{stream:o,protocol:a};for(let f of t){Ds('select: write "%s"',f),Hn(i,F(f),e);let h=await Ui(n,e);if(Ds('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),(0,rg.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Ps=U("libp2p:mss:handle");async function Ns(r,t,e){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=Ca(r);for(;;){let a=await Ui(i,e);if(Ps('read "%s"',a),a===Or){Ps('respond with "%s" for "%s"',Or,a),Hn(n,F(Or),e);continue}if(t.includes(a))return Hn(n,F(a),e),Ps('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Hn(n,new Ot(...t.map(c=>Bs(F(c)))),e),Ps('respond with "%s" for %s',t,a);continue}Hn(n,F("na"),e),Ps('respond with "na" for "%s"',a)}}var ng=Symbol.for("@libp2p/connection");var SS=U("libp2p:connection"),Xu=class{constructor(t){let{remoteAddr:e,remotePeer:n,newStream:i,close:s,getStreams:o,stat:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=e,this.remotePeer=n,this.stat={...a,status:Bo},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[ng](){return!0}get streams(){return this._getStreams()}async newStream(t,e){if(this.stat.status===xl)throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Do)throw new w("the connection is closed","ERR_CONNECTION_CLOSED");Array.isArray(t)||(t=[t]);let n=await this._newStream(t,e);return n.stat.direction="outbound",n}addStream(t){t.stat.direction="inbound"}removeStream(t){}async close(){if(!(this.stat.status===Do||this._closing)){this.stat.status=xl;try{this.streams.forEach(t=>{t.close()})}catch(t){SS.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Do}}};function ig(r){return new Xu(r)}var AS=Symbol.for("@libp2p/topology");function sg(r){return r!=null&&!!r[AS]}var Zu=U("libp2p:registrar"),Ju=32,ju=64,Ba=class{constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,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(t){let e=this.handlers.get(t);if(e==null)throw new w(`No handler registered for protocol ${t}`,S.ERR_NO_HANDLER_FOR_PROTOCOL);return e}getTopologies(t){let e=this.topologies.get(t);return e==null?[]:[...e.values()]}async handle(t,e,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,S.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=De.bind({ignoreUndefined:!0})({maxInboundStreams:Ju,maxOutboundStreams:ju},n);this.handlers.set(t,{handler:e,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[t])}async unhandle(t){let e=Array.isArray(t)?t:[t];e.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,e)}async register(t,e){if(!sg(e))throw Zu.error("topology must be an instance of interfaces/topology"),new w("topology must be an instance of interfaces/topology",S.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,e),await e.setRegistrar(this),n}unregister(t){for(let[e,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(e))}_onDisconnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.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(e.remotePeer)}}).catch(n=>{Zu.error(n)})}_onConnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.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(e.remotePeer,e)}}).catch(n=>{Zu.error(n)})}_onProtocolChange(t){let{peerId:e,protocols:n,oldProtocols:i}=t.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 l of c.values())l.onDisconnect(e)}for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let l of c.values()){let u=this.components.connectionManager.getConnections(e)[0];u!=null&&l.onConnect(e,u)}}}};var tf=N(_r(),1);var ef=N(er(),1),bt=U("libp2p:upgrader");function RS(r,t){try{let{options:e}=t.getHandler(r);return e.maxInboundStreams}catch(e){if(e.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return Ju}function IS(r,t){try{let{options:e}=t.getHandler(r);return e.maxOutboundStreams}catch(e){if(e.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return ju}function og(r,t,e){let n=0;return e.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===r&&n++}),n}var Da=class extends Pt{constructor(t,e){super(),this.components=t,this.connectionEncryption=new Map,e.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,e.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=e.inboundUpgradeTimeout}async upgradeInbound(t,e){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",S.ERR_CONNECTION_DENIED);let i,s,o,a,c,l=new tf.TimeoutController(this.inboundUpgradeTimeout);try{(0,ef.setMaxListeners)?.(1/0,l.signal)}catch{}try{let u=ye(t,l.signal);if(t.source=u.source,t.sink=u.sink,await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",S.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),bt("starting the inbound connection upgrade");let f=t;if(e?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(bt("protecting the inbound connection"),f=await h.protect(t))}try{if(i=f,e?.skipEncryption!==!0){if({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection?.(s,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{let h=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",S.ERR_INVALID_MULTIADDR);let d=at(h);c="native",s=d}if(o=i,e?.muxerFactory!=null)a=e.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 bt.error("Failed to upgrade inbound connection",h),h}if(await this.components.connectionGater.denyInboundUpgradedConnection?.(s,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return bt("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s})}finally{this.components.connectionManager.afterUpgradeInbound(),l.clear()}}async upgradeOutbound(t,e){let n=t.remoteAddr.getPeerId(),i;if(n!=null&&(i=at(n),await this.components.connectionGater.denyOutboundConnection?.(i,t)===!0))throw new w("The multiaddr connection is blocked by connectionGater.denyOutboundConnection",S.ERR_CONNECTION_INTERCEPTED);let s,o,a,c,l;this.components.metrics?.trackMultiaddrConnection(t),bt("Starting the outbound connection upgrade");let u=t;if(e?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(u=await f.protect(t))}try{if(s=u,e?.skipEncryption!==!0){if({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(u,i),await this.components.connectionGater.denyOutboundEncryptedConnection?.(o,{...u,...s})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw new w("Encryption was skipped but no peer id was passed",S.ERR_INVALID_PEER);c="native",o=i}if(a=s,e?.muxerFactory!=null)l=e.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...u,...s},this.muxers);l=f.muxerFactory,a=f.stream}}catch(f){throw bt.error("Failed to upgrade outbound connection",f),await t.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection?.(o,{...u,...s})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return bt("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:l,remotePeer:o})}_createConnection(t){let{cryptoProtocol:e,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a}=t,c,l,u;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:d=>{u!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:y}=await Ns(d,p);if(bt("%s: incoming stream opened on %s",n,y),u==null)return;let g=RS(y,this.components.registrar);if(og(y,"inbound",u)===g){d.abort(new w(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`,S.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}d.source=m.source,d.sink=m.sink,d.stat.protocol=y,this.components.peerStore.protoBook.add(o,[y]).catch(_=>{bt.error(_)}),u.addStream(d),this.components.metrics?.trackProtocolStream(d,u),this._onStream({connection:u,stream:d,protocol:y})}).catch(p=>{bt.error(p),d.stat.timeline.close==null&&d.close()})},onStreamEnd:d=>{u?.removeStream(d.id)}}),l=async(d,p={})=>{if(c==null)throw new w("Stream is not multiplexed",S.ERR_MUXER_UNAVAILABLE);bt("%s: starting new stream on %s",n,d);let m=await c.newStream(),y;try{if(p.signal==null){bt("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),y=new tf.TimeoutController(3e4),p.signal=y.signal;try{(0,ef.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:x}=await Ls(m,d,p),_=IS(x,this.components.registrar);if(og(x,"outbound",u)===_){let C=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${_}`,S.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(o,[x]).catch(C=>{bt.error(C)}),m.source=g.source,m.sink=g.sink,m.stat.protocol=x,this.components.metrics?.trackProtocolStream(m,u),m}catch(g){throw bt.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:new w(String(g),S.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(s.source),s.sink(c.source)]).catch(d=>{bt.error(d)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...d)=>(u!=null&&d[1]==="close"&&d[2]!=null&&f.close==null&&(async()=>{try{u.stat.status==="OPEN"&&await u.close()}catch(p){bt.error(p)}finally{this.dispatchEvent(new $("connectionEnd",{detail:u}))}})().catch(p=>{bt.error(p)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let h=()=>{throw new w("connection is not multiplexed",S.ERR_CONNECTION_NOT_MULTIPLEXED)};return u=ig({remoteAddr:i.remoteAddr,remotePeer:o,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:e},newStream:l??h,getStreams:()=>c!=null?c.streams:h(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new $("connection",{detail:u})),u}_onStream(t){let{connection:e,stream:n,protocol:i}=t,{handler:s}=this.components.registrar.getHandler(i);s({connection:e,stream:n})}async _encryptInbound(t){let e=Array.from(this.connectionEncryption.keys());bt("handling inbound crypto protocol selection",e);try{let{stream:n,protocol:i}=await Ns(t,e,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return bt("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),S.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,e){let n=Array.from(this.connectionEncryption.keys());bt("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return bt("encrypting outbound connection to %p",e),{...await o.secureOutbound(this.components.peerId,i,e),protocol:s}}catch(i){throw new w(String(i),S.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,e){let n=Array.from(e.keys());bt("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0});bt("%s selected as muxer protocol",s);let o=e.get(s);return{stream:i,muxerFactory:o}}catch(i){throw bt.error("error multiplexing outbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,e){let n=Array.from(e.keys());bt("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ns(t,n,{writeBytes:!0}),o=e.get(s);return{stream:i,muxerFactory:o}}catch(i){throw bt.error("error multiplexing inbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}};var Gn;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.protocolVersion!=null&&(n.uint32(42),n.string(e.protocolVersion)),e.agentVersion!=null&&(n.uint32(50),n.string(e.agentVersion)),e.publicKey!=null&&(n.uint32(10),n.bytes(e.publicKey)),e.listenAddrs!=null)for(let s of e.listenAddrs)n.uint32(18),n.bytes(s);if(e.observedAddr!=null&&(n.uint32(34),n.bytes(e.observedAddr)),e.protocols!=null)for(let s of e.protocols)n.uint32(26),n.string(s);e.signedPeerRecord!=null&&(n.uint32(66),n.bytes(e.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={listenAddrs:[],protocols:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 5:i.protocolVersion=e.string();break;case 6:i.agentVersion=e.string();break;case 1:i.publicKey=e.bytes();break;case 2:i.listenAddrs.push(e.bytes());break;case 4:i.observedAddr=e.bytes();break;case 3:i.protocols.push(e.string());break;case 8:i.signedPeerRecord=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Gn||(Gn={}));var ag={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var ks;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.publicKey=e.bytes();break;case 2:i.payloadType=e.bytes();break;case 3:i.payload=e.bytes();break;case 5:i.signature=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(ks||(ks={}));var TS,Zt=class{constructor(t){let{peerId:e,payloadType:n,payload:i,signature:s}=t;this.peerId=e,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=ks.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return xt(this.marshal(),t.marshal())}async validate(t){let e=cg(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await Ss(this.peerId.publicKey).verify(e.subarray(),this.signature)}};TS=Zt;Zt.createFromProtobuf=async r=>{let t=ks.decode(r),e=await $r(t.publicKey);return new Zt({peerId:e,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};Zt.seal=async(r,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let e=r.domain,n=r.codec,i=r.marshal(),s=cg(e,n,i),a=await(await Mi(t.privateKey)).sign(s.subarray());return new Zt({peerId:t,payloadType:n,payload:i,signature:a})};Zt.openAndCertify=async(r,t)=>{let e=await Zt.createFromProtobuf(r);if(!await e.validate(t))throw new w("envelope signature is not valid for the given domain",ag.ERR_SIGNATURE_NOT_VALID);return e};var cg=(r,t,e)=>{let n=F(r),i=We.encode(n.byteLength),s=We.encode(t.length),o=We.encode(e.length);return new Ot(i,n,s,t,o,e)};function lg(r,t){let e=(n,i)=>n.toString().localeCompare(i.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,i)=>t[i].equals(n)))}var Os;(function(r){let t;(function(n){let i;n.codec=()=>(i==null&&(i=mt((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let l=s.uint32();switch(l>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(l&7);break}}return a})),i),n.encode=s=>pt(s,n.codec()),n.decode=s=>dt(s,n.codec())})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=mt((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),r.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),e),r.encode=n=>pt(n,r.codec()),r.decode=n=>dt(n,r.codec())})(Os||(Os={}));var ug="libp2p-peer-record",fg=Uint8Array.from([3,1]);var Gt=class{constructor(t){this.domain=Gt.DOMAIN,this.codec=Gt.CODEC;let{peerId:e,multiaddrs:n,seqNumber:i}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Os.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof Gt)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!lg(this.multiaddrs,t.multiaddrs))}};Gt.createFromProtobuf=r=>{let t=Os.decode(r),e=qr(t.peerId),n=(t.addresses??[]).map(s=>_t(s.multiaddr)),i=t.seq;return new Gt({peerId:e,multiaddrs:n,seqNumber:i})};Gt.DOMAIN=ug;Gt.CODEC=fg;var La="0.0.0",hg="libp2p";var rf=`js-libp2p/${La}`;var dg="0.1.0",pg="id",mg="id/push",yg="1.0.0",gg="1.0.0";var Ms=N(_r(),1);var Us=N(er(),1),gt=U("libp2p:identify"),wg=1024*8,Fi=class{constructor(t,e){this.components=t,this.started=!1,this.init=e,this.identifyProtocolStr=`/${e.protocolPrefix}/${pg}/${yg}`,this.identifyPushProtocolStr=`/${e.protocolPrefix}/${mg}/${gg}`,this.host={protocolVersion:`${e.protocolPrefix}/${dg}`,...e.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(gt.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>{gt.error(s)})}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>{gt.error(s)})})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",F(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",F(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,t=>{this._handleIdentify(t).catch(e=>{gt.error(e)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,t=>{this._handlePush(t).catch(e=>{gt.error(e)})},{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(t){let e=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=t.map(async o=>{let a,c=new Ms.TimeoutController(this.init.timeout);try{(0,Us.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await ye(a,c.signal).sink(Ft([Gn.encode({listenAddrs:n,signedPeerRecord:e,protocols:i})],Re()))}catch(l){gt.error("could not push identify update to peer",l)}finally{a?.close(),c.clear()}});await Promise.all(s)}async pushToPeerStore(){if(!this.isStarted())return;let t=[];for(let e of this.components.connectionManager.getConnections()){let n=e.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&t.push(e)}await this.push(t)}async _identify(t,e={}){let n,i=e.signal,s;if(i==null){n=new Ms.TimeoutController(this.init.timeout),i=n.signal;try{(0,Us.setMaxListeners)?.(1/0,n.signal)}catch{}}try{s=await t.newStream([this.identifyProtocolStr],{signal:i});let o=ye(s,i),a=await Ft([],o,me({maxDataLength:this.init.maxIdentifyMessageSize??wg}),async c=>await se(c));if(a==null)throw new w("No data could be retrieved",S.ERR_CONNECTION_ENDED);try{return Gn.decode(a)}catch(c){throw new w(String(c),S.ERR_INVALID_MESSAGE)}}finally{n?.clear(),s?.close()}}async identify(t,e={}){let n=await this._identify(t,e),{publicKey:i,listenAddrs:s,protocols:o,observedAddr:a,signedPeerRecord:c,agentVersion:l,protocolVersion:u}=n;if(i==null)throw new w("public key was missing from identify message",S.ERR_MISSING_PUBLIC_KEY);let f=await $r(i);if(!t.remotePeer.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw new w("identified peer is our own peer id?",S.ERR_INVALID_PEER);let h=Fi.getCleanMultiaddr(a);if(c!=null){gt("received signed peer record from %p",f);try{let d=await Zt.openAndCertify(c,Gt.DOMAIN);if(!d.peerId.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(d)){await this.components.peerStore.protoBook.set(f,o),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(u)),gt("identify completed for peer %p with and protocols %o",f,o);return}}catch(d){gt("received invalid envelope, discard it and fallback to listenAddrs is available",d)}}else gt("no signed peer record received from %p",f);gt("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,s.map(d=>_t(d)))}catch(d){gt.error("received invalid addrs",d)}await this.components.peerStore.protoBook.set(f,o),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(u)),gt("identify completed for peer %p and protocols %o",f,o),gt("our observed address is %s",h),h!=null&&this.components.addressManager.getObservedAddrs().length<(this.init.maxObservedAddresses??1/0)&&(gt("storing our observed address %s",h?.toString()),this.components.addressManager.addObservedAddr(h))}async _handleIdentify(t){let{connection:e,stream:n}=t,i=new Ms.TimeoutController(this.init.timeout);try{(0,Us.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(j("p2p").code)),c=o.peerRecordEnvelope;if(a.length>0&&c==null){let h=new Gt({peerId:this.components.peerId,multiaddrs:a}),d=await Zt.seal(h,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(d),c=d.marshal().subarray()}let l=Gn.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:s,listenAddrs:a.map(h=>h.bytes),signedPeerRecord:c,observedAddr:e.remoteAddr.bytes,protocols:o.protocols}),u=ye(n,i.signal),f=Ft([l],Re());await u.sink(f)}catch(s){gt.error("could not respond to identify request",s)}finally{n.close(),i.clear()}}async _handlePush(t){let{connection:e,stream:n}=t,i=new Ms.TimeoutController(this.init.timeout);try{(0,Us.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=ye(n,i.signal),c=await Ft([],a,me({maxDataLength:this.init.maxIdentifyMessageSize??wg}),async l=>await se(l));c!=null&&(s=Gn.decode(c))}catch(a){gt.error("received invalid message",a);return}finally{n.close(),i.clear()}if(s==null){gt.error("received invalid message");return}let o=e.remotePeer;if(this.components.peerId.equals(o)){gt("received push from ourselves?");return}if(gt("received push from %p",o),s.signedPeerRecord!=null){gt("received signedPeerRecord in push");try{let a=await Zt.openAndCertify(s.signedPeerRecord,Gt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){gt("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(o,s.protocols);return}else gt("failed to consume signedPeerRecord sent in push")}catch(a){gt("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else gt("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(o,s.listenAddrs.map(a=>_t(a)))}catch(a){gt.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(o,s.protocols)}catch(a){gt.error("received invalid protocols",a)}gt("handled push from %p",o)}static getCleanMultiaddr(t){if(t!=null&&t.length>0)try{return _t(t)}catch{}}};var Fs;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.identifier!=null&&e.identifier!==""&&(n.uint32(10),n.string(e.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={identifier:""},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.identifier=e.string();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Fs||(Fs={}));var Qe;(function(r){let t;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(t=r.StatusCode||(r.StatusCode={}));let e;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(e||(e={})),function(i){i.codec=()=>Gr(e)}(t=r.StatusCode||(r.StatusCode={}));let n;r.codec=()=>(n==null&&(n=mt((i,s,o={})=>{o.lengthDelimited!==!1&&s.fork(),i.status!=null&&e[i.status]!==0&&(s.uint32(8),r.StatusCode.codec().encode(i.status,s)),i.data!=null&&i.data.byteLength>0&&(s.uint32(18),s.bytes(i.data)),o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={status:t.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=r.StatusCode.codec().decode(i);break;case 2:o.data=i.bytes();break;default:i.skipType(c&7);break}}return o})),n),r.encode=i=>pt(i,r.codec()),r.decode=i=>dt(i,r.codec())})(Qe||(Qe={}));var Eg="0.0.1",xg="fetch";var vg=N(_r(),1),bg=N(er(),1);var Me=U("libp2p:fetch"),Pa=class{constructor(t,e){this.started=!1,this.components=t,this.protocol=`/${e.protocolPrefix??"libp2p"}/${xg}/${Eg}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=e}async start(){await this.components.registrar.handle(this.protocol,t=>{this.handleMessage(t).catch(e=>{Me.error(e)}).finally(()=>{t.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(t,e,n={}){Me("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),s,o=n.signal,a;if(o==null){Me("using default timeout of %d ms",this.init.timeout),s=new vg.TimeoutController(this.init.timeout),o=s.signal;try{(0,bg.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=ye(a,o);return Me("fetch %s",e),await Ft([Fs.encode({identifier:e})],Re(),c,me(),async function(u){let f=await se(u);if(f==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let h=Qe.decode(f);switch(h.status){case Qe.StatusCode.OK:return Me("received status for %s ok",e),h.data;case Qe.StatusCode.NOT_FOUND:return Me("received status for %s not found",e),null;case Qe.StatusCode.ERROR:{Me("received status for %s error",e);let d=z(h.data);throw new w("Error in fetch protocol response: "+d,S.ERR_INVALID_PARAMETERS)}default:throw Me("received status for %s unknown",e),new w("Unknown response status",S.ERR_INVALID_MESSAGE)}})??null}finally{s?.clear(),a?.close()}}async handleMessage(t){let{stream:e}=t,n=this;await Ft(e,me(),async function*(i){let s=await se(i);if(s==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let o=Fs.decode(s),a,c=n._getLookupFunction(o.identifier);if(c!=null){Me("look up data with identifier %s",o.identifier);let l=await c(o.identifier);l!=null?(Me("sending status for %s ok",o.identifier),a={status:Qe.StatusCode.OK,data:l}):(Me("sending status for %s not found",o.identifier),a={status:Qe.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Me("sending status for %s error",o.identifier);let l=F(`No lookup function registered for key: ${o.identifier}`);a={status:Qe.StatusCode.ERROR,data:l}}yield Qe.encode(a)},Re(),e)}_getLookupFunction(t){for(let e of this.lookupFunctions.keys())if(t.startsWith(e))return this.lookupFunctions.get(e)}registerLookupFunction(t,e){if(this.lookupFunctions.has(t))throw new w(`Fetch protocol handler for key prefix '${t}' already registered`,S.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(t,e)}unregisterLookupFunction(t,e){e!=null&&this.lookupFunctions.get(t)!==e||this.lookupFunctions.delete(t)}};var _g="1.0.0",Sg="ping";var Rg=N(_r(),1),Ig=N(er(),1),Ag=U("libp2p:ping"),Na=class{constructor(t,e){this.components=t,this.started=!1,this.protocol=`/${e.protocolPrefix}/${Sg}/${_g}`,this.init=e}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(t){let{stream:e}=t;Ft(e,e).catch(n=>{Ag.error(n)})}async ping(t,e={}){Ag("dialing %s to %p",this.protocol,t);let n=Date.now(),i=Dr(32),s=await this.components.connectionManager.openConnection(t,e),o,a=e.signal,c;if(a==null){o=new Rg.TimeoutController(this.init.timeout),a=o.signal;try{(0,Ig.setMaxListeners)?.(1/0,o.signal)}catch{}}try{c=await s.newStream([this.protocol],{signal:a});let l=ye(c,a),u=await Ft([i],l,async h=>await se(h)),f=Date.now();if(u==null||!xt(i,u.subarray()))throw new w("Received wrong ping ack",S.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function Tg(){throw new Error("Not supported in browsers")}var Dg=N(Bg(),1),nf=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,ka=(0,Dg.default)(),Ks=nf&&!ka,Lg=ka&&!nf,Pg=ka&&nf,Ng=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!ka,kg=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,RP=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Og=typeof navigator<"u"&&navigator.product==="ReactNative";var $g=N(Mg(),1);var Ug="[a-fA-F\\d:]",ln=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${Ug})|(?<=${Ug})(?=\\s|$))`:"",Xe="(?: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}",Yt="[a-fA-F\\d]{1,4}",Oa=`
22
+ expire = ${s}
23
+ RETURNING points, expire;`,values:[e,r,o,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"))}};Hd.exports=Iu});var Yd=T(()=>{});var Tn=T(()=>{});var Qd=T((MC,Wd)=>{Wd.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 Zd=T((FC,Xd)=>{var $x=Qd(),Tu=vt();Xd.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 Tu(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 $x(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 Tu(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 Tu(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 Du=T((KC,jd)=>{var zx=ro(),Hx=Zd(),Jd=vt(),Cu=class extends zx{constructor(e={}){super(e),this._memoryStorage=new Hx}consume(e,r=1,n={}){return new Promise((i,o)=>{let s=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(s,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(s,c.consumedPoints,this.blockDuration)),o(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(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new Jd(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 Jd(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)))}};jd.exports=Cu});var s0=T((VC,o0)=>{var e0=Yd(),Gx=Tn(),Yx=ro(),r0=Du(),Wx=vt(),Tt="rate_limiter_flexible",wi=null,t0=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:Tt,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},n0=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&n0.call(this,t)},30)},yi=function(t,e,r,n,i){let o={channel:Tt,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(o):n0.call(this,o)},i0=function(t,e){if(!e||e.channel!==Tt||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=>{t0(t,e,"resolve",n)}).catch(n=>{t0(t,e,"reject",n)})},Qx=function(t){if(!t||t.channel!==Tt||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 Wx(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]}},Xx=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+=Gx.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},Bu=class{constructor(){if(wi)return wi;this._rateLimiters={},e0.setMaxListeners(0),e0.on("message",(e,r)=>{r&&r.channel===Tt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new r0(r.opts)),e.send({channel:Tt,type:"init",keyPrefix:r.opts.keyPrefix})):i0.call(this,e,r)}),wi=this}},Lu=class{constructor(e){if(wi)return wi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let o=i.raw;if(o&&o.channel===Tt&&o.type==="init")typeof this._rateLimiters[o.opts.keyPrefix]>"u"&&(this._rateLimiters[o.opts.keyPrefix]=new r0(o.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Tt,channel:Tt,type:"init",keyPrefix:o.opts.keyPrefix},(s,a)=>{s&&console.log(s,a)});else{let s={send:a=>{let c=a;c.topic=Tt,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};i0.call(this,s,o)}})}),wi=this}},Pu=class extends Yx{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===Tt&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Qx.call(this,r)}),process.send({channel:Tt,type:"init",opts:Xx.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,o)=>{let s=gi.call(this,i,o);yi.call(this,"consume",s,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,o)=>{let s=gi.call(this,i,o);yi.call(this,"penalty",s,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,o)=>{let s=gi.call(this,i,o);yi.call(this,"reward",s,e,r,n)})}block(e,r,n={}){return new Promise((i,o)=>{let s=gi.call(this,i,o);yi.call(this,"block",s,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let o=gi.call(this,n,i);yi.call(this,"get",o,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let o=gi.call(this,n,i);yi.call(this,"delete",o,e,r)})}};o0.exports={RateLimiterClusterMaster:Bu,RateLimiterClusterMasterPM2:Lu,RateLimiterCluster:Pu}});var c0=T((qC,a0)=>{var Zx=mi(),Jx=vt(),Nu=class extends Zx{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new Jx;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,o={}){return new Promise((s,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};s(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(h,d)=>{if(h||!d)if(typeof o.attemptNumber>"u"||o.attemptNumber<3){let p=Object.assign({},o);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(e,r,n,i,p).then(m=>s(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let p={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};s(p)})}):this.client.get(`${e}_expire`,(h,d)=>{if(h)a(h);else{let p=d===!1?0:d,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};s(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(o,s)=>{s?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:s,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,o)=>{i?n(i):o===!1?r(o):this.client.del(`${e}_expire`,s=>{s?n(s):r(o)})})})}};a0.exports=Nu});var f0=T((zC,l0)=>{var u0=vt();l0.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 u0(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new u0(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 d0=T((GC,h0)=>{var jx=ro();h0.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 jx))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 o=[];this._limiters.forEach(s=>{o.push(s.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(o).then(s=>{let a={},c=!1;s.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<s.length;u++)c&&s[u].rejected===!0?a[this._limiters[u].keyPrefix]=s[u].rej:c||(a[this._limiters[u].keyPrefix]=s[u]);c?i(a):n(a)})})}}});var m0=T((WC,p0)=>{p0.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 E0=T((XC,w0)=>{var y0=m0(),g0=4294967295,ku="limiter";w0.exports=class{constructor(e,r={maxQueueSize:g0}){this._queueLimiters={KEY_DEFAULT:new Ds(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=ku){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=ku){return this._queueLimiters[r]||(this._queueLimiters[r]=new Ds(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Ds=class{constructor(e,r={maxQueueSize:g0,key:ku}){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 y0(`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(o=>{n(o.remainingPoints)}).catch(o=>{o instanceof Error?i(o):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),o.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new y0(`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 v0=T((JC,x0)=>{var Ou=vt();x0.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return new Ou(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 Ou?this._burstLimiter.consume(e,r,n).then(o=>Promise.resolve(this._combineRes(i,o))).catch(o=>o instanceof Ou?Promise.reject(this._combineRes(i,o)):Promise.reject(o)):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 _0=T((jC,b0)=>{var ev=Fd(),tv=qd(),rv=zd(),nv=Gd(),{RateLimiterClusterMaster:iv,RateLimiterClusterMasterPM2:ov,RateLimiterCluster:sv}=s0(),av=Du(),cv=c0(),uv=f0(),lv=d0(),fv=E0(),hv=v0(),dv=vt();b0.exports={RateLimiterRedis:ev,RateLimiterMongo:tv,RateLimiterMySQL:rv,RateLimiterPostgres:nv,RateLimiterMemory:av,RateLimiterMemcache:cv,RateLimiterClusterMaster:iv,RateLimiterClusterMasterPM2:ov,RateLimiterCluster:sv,RLWrapperBlackAndWhite:uv,RateLimiterUnion:lv,RateLimiterQueue:fv,BurstyRateLimiter:hv,RateLimiterRes:dv}});var A0=T((v4,Mu)=>{"use strict";var mv=Object.prototype.hasOwnProperty,ct="~";function io(){}Object.create&&(io.prototype=Object.create(null),new io().__proto__||(ct=!1));function yv(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function S0(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new yv(r,n||t,i),s=ct?ct+e:e;return t._events[s]?t._events[s].fn?t._events[s]=[t._events[s],o]:t._events[s].push(o):(t._events[s]=o,t._eventsCount++),t}function Ls(t,e){--t._eventsCount===0?t._events=new io:delete t._events[e]}function ot(){this._events=new io,this._eventsCount=0}ot.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)mv.call(r,n)&&e.push(ct?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};ot.prototype.listeners=function(e){var r=ct?ct+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};ot.prototype.listenerCount=function(e){var r=ct?ct+e:e,n=this._events[r];return n?n.fn?1:n.length:0};ot.prototype.emit=function(e,r,n,i,o,s){var a=ct?ct+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,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,s),!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};ot.prototype.on=function(e,r,n){return S0(this,e,r,n,!1)};ot.prototype.once=function(e,r,n){return S0(this,e,r,n,!0)};ot.prototype.removeListener=function(e,r,n,i){var o=ct?ct+e:e;if(!this._events[o])return this;if(!r)return Ls(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&Ls(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:Ls(this,o)}return this};ot.prototype.removeAllListeners=function(e){var r;return e?(r=ct?ct+e:e,this._events[r]&&Ls(this,r)):(this._events=new io,this._eventsCount=0),this};ot.prototype.off=ot.prototype.removeListener;ot.prototype.addListener=ot.prototype.on;ot.prefixed=ct;ot.EventEmitter=ot;typeof Mu<"u"&&(Mu.exports=ot)});var k0=T(ho=>{(function(){var t,e,r,n,i,o,s,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(".")},s=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"),o=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])-o)>>>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=s(l)}catch(m){throw f=m,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=(s(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(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=s(this.first),f=s(this.last),l=0;h<=f;)u(a(h),h,l),l++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),ho.ip2long=s,ho.long2ip=a,ho.Netmask=t}).call(ho)});var F0=T((U0,zs)=>{(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"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${e}\\.${e}\\.${e}\\.${e}(${o})?$`,"i")};function c(d,p){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let m=0,y=-1,g=(d.match(a.zoneIndex)||[])[0],x,_;for(g&&(g=g.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)m++;if(d.substr(0,2)==="::"&&m--,d.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,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 k=d.split(":"),C=[];for(let D=0;D<k.length;D++)C.push(parseInt(k[D],16));return C}(),{parts:p,zoneId:g}}function u(d,p,m,y){if(d.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),d[g]>>x!==p[g]>>x)return!1;y-=m,g+=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 m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=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,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,p.octets,8,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,_;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(_=y[x],m&&_!==0)return null;_!==8&&(m=!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),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(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,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(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 m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,m,y;if(p=d.match(r.fourOctet))return function(){let g=p.slice(1,6),x=[];for(let _=0;_<g.length;_++)m=g[_],x.push(l(m));return x}();if(p=d.match(r.longValue)){if(y=l(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(p=d.match(r.twoOctet))?function(){let g=p.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(p=d.match(r.threeOctet))?function(){let g=p.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},h.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.IPv6=function(){function d(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return 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,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,p.parts,16,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!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,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},d.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},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),m=p[0],y=p[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},d.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=p.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},d.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},d}(),h.IPv6.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(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,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have 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,m,y;if((m=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,m,y,g,x,_;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return 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],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=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,m){let y,g,x,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(x=p[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(_=x[y],d.kind()===_[0].kind()&&d.match.apply(d,_))return g}return m},typeof zs<"u"&&zs.exports?zs.exports=h:t.ipaddr=h})(U0)});var G0=T((G4,H0)=>{"use strict";H0.exports=z0;var Rv=Ic(),Xr=z0.prototype,Iv=new Date%1e9;function Tv(){return(Math.random()*1e9>>>0)+Iv++}function z0(t){t=t||{},this.id=t.id||Tv(),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)}Xr.has=function(t){return t in this._lookup};Xr.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};Xr.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Xr.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};Xr.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};Xr.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=Rv(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};Xr.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Xr.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 op=T((V8,ip)=>{"use strict";function Mv(t){return t>=55296&&t<=56319}function Uv(t){return t>=56320&&t<=57343}ip.exports=function(e,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,o=0,s,a,c=0;c<i;c+=1){if(s=r.charCodeAt(c),a=r[c],Mv(s)&&Uv(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),o+=e(a),o===n)return r.slice(0,c+1);if(o>n)return r.slice(0,c-a.length+1)}return r}});var ap=T((q8,sp)=>{"use strict";function Fv(t){return t>=55296&&t<=56319}function Kv(t){return t>=56320&&t<=57343}sp.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var r=e.length,n=0,i=null,o=null,s=0;s<r;s++)i=e.charCodeAt(s),Kv(i)?o!=null&&Fv(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var up=T(($8,cp)=>{"use strict";var Vv=op(),qv=ap();cp.exports=Vv.bind(null,qv)});var hp=T((z8,fp)=>{"use strict";var $v=up(),zv=/[\/\?<>\\:\*\|"]/g,Hv=/[\x00-\x1f\x80-\x9f]/g,Gv=/^\.+$/,Yv=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Wv=/[\. ]+$/;function lp(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(zv,e).replace(Hv,e).replace(Gv,e).replace(Yv,e).replace(Wv,e);return $v(r,255)}fp.exports=function(t,e){var r=e&&e.replacement||"",n=lp(t,r);return r===""?n:lp(n,"")}});var pp=T((H8,dp)=>{"use strict";dp.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=T((wp,Ep)=>{"use strict";var Xs=pp(),{hasOwnProperty:yp}=Object.prototype,{propertyIsEnumerable:Qv}=Object,_i=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),Xv=wp,mp={concatArrays:!1,ignoreUndefined:!1},Zs=t=>{let e=[];for(let r in t)yp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Qv.call(t,n)&&e.push(n)}return e};function Si(t){return Array.isArray(t)?Zv(t):Xs(t)?Jv(t):t}function Zv(t){let e=t.slice(0,0);return Zs(t).forEach(r=>{_i(e,r,Si(t[r]))}),e}function Jv(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Zs(t).forEach(r=>{_i(e,r,Si(t[r]))}),e}var gp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?_i(t,i,ol(t[i],e[i],n)):_i(t,i,Si(e[i])))}),t),jv=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(o=>{let s=[];for(let a=0;a<o.length;a++)yp.call(o,a)&&(s.push(String(a)),o===t?_i(n,i++,o[a]):_i(n,i++,Si(o[a])));n=gp(n,o,Zs(o).filter(a=>!s.includes(a)),r)}),n};function ol(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?jv(t,e,r):!Xs(e)||!Xs(t)?Si(e):gp(t,e,Zs(e),r)}Ep.exports=function(...t){let e=ol(Si(mp),this!==Xv&&this||{},mp),r={_:{}};for(let n of t)if(n!==void 0){if(!Xs(n))throw new TypeError("`"+n+"` is not an Option Object");r=ol(r,{_:n},e)}return r._}});var _p=T((W8,bp)=>{"use strict";bp.exports=e2;function e2(t,e){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(l){if(o)if(o=!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){o&&(o=!1,c(u))}})}});var Ip=T(Rp=>{"use strict";var Js=Rp;Js.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 Ai=new Array(64),Ap=new Array(123);for(qt=0;qt<64;)Ap[Ai[qt]=qt<26?qt+65:qt<52?qt+71:qt<62?qt-4:qt-59|43]=qt++;var qt;Js.encode=function(e,r,n){for(var i=null,o=[],s=0,a=0,c;r<n;){var u=e[r++];switch(a){case 0:o[s++]=Ai[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=Ai[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=Ai[c|u>>6],o[s++]=Ai[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=Ai[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var Sp="invalid encoding";Js.decode=function(e,r,n){for(var i=n,o=0,s,a=0;a<e.length;){var c=e.charCodeAt(a++);if(c===61&&o>1)break;if((c=Ap[c])===void 0)throw Error(Sp);switch(o){case 0:s=c,o=1;break;case 1:r[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:r[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:r[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(Sp);return n-i};Js.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var Cp=T((X8,Tp)=>{"use strict";Tp.exports=js;function js(){this._listeners={}}js.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};js.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};js.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 Op=T((Z8,kp)=>{"use strict";kp.exports=Dp(Dp);function Dp(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 o(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:o,t.writeFloatBE=n?o:i;function s(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?s:a,t.readFloatBE=n?a:s}():function(){function e(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);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,o,s)}}t.writeFloatLE=e.bind(null,Bp),t.writeFloatBE=e.bind(null,Lp);function r(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,u=s&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,Pp),t.readFloatBE=r.bind(null,Np)}(),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 o(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:o,t.writeDoubleBE=n?o:i;function s(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?s:a,t.readDoubleBE=n?a:s}():function(){function e(n,i,o,s,a,c){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+o);else{var l;if(s<22250738585072014e-324)l=s/5e-324,n(l>>>0,a,c+i),n((u<<31|l/4294967296)>>>0,a,c+o);else{var f=Math.floor(Math.log(s)/Math.LN2);f===1024&&(f=1023),l=s*Math.pow(2,-f),n(l*4503599627370496>>>0,a,c+i),n((u<<31|f+1023<<20|l*1048576&1048575)>>>0,a,c+o)}}}t.writeDoubleLE=e.bind(null,Bp,0,4),t.writeDoubleBE=e.bind(null,Lp,4,0);function r(n,i,o,s,a){var c=n(s,a+i),u=n(s,a+o),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,Pp,0,4),t.readDoubleBE=r.bind(null,Np,4,0)}(),t}function Bp(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 Lp(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 Pp(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function Np(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Mp=T((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 Fp=T(Up=>{"use strict";var sl=Up;sl.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};sl.read=function(e,r,n){var i=n-r;if(i<1)return"";for(var o=null,s=[],a=0,c;r<n;)c=e[r++],c<128?s[a++]=c:c>191&&c<224?s[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,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(e[r++]&63)<<6|e[r++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};sl.write=function(e,r,n){for(var i=n,o,s,a=0;a<e.length;++a)o=e.charCodeAt(a),o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=o&63|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=o&63|128);return n-i}});var Vp=T((j8,Kp)=>{"use strict";Kp.exports=t2;function t2(t,e,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return t(c);s+c>n&&(o=t(n),s=0);var u=e.call(o,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var $p=T((eD,qp)=>{"use strict";qp.exports=Ze;var mo=Pn();function Ze(t,e){this.lo=t>>>0,this.hi=e>>>0}var Ln=Ze.zero=new Ze(0,0);Ln.toNumber=function(){return 0};Ln.zzEncode=Ln.zzDecode=function(){return this};Ln.length=function(){return 1};var r2=Ze.zeroHash="\0\0\0\0\0\0\0\0";Ze.fromNumber=function(e){if(e===0)return Ln;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 Ze(n,i)};Ze.from=function(e){if(typeof e=="number")return Ze.fromNumber(e);if(mo.isString(e))if(mo.Long)e=mo.Long.fromString(e);else return Ze.fromNumber(parseInt(e,10));return e.low||e.high?new Ze(e.low>>>0,e.high>>>0):Ln};Ze.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};Ze.prototype.toLong=function(e){return mo.Long?new mo.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var Jr=String.prototype.charCodeAt;Ze.fromHash=function(e){return e===r2?Ln:new Ze((Jr.call(e,0)|Jr.call(e,1)<<8|Jr.call(e,2)<<16|Jr.call(e,3)<<24)>>>0,(Jr.call(e,4)|Jr.call(e,5)<<8|Jr.call(e,6)<<16|Jr.call(e,7)<<24)>>>0)};Ze.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)};Ze.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};Ze.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};Ze.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 Pn=T(al=>{"use strict";var O=al;O.asPromise=_p();O.base64=Ip();O.EventEmitter=Cp();O.float=Op();O.inquire=Mp();O.utf8=Fp();O.pool=Vp();O.LongBits=$p();O.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);O.global=O.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||al;O.emptyArray=Object.freeze?Object.freeze([]):[];O.emptyObject=Object.freeze?Object.freeze({}):{};O.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};O.isString=function(e){return typeof e=="string"||e instanceof String};O.isObject=function(e){return e&&typeof e=="object"};O.isset=O.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};O.Buffer=function(){try{var t=O.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();O._Buffer_from=null;O._Buffer_allocUnsafe=null;O.newBuffer=function(e){return typeof e=="number"?O.Buffer?O._Buffer_allocUnsafe(e):new O.Array(e):O.Buffer?O._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};O.Array=typeof Uint8Array<"u"?Uint8Array:Array;O.Long=O.global.dcodeIO&&O.global.dcodeIO.Long||O.global.Long||O.inquire("long");O.key2Re=/^true|false|0|1$/;O.key32Re=/^-?(?:0|[1-9][0-9]*)$/;O.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;O.longToHash=function(e){return e?O.LongBits.from(e).toHash():O.LongBits.zeroHash};O.longFromHash=function(e,r){var n=O.LongBits.fromHash(e);return O.Long?O.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function zp(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}O.merge=zp;O.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Hp(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&&zp(this,n)}return e.prototype=Object.create(Error.prototype,{constructor:{value:e,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return t},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),e}O.newError=Hp;O.ProtocolError=Hp("ProtocolError");O.oneOfGetter=function(e){for(var r={},n=0;n<e.length;++n)r[e[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};O.oneOfSetter=function(e){return function(r){for(var n=0;n<e.length;++n)e[n]!==r&&delete this[e[n]]}};O.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};O._configure=function(){var t=O.Buffer;if(!t){O._Buffer_from=O._Buffer_allocUnsafe=null;return}O._Buffer_from=t.from!==Uint8Array.from&&t.from||function(r,n){return new t(r,n)},O._Buffer_allocUnsafe=t.allocUnsafe||function(r){return new t(r)}}});var ll=T((rD,Xp)=>{"use strict";Xp.exports=Ve;var rr=Pn(),ul,Wp=rr.LongBits,n2=rr.utf8;function $t(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function Ve(t){this.buf=t,this.pos=0,this.len=t.length}var Gp=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new Ve(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new Ve(e);throw Error("illegal buffer")},Qp=function(){return rr.Buffer?function(r){return(Ve.create=function(i){return rr.Buffer.isBuffer(i)?new ul(i):Gp(i)})(r)}:Gp};Ve.create=Qp();Ve.prototype._slice=rr.Array.prototype.subarray||rr.Array.prototype.slice;Ve.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,$t(this,10);return e}}();Ve.prototype.int32=function(){return this.uint32()|0};Ve.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function cl(){var t=new Wp(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 $t(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 $t(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")}Ve.prototype.bool=function(){return this.uint32()!==0};function ea(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}Ve.prototype.fixed32=function(){if(this.pos+4>this.len)throw $t(this,4);return ea(this.buf,this.pos+=4)};Ve.prototype.sfixed32=function(){if(this.pos+4>this.len)throw $t(this,4);return ea(this.buf,this.pos+=4)|0};function Yp(){if(this.pos+8>this.len)throw $t(this,8);return new Wp(ea(this.buf,this.pos+=4),ea(this.buf,this.pos+=4))}Ve.prototype.float=function(){if(this.pos+4>this.len)throw $t(this,4);var e=rr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};Ve.prototype.double=function(){if(this.pos+8>this.len)throw $t(this,4);var e=rr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};Ve.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw $t(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)};Ve.prototype.string=function(){var e=this.bytes();return n2.read(e,0,e.length)};Ve.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw $t(this,e);this.pos+=e}else do if(this.pos>=this.len)throw $t(this);while(this.buf[this.pos++]&128);return this};Ve.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};Ve._configure=function(t){ul=t,Ve.create=Qp(),ul._configure();var e=rr.Long?"toLong":"toNumber";rr.merge(Ve.prototype,{int64:function(){return cl.call(this)[e](!1)},uint64:function(){return cl.call(this)[e](!0)},sint64:function(){return cl.call(this).zzDecode()[e](!1)},fixed64:function(){return Yp.call(this)[e](!0)},sfixed64:function(){return Yp.call(this)[e](!1)}})}});var em=T((nD,jp)=>{"use strict";jp.exports=Nn;var Jp=ll();(Nn.prototype=Object.create(Jp.prototype)).constructor=Nn;var Zp=Pn();function Nn(t){Jp.call(this,t)}Nn._configure=function(){Zp.Buffer&&(Nn.prototype._slice=Zp.Buffer.prototype.slice)};Nn.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))};Nn._configure()});var gl=T((iD,im)=>{"use strict";im.exports=ie;var Ct=Pn(),fl,ta=Ct.LongBits,tm=Ct.base64,rm=Ct.utf8;function yo(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function dl(){}function i2(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function ie(){this.len=0,this.head=new yo(dl,0,0),this.tail=this.head,this.states=null}var nm=function(){return Ct.Buffer?function(){return(ie.create=function(){return new fl})()}:function(){return new ie}};ie.create=nm();ie.alloc=function(e){return new Ct.Array(e)};Ct.Array!==Array&&(ie.alloc=Ct.pool(ie.alloc,Ct.Array.prototype.subarray));ie.prototype._push=function(e,r,n){return this.tail=this.tail.next=new yo(e,r,n),this.len+=r,this};function pl(t,e,r){e[r]=t&255}function o2(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function ml(t,e){this.len=t,this.next=void 0,this.val=e}ml.prototype=Object.create(yo.prototype);ml.prototype.fn=o2;ie.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new ml((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};ie.prototype.int32=function(e){return e<0?this._push(yl,10,ta.fromNumber(e)):this.uint32(e)};ie.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function yl(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}ie.prototype.uint64=function(e){var r=ta.from(e);return this._push(yl,r.length(),r)};ie.prototype.int64=ie.prototype.uint64;ie.prototype.sint64=function(e){var r=ta.from(e).zzEncode();return this._push(yl,r.length(),r)};ie.prototype.bool=function(e){return this._push(pl,1,e?1:0)};function hl(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}ie.prototype.fixed32=function(e){return this._push(hl,4,e>>>0)};ie.prototype.sfixed32=ie.prototype.fixed32;ie.prototype.fixed64=function(e){var r=ta.from(e);return this._push(hl,4,r.lo)._push(hl,4,r.hi)};ie.prototype.sfixed64=ie.prototype.fixed64;ie.prototype.float=function(e){return this._push(Ct.float.writeFloatLE,4,e)};ie.prototype.double=function(e){return this._push(Ct.float.writeDoubleLE,8,e)};var s2=Ct.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]};ie.prototype.bytes=function(e){var r=e.length>>>0;if(!r)return this._push(pl,1,0);if(Ct.isString(e)){var n=ie.alloc(r=tm.length(e));tm.decode(e,n,0),e=n}return this.uint32(r)._push(s2,r,e)};ie.prototype.string=function(e){var r=rm.length(e);return r?this.uint32(r)._push(rm.write,r,e):this._push(pl,1,0)};ie.prototype.fork=function(){return this.states=new i2(this),this.head=this.tail=new yo(dl,0,0),this.len=0,this};ie.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 yo(dl,0,0),this.len=0),this};ie.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};ie.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};ie._configure=function(t){fl=t,ie.create=nm(),fl._configure()}});var am=T((oD,sm)=>{"use strict";sm.exports=nr;var om=gl();(nr.prototype=Object.create(om.prototype)).constructor=nr;var jr=Pn();function nr(){om.call(this)}nr._configure=function(){nr.alloc=jr._Buffer_allocUnsafe,nr.writeBytesBuffer=jr.Buffer&&jr.Buffer.prototype instanceof Uint8Array&&jr.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++]}};nr.prototype.bytes=function(e){jr.isString(e)&&(e=jr._Buffer_from(e,"base64"));var r=e.length>>>0;return this.uint32(r),r&&this._push(nr.writeBytesBuffer,r,e),this};function a2(t,e,r){t.length<40?jr.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}nr.prototype.string=function(e){var r=jr.Buffer.byteLength(e);return this.uint32(r),r&&this._push(a2,r,e),this};nr._configure()});var fe=T((_D,hm)=>{hm.exports={options:{usePureJavaScript:!1}}});var mm=T((SD,pm)=>{var _l={};pm.exports=_l;var dm={};_l.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=f2(t,e);else{var i=0,o=e.length,s=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%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=s;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};_l.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=dm[e];if(!r){r=dm[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,o=e.charAt(0),s=[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<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var l=0;t[l]===o&&l<t.length-1;++l)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function f2(t,e){var r=0,n=e.length,i=e.charAt(0),o=[0];for(r=0;r<t.length();++r){for(var s=0,a=t.at(r);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.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=o.length-1;r>=0;--r)c+=e[o[r]];return c}});var qe=T((AD,Em)=>{var ym=fe(),gm=mm(),E=Em.exports=ym.util=ym.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var s=a,t="forge.setImmediate",e=[];E.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 o=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};E.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};E.isArrayBufferView=function(t){return t&&E.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function go(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}E.ByteBuffer=Sl;function Sl(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(E.isArrayBuffer(t)||E.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 Sl||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}E.ByteStringBuffer=Sl;var h2=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>h2&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};E.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};E.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};E.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(E.encodeUtf8(t))};E.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};E.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};E.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))};E.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};E.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))};E.ByteStringBuffer.prototype.putInt=function(t,e){go(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};E.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};E.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};E.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};E.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};E.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};E.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};E.ByteStringBuffer.prototype.getInt=function(t){go(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};E.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};E.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};E.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};E.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};E.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};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var t=E.createBuffer(this.data);return t.read=this.read,t};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};E.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};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function d2(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=E.isArrayBuffer(t),n=E.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)}E.DataBuffer=d2;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.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};E.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};E.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};E.DataBuffer.prototype.putBytes=function(t,e){if(E.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(E.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 E.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&E.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 E.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var o;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(t,o,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(t,o,this.write),this;if(e==="utf8"&&(t=E.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(o),this;if(e==="utf16")return this.accommodate(t.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};E.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};E.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};E.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};E.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};E.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};E.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};E.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(t,e){go(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};E.DataBuffer.prototype.putSignedInt=function(t,e){return go(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};E.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};E.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};E.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};E.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};E.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};E.DataBuffer.prototype.getInt=function(t){go(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};E.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};E.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};E.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};E.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};E.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var 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};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};E.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};E.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return E.binary.raw.encode(e);if(t==="hex")return E.binary.hex.encode(e);if(t==="base64")return E.binary.base64.encode(e);if(t==="utf8")return E.text.utf8.decode(e);if(t==="utf16")return E.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};E.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=E.encodeUtf8(t)),new E.ByteBuffer(t)};E.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};E.xorBytes=function(t,e,r){for(var n="",i="",o="",s=0,a=0;r>0;--r,++s)i=t.charCodeAt(s)^e.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;return n+=o,n};E.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};E.bytesToHex=function(t){return E.createBuffer(t).toHex()};E.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var tn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",rn=[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],wm="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(t,e){for(var r="",n="",i,o,s,a=0;a<t.length;)i=t.charCodeAt(a++),o=t.charCodeAt(a++),s=t.charCodeAt(a++),r+=tn.charAt(i>>2),r+=tn.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=tn.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":tn.charAt(s&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
26
+ `,r=r.substr(e));return n+=r,n};E.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,o,s=0;s<t.length;)r=rn[t.charCodeAt(s++)-43],n=rn[t.charCodeAt(s++)-43],i=rn[t.charCodeAt(s++)-43],o=rn[t.charCodeAt(s++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(e+=String.fromCharCode((i&3)<<6|o)));return e};E.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};E.decodeUtf8=function(t){return decodeURIComponent(escape(t))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:gm.encode,decode:gm.decode}};E.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};E.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,o=0;o<t.length;++o)n[i++]=t.charCodeAt(o);return e?i-r:n};E.binary.hex.encode=E.bytesToHex;E.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,o=r;for(t.length&1&&(i=1,n[o++]=parseInt(t[0],16));i<t.length;i+=2)n[o++]=parseInt(t.substr(i,2),16);return e?o-r:n};E.binary.base64.encode=function(t,e){for(var r="",n="",i,o,s,a=0;a<t.byteLength;)i=t[a++],o=t[a++],s=t[a++],r+=tn.charAt(i>>2),r+=tn.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=tn.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":tn.charAt(s&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
27
+ `,r=r.substr(e));return n+=r,n};E.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,o,s,a,c=0,u=r;c<t.length;)i=rn[t.charCodeAt(c++)-43],o=rn[t.charCodeAt(c++)-43],s=rn[t.charCodeAt(c++)-43],a=rn[t.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return e?u-r:n.subarray(0,u)};E.binary.base58.encode=function(t,e){return E.binary.baseN.encode(t,wm,e)};E.binary.base58.decode=function(t,e){return E.binary.baseN.decode(t,wm,e)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(t,e,r){t=E.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,o=0;o<t.length;++o)n[i++]=t.charCodeAt(o);return e?i-r:n};E.text.utf8.decode=function(t){return E.decodeUtf8(String.fromCharCode.apply(null,t))};E.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 o=r,s=r,a=0;a<t.length;++a)i[s++]=t.charCodeAt(a),o+=2;return e?o-r:n};E.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};E.deflate=function(t,e,r){if(e=E.decode64(t.deflate(E.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};E.inflate=function(t,e,r){var n=t.inflate(E.encode64(e)).rval;return n===null?null:E.decode64(n)};var Al=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=E.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}},Rl=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(E.decode64(r))),r},p2=function(t,e,r,n){var i=Rl(t,e);i===null&&(i={}),i[r]=n,Al(t,e,i)},m2=function(t,e,r){var n=Rl(t,e);return n!==null&&(n=r in n?n[r]:null),n},y2=function(t,e,r){var n=Rl(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Al(t,e,n)}},g2=function(t,e){Al(t,e,null)},ia=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=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),o=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};E.setItem=function(t,e,r,n,i){ia(p2,arguments,i)};E.getItem=function(t,e,r,n){return ia(m2,arguments,n)};E.removeItem=function(t,e,r,n){ia(y2,arguments,n)};E.clearItems=function(t,e,r){ia(g2,arguments,r)};E.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};E.format=function(t){for(var e=/%./g,r,n,i=0,o=[],s=0;r=e.exec(t);){n=t.substring(s,e.lastIndex-2),n.length>0&&o.push(n),s=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(t.substring(s)),o.join("")};E.formatNumber=function(t,e,r,n){var i=t,o=isNaN(e=Math.abs(e))?2:e,s=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),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)+(o?s+Math.abs(i-u).toFixed(o).slice(2):"")};E.formatSize=function(t){return t>=1073741824?t=E.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=E.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=E.formatNumber(t/1024,0)+" KiB":t=E.formatNumber(t,0)+" bytes",t};E.bytesFromIP=function(t){return t.indexOf(".")!==-1?E.bytesFromIPv4(t):t.indexOf(":")!==-1?E.bytesFromIPv6(t):null};E.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=E.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};E.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(s){return s.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=E.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=E.hexToBytes(t[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};E.bytesToIP=function(t){return t.length===4?E.bytesToIPv4(t):t.length===16?E.bytesToIPv6(t):null};E.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(".")};E.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var o=E.bytesToHex(t[i]+t[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=r[r.length-1],a=e.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(o)}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(":")};E.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in E&&!t.update)return e(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,e(null,E.cores);if(typeof Worker>"u")return E.cores=1,e(null,E.cores);if(typeof Blob>"u")return E.cores=2,e(null,E.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){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(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(l,f){return l+f},0)/s.length);return E.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,E.cores)}i(c,function(l,f){s.push(o(c,f)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],l=0;l<s;++l){var f=new Worker(r);f.addEventListener("message",function(h){if(u.push(h.data),u.length===s){for(var d=0;d<s;++d)c[d].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<s;++l)c[l].postMessage(l)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var l=a[u],f=c[u]=[],h=0;h<s;++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,m){return Math.max(p,m.length)},0)}}});var oa=T((RD,xm)=>{var wo=fe();wo.pki=wo.pki||{};var Il=xm.exports=wo.pki.oids=wo.oids=wo.oids||{};function I(t,e){Il[t]=e,Il[e]=t}function le(t,e){Il[t]=e}I("1.2.840.113549.1.1.1","rsaEncryption");I("1.2.840.113549.1.1.4","md5WithRSAEncryption");I("1.2.840.113549.1.1.5","sha1WithRSAEncryption");I("1.2.840.113549.1.1.7","RSAES-OAEP");I("1.2.840.113549.1.1.8","mgf1");I("1.2.840.113549.1.1.9","pSpecified");I("1.2.840.113549.1.1.10","RSASSA-PSS");I("1.2.840.113549.1.1.11","sha256WithRSAEncryption");I("1.2.840.113549.1.1.12","sha384WithRSAEncryption");I("1.2.840.113549.1.1.13","sha512WithRSAEncryption");I("1.3.101.112","EdDSA25519");I("1.2.840.10040.4.3","dsa-with-sha1");I("1.3.14.3.2.7","desCBC");I("1.3.14.3.2.26","sha1");I("1.3.14.3.2.29","sha1WithRSASignature");I("2.16.840.1.101.3.4.2.1","sha256");I("2.16.840.1.101.3.4.2.2","sha384");I("2.16.840.1.101.3.4.2.3","sha512");I("2.16.840.1.101.3.4.2.4","sha224");I("2.16.840.1.101.3.4.2.5","sha512-224");I("2.16.840.1.101.3.4.2.6","sha512-256");I("1.2.840.113549.2.2","md2");I("1.2.840.113549.2.5","md5");I("1.2.840.113549.1.7.1","data");I("1.2.840.113549.1.7.2","signedData");I("1.2.840.113549.1.7.3","envelopedData");I("1.2.840.113549.1.7.4","signedAndEnvelopedData");I("1.2.840.113549.1.7.5","digestedData");I("1.2.840.113549.1.7.6","encryptedData");I("1.2.840.113549.1.9.1","emailAddress");I("1.2.840.113549.1.9.2","unstructuredName");I("1.2.840.113549.1.9.3","contentType");I("1.2.840.113549.1.9.4","messageDigest");I("1.2.840.113549.1.9.5","signingTime");I("1.2.840.113549.1.9.6","counterSignature");I("1.2.840.113549.1.9.7","challengePassword");I("1.2.840.113549.1.9.8","unstructuredAddress");I("1.2.840.113549.1.9.14","extensionRequest");I("1.2.840.113549.1.9.20","friendlyName");I("1.2.840.113549.1.9.21","localKeyId");I("1.2.840.113549.1.9.22.1","x509Certificate");I("1.2.840.113549.1.12.10.1.1","keyBag");I("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");I("1.2.840.113549.1.12.10.1.3","certBag");I("1.2.840.113549.1.12.10.1.4","crlBag");I("1.2.840.113549.1.12.10.1.5","secretBag");I("1.2.840.113549.1.12.10.1.6","safeContentsBag");I("1.2.840.113549.1.5.13","pkcs5PBES2");I("1.2.840.113549.1.5.12","pkcs5PBKDF2");I("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");I("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");I("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");I("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");I("1.2.840.113549.2.7","hmacWithSHA1");I("1.2.840.113549.2.8","hmacWithSHA224");I("1.2.840.113549.2.9","hmacWithSHA256");I("1.2.840.113549.2.10","hmacWithSHA384");I("1.2.840.113549.2.11","hmacWithSHA512");I("1.2.840.113549.3.7","des-EDE3-CBC");I("2.16.840.1.101.3.4.1.2","aes128-CBC");I("2.16.840.1.101.3.4.1.22","aes192-CBC");I("2.16.840.1.101.3.4.1.42","aes256-CBC");I("2.5.4.3","commonName");I("2.5.4.4","surname");I("2.5.4.5","serialNumber");I("2.5.4.6","countryName");I("2.5.4.7","localityName");I("2.5.4.8","stateOrProvinceName");I("2.5.4.9","streetAddress");I("2.5.4.10","organizationName");I("2.5.4.11","organizationalUnitName");I("2.5.4.12","title");I("2.5.4.13","description");I("2.5.4.15","businessCategory");I("2.5.4.17","postalCode");I("2.5.4.42","givenName");I("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");I("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");I("2.16.840.1.113730.1.1","nsCertType");I("2.16.840.1.113730.1.13","nsComment");le("2.5.29.1","authorityKeyIdentifier");le("2.5.29.2","keyAttributes");le("2.5.29.3","certificatePolicies");le("2.5.29.4","keyUsageRestriction");le("2.5.29.5","policyMapping");le("2.5.29.6","subtreesConstraint");le("2.5.29.7","subjectAltName");le("2.5.29.8","issuerAltName");le("2.5.29.9","subjectDirectoryAttributes");le("2.5.29.10","basicConstraints");le("2.5.29.11","nameConstraints");le("2.5.29.12","policyConstraints");le("2.5.29.13","basicConstraints");I("2.5.29.14","subjectKeyIdentifier");I("2.5.29.15","keyUsage");le("2.5.29.16","privateKeyUsagePeriod");I("2.5.29.17","subjectAltName");I("2.5.29.18","issuerAltName");I("2.5.29.19","basicConstraints");le("2.5.29.20","cRLNumber");le("2.5.29.21","cRLReason");le("2.5.29.22","expirationDate");le("2.5.29.23","instructionCode");le("2.5.29.24","invalidityDate");le("2.5.29.25","cRLDistributionPoints");le("2.5.29.26","issuingDistributionPoint");le("2.5.29.27","deltaCRLIndicator");le("2.5.29.28","issuingDistributionPoint");le("2.5.29.29","certificateIssuer");le("2.5.29.30","nameConstraints");I("2.5.29.31","cRLDistributionPoints");I("2.5.29.32","certificatePolicies");le("2.5.29.33","policyMappings");le("2.5.29.34","policyConstraints");I("2.5.29.35","authorityKeyIdentifier");le("2.5.29.36","policyConstraints");I("2.5.29.37","extKeyUsage");le("2.5.29.46","freshestCRL");le("2.5.29.54","inhibitAnyPolicy");I("1.3.6.1.4.1.11129.2.4.2","timestampList");I("1.3.6.1.5.5.7.1.1","authorityInfoAccess");I("1.3.6.1.5.5.7.3.1","serverAuth");I("1.3.6.1.5.5.7.3.2","clientAuth");I("1.3.6.1.5.5.7.3.3","codeSigning");I("1.3.6.1.5.5.7.3.4","emailProtection");I("1.3.6.1.5.5.7.3.8","timeStamping")});var xo=T((ID,bm)=>{var Se=fe();qe();oa();var B=bm.exports=Se.asn1=Se.asn1||{};B.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};B.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};B.create=function(t,e,r,n,i){if(Se.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:t,type:e,constructed:r,composed:r||Se.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=B.copy(a)),a};B.copy=function(t,e){var r;if(Se.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(B.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:B.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};B.equals=function(t,e,r){if(Se.util.isArray(t)){if(!Se.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!B.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&&B.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};B.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 Eo(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 w2=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;Eo(t,e,o),n=t.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};B.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=Se.util.createBuffer(t));var r=t.length(),n=sa(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 sa(t,e,r,n){var i;Eo(t,e,2);var o=t.getByte();e--;var s=o&192,a=o&31;i=t.length();var c=w2(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=(o&32)===32;if(h)if(l=[],c===void 0)for(;;){if(Eo(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(sa(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(sa(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&s===B.Class.UNIVERSAL&&a===B.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&s===B.Class.UNIVERSAL&&a===B.Type.BITSTRING&&c>1){var d=t.read,p=e,m=0;if(a===B.Type.BITSTRING&&(Eo(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var y={strict:!0,decodeBitStrings:!0},g=sa(t,e,r+1,y),x=i-t.length();e-=x,a==B.Type.BITSTRING&&x++;var _=g.tagClass;x===c&&(_===B.Class.UNIVERSAL||_===B.Class.CONTEXT_SPECIFIC)&&(l=[g])}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===B.Type.BMPSTRING)for(l="";c>0;c-=2)Eo(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var k=f===void 0?null:{bitStringContents:f};return B.create(s,a,h,l,k)}B.toDer=function(t){var e=Se.util.createBuffer(),r=t.tagClass|t.type,n=Se.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=B.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var o=0;o<t.value.length;++o)t.value[o]!==void 0&&n.putBuffer(B.toDer(t.value[o]))}else if(t.type===B.Type.BMPSTRING)for(var o=0;o<t.value.length;++o)n.putInt16(t.value.charCodeAt(o));else t.type===B.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 s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);e.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)e.putByte(a.charCodeAt(o))}return e.putBuffer(n),e};B.oidToDer=function(t){var e=t.split("."),r=Se.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,o,s,a=2;a<e.length;++a){n=!0,i=[],o=parseInt(e[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};B.derToOid=function(t){var e;typeof t=="string"&&(t=Se.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};B.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),o=parseInt(t.substr(6,2),10),s=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(o,s,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};B.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),o=parseInt(t.substr(8,2),10),s=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(o,s,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(o,s,a,c)),e};B.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};B.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};B.integerToDer=function(t){var e=Se.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};B.derToInteger=function(t){typeof t=="string"&&(t=Se.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)};B.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&&Se.util.isArray(e.value))for(var o=0,s=0;i&&s<e.value.length;++s)i=e.value[s].optional||!1,t.value[o]&&(i=B.validate(t.value[o],e.value[s],r,n),i?++o:e.value[s].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 vm=/[^\\u0000-\\u00ff]/;B.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
28
+ `);for(var i="",o=0;o<e*r;++o)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case B.Class.UNIVERSAL:n+="Universal:";break;case B.Class.APPLICATION:n+="Application:";break;case B.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case B.Class.PRIVATE:n+="Private:";break}if(t.tagClass===B.Class.UNIVERSAL)switch(n+=t.type,t.type){case B.Type.NONE:n+=" (None)";break;case B.Type.BOOLEAN:n+=" (Boolean)";break;case B.Type.INTEGER:n+=" (Integer)";break;case B.Type.BITSTRING:n+=" (Bit string)";break;case B.Type.OCTETSTRING:n+=" (Octet string)";break;case B.Type.NULL:n+=" (Null)";break;case B.Type.OID:n+=" (Object Identifier)";break;case B.Type.ODESC:n+=" (Object Descriptor)";break;case B.Type.EXTERNAL:n+=" (External or Instance of)";break;case B.Type.REAL:n+=" (Real)";break;case B.Type.ENUMERATED:n+=" (Enumerated)";break;case B.Type.EMBEDDED:n+=" (Embedded PDV)";break;case B.Type.UTF8:n+=" (UTF8)";break;case B.Type.ROID:n+=" (Relative Object Identifier)";break;case B.Type.SEQUENCE:n+=" (Sequence)";break;case B.Type.SET:n+=" (Set)";break;case B.Type.PRINTABLESTRING:n+=" (Printable String)";break;case B.Type.IA5String:n+=" (IA5String (ASCII))";break;case B.Type.UTCTIME:n+=" (UTC time)";break;case B.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case B.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
29
+ `,n+=i+"Constructed: "+t.constructed+`
30
+ `,t.composed){for(var s=0,a="",o=0;o<t.value.length;++o)t.value[o]!==void 0&&(s+=1,a+=B.prettyPrint(t.value[o],e+1,r),o+1<t.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",t.type===B.Type.OID){var c=B.derToOid(t.value);n+=c,Se.pki&&Se.pki.oids&&c in Se.pki.oids&&(n+=" ("+Se.pki.oids[c]+") ")}if(t.type===B.Type.INTEGER)try{n+=B.derToInteger(t.value)}catch{n+="0x"+Se.util.bytesToHex(t.value)}else if(t.type===B.Type.BITSTRING){if(t.value.length>1?n+="0x"+Se.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===B.Type.OCTETSTRING)vm.test(t.value)||(n+="("+t.value+") "),n+="0x"+Se.util.bytesToHex(t.value);else if(t.type===B.Type.UTF8)try{n+=Se.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+Se.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===B.Type.PRINTABLESTRING||t.type===B.Type.IA5String?n+=t.value:vm.test(t.value)?n+="0x"+Se.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var Cl=T((TD,_m)=>{var Je=fe();qe();_m.exports=Je.cipher=Je.cipher||{};Je.cipher.algorithms=Je.cipher.algorithms||{};Je.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Je.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Je.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Je.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Je.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Je.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Je.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Je.cipher.algorithms[t]=e};Je.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Je.cipher.algorithms?Je.cipher.algorithms[t]:null};var Tl=Je.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)};Tl.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=Je.util.createBuffer(),this.output=t.output||Je.util.createBuffer(),this.mode.start(e)};Tl.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()};Tl.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 Bl=T((CD,Sm)=>{var je=fe();qe();je.cipher=je.cipher||{};var Q=Sm.exports=je.cipher.modes=je.cipher.modes||{};Q.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)};Q.ecb.prototype.start=function(t){};Q.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])};Q.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])};Q.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};Q.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)};Q.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)};Q.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=aa(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Q.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};Q.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)};Q.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};Q.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)};Q.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=je.util.createBuffer(),this._partialBytes=0};Q.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=aa(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.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 o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),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(o>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),o>0&&!r)return e.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.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 o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),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(o>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),o>0&&!r)return e.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.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=je.util.createBuffer(),this._partialBytes=0};Q.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=aa(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.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 o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(o>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),o>0&&!r)return e.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.ofb.prototype.decrypt=Q.ofb.prototype.encrypt;Q.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=je.util.createBuffer(),this._partialBytes=0};Q.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=aa(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.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 o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(o>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return e.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}ca(this._inBlock)};Q.ctr.prototype.decrypt=Q.ctr.prototype.encrypt;Q.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=je.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Q.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=je.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=je.util.createBuffer(t.additionalData):r=je.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=je.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(Dl(n*8)))}this._inBlock=this._j0.slice(0),ca(this._inBlock),this._partialBytes=0,r=je.util.createBuffer(r),this._aDataLength=Dl(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()])};Q.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 o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}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),o>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),ca(this._inBlock)};Q.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),ca(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};Q.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=je.util.createBuffer();var n=this._aDataLength.concat(Dl(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};Q.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var o=t[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};Q.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)};Q.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,o=this._m[r][i];e[0]^=o[0],e[1]^=o[1],e[2]^=o[2],e[3]^=o[3]}return e};Q.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)};Q.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,u=(n-1-s%n)*e;a[c]=1<<e-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,t),e)}return o};Q.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function aa(t,e){if(typeof t=="string"&&(t=je.util.createBuffer(t)),je.util.isArray(t)&&t.length>4){var r=t;t=je.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(!je.util.isArray(t)){for(var i=[],o=e/4,n=0;n<o;++n)i.push(t.getInt32());t=i}return t}function ca(t){t[t.length-1]=t[t.length-1]+1&4294967295}function Dl(t){return[t/4294967296|0,t&4294967295]}});var la=T((DD,Tm)=>{var ve=fe();Cl();Bl();qe();Tm.exports=ve.aes=ve.aes||{};ve.aes.startEncrypting=function(t,e,r,n){var i=ua({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};ve.aes.createEncryptionCipher=function(t,e){return ua({key:t,output:null,decrypt:!1,mode:e})};ve.aes.startDecrypting=function(t,e,r,n){var i=ua({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};ve.aes.createDecryptionCipher=function(t,e){return ua({key:t,output:null,decrypt:!0,mode:e})};ve.aes.Algorithm=function(t,e){Nl||Rm();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Pl(r._w,n,i,!1)},decrypt:function(n,i){return Pl(r._w,n,i,!0)}}}),r._init=!1};ve.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=ve.util.createBuffer(e);else if(ve.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=ve.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!ve.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(!ve.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=Im(e,t.decrypt&&!s),this._init=!0}};ve.aes._expandKey=function(t,e){return Nl||Rm(),Im(t,e)};ve.aes._updateBlock=Pl;Ti("AES-ECB",ve.cipher.modes.ecb);Ti("AES-CBC",ve.cipher.modes.cbc);Ti("AES-CFB",ve.cipher.modes.cfb);Ti("AES-OFB",ve.cipher.modes.ofb);Ti("AES-CTR",ve.cipher.modes.ctr);Ti("AES-GCM",ve.cipher.modes.gcm);function Ti(t,e){var r=function(){return new ve.aes.Algorithm(t,e)};ve.cipher.registerAlgorithm(t,r)}var Nl=!1,Ii=4,lt,Ll,Am,kn,zt;function Rm(){Nl=!0,Am=[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;lt=new Array(256),Ll=new Array(256),kn=new Array(4),zt=new Array(4);for(var e=0;e<4;++e)kn[e]=new Array(256),zt[e]=new Array(256);for(var r=0,n=0,i,o,s,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,lt[r]=a,Ll[a]=r,c=t[a],i=t[r],o=t[i],s=t[o],u=c<<24^a<<16^a<<8^(a^c),l=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var f=0;f<4;++f)kn[f][r]=u,zt[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^s]]],n^=t[t[n]])}}function Im(t,e){for(var r=t.slice(0),n,i=1,o=r.length,s=o+6+1,a=Ii*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=lt[n>>>16&255]<<24^lt[n>>>8&255]<<16^lt[n&255]<<8^lt[n>>>24]^Am[i]<<24,i++):o>6&&c%o===4&&(n=lt[n>>>24]<<24^lt[n>>>16&255]<<16^lt[n>>>8&255]<<8^lt[n&255]),r[c]=r[c-o]^n;if(e){var u,l=zt[0],f=zt[1],h=zt[2],d=zt[3],p=r.slice(0);a=r.length;for(var c=0,m=a-Ii;c<a;c+=Ii,m-=Ii)if(c===0||c===a-Ii)p[c]=r[m],p[c+1]=r[m+3],p[c+2]=r[m+2],p[c+3]=r[m+1];else for(var y=0;y<Ii;++y)u=r[m+y],p[c+(3&-y)]=l[lt[u>>>24]]^f[lt[u>>>16&255]]^h[lt[u>>>8&255]]^d[lt[u&255]];r=p}return r}function Pl(t,e,r,n){var i=t.length/4-1,o,s,a,c,u;n?(o=zt[0],s=zt[1],a=zt[2],c=zt[3],u=Ll):(o=kn[0],s=kn[1],a=kn[2],c=kn[3],u=lt);var l,f,h,d,p,m,y;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 g=3,x=1;x<i;++x)p=o[l>>>24]^s[f>>>16&255]^a[h>>>8&255]^c[d&255]^t[++g],m=o[f>>>24]^s[h>>>16&255]^a[d>>>8&255]^c[l&255]^t[++g],y=o[h>>>24]^s[d>>>16&255]^a[l>>>8&255]^c[f&255]^t[++g],d=o[d>>>24]^s[l>>>16&255]^a[f>>>8&255]^c[h&255]^t[++g],l=p,f=m,h=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[d&255]^t[++g],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[d>>>8&255]<<8^u[l&255]^t[++g],r[2]=u[h>>>24]<<24^u[d>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++g],r[n?1:3]=u[d>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^t[++g]}function ua(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=ve.cipher.createDecipher(r,t.key):n=ve.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof ve.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Bm=T((BD,Dm)=>{var De=fe();Cl();Bl();qe();Dm.exports=De.des=De.des||{};De.des.startEncrypting=function(t,e,r,n){var i=fa({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};De.des.createEncryptionCipher=function(t,e){return fa({key:t,output:null,decrypt:!1,mode:e})};De.des.startDecrypting=function(t,e,r,n){var i=fa({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};De.des.createDecryptionCipher=function(t,e){return fa({key:t,output:null,decrypt:!0,mode:e})};De.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return Cm(r._keys,n,i,!1)},decrypt:function(n,i){return Cm(r._keys,n,i,!0)}}}),r._init=!1};De.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=De.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=I2(e),this._init=!0}};sr("DES-ECB",De.cipher.modes.ecb);sr("DES-CBC",De.cipher.modes.cbc);sr("DES-CFB",De.cipher.modes.cfb);sr("DES-OFB",De.cipher.modes.ofb);sr("DES-CTR",De.cipher.modes.ctr);sr("3DES-ECB",De.cipher.modes.ecb);sr("3DES-CBC",De.cipher.modes.cbc);sr("3DES-CFB",De.cipher.modes.cfb);sr("3DES-OFB",De.cipher.modes.ofb);sr("3DES-CTR",De.cipher.modes.ctr);function sr(t,e){var r=function(){return new De.des.Algorithm(t,e)};De.cipher.registerAlgorithm(t,r)}var E2=[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],x2=[-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],v2=[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],b2=[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],_2=[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],S2=[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],A2=[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],R2=[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 I2(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],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[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],m=t.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,_,k=0;k<m;k++){var C=t.getInt32(),D=t.getInt32();_=(C>>>4^D)&252645135,D^=_,C^=_<<4,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>2^D)&858993459,D^=_,C^=_<<2,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=(D>>>8^C)&16711935,C^=_,D^=_<<8,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=C<<8|D>>>20&240,C=D<<24|D<<8&16711680|D>>>8&65280|D>>>24&240,D=_;for(var X=0;X<g.length;++X){g[X]?(C=C<<2|C>>>26,D=D<<2|D>>>26):(C=C<<1|C>>>27,D=D<<1|D>>>27),C&=-15,D&=-15;var J=e[C>>>28]|r[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|o[C>>>12&15]|s[C>>>8&15]|a[C>>>4&15],We=c[D>>>28]|u[D>>>24&15]|l[D>>>20&15]|f[D>>>16&15]|h[D>>>12&15]|d[D>>>8&15]|p[D>>>4&15];_=(We>>>16^J)&65535,y[x++]=J^_,y[x++]=We^_<<16}}return y}function Cm(t,e,r,n){var i=t.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=e[0],c=e[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=o[u+1],f=o[u+2],h=o[u];h!=l;h+=f){var d=c^t[h],p=(c>>>4|c<<28)^t[h+1];s=a,a=c,c=s^(x2[d>>>24&63]|b2[d>>>16&63]|S2[d>>>8&63]|R2[d&63]|E2[p>>>24&63]|v2[p>>>16&63]|_2[p>>>8&63]|A2[p&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function fa(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=De.cipher.createDecipher(r,t.key):n=De.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof De.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var On=T((LD,Lm)=>{var ha=fe();Lm.exports=ha.md=ha.md||{};ha.md.algorithms=ha.md.algorithms||{}});var Nm=T((PD,Pm)=>{var Cr=fe();On();qe();var T2=Pm.exports=Cr.hmac=Cr.hmac||{};T2.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Cr.md.algorithms)e=Cr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else e=o;if(s===null)s=t;else{if(typeof s=="string")s=Cr.util.createBuffer(s);else if(Cr.util.isArray(s)){var a=s;s=Cr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>e.blockLength&&(e.start(),e.update(s.bytes()),s=e.digest()),r=Cr.util.createBuffer(),n=Cr.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.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=s,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(o){e.update(o)},i.getMac=function(){var o=e.digest().bytes();return e.start(),e.update(n),e.update(o),e.digest()},i.digest=i.getMac,i}});var kl=T((ND,km)=>{var ft=fe();Nm();On();qe();var C2=ft.pkcs5=ft.pkcs5||{},Dr;ft.util.isNodejs&&!ft.options.usePureJavaScript&&(Dr=Tn());km.exports=ft.pbkdf2=C2.pbkdf2=function(t,e,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),ft.util.isNodejs&&!ft.options.usePureJavaScript&&Dr.pbkdf2&&(i===null||typeof i!="object")&&(Dr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),o?Dr.pbkdf2Sync.length===4?Dr.pbkdf2(t,e,r,n,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Dr.pbkdf2(t,e,r,n,i,function(_,k){if(_)return o(_);o(null,k.toString("binary"))}):Dr.pbkdf2Sync.length===4?Dr.pbkdf2Sync(t,e,r,n).toString("binary"):Dr.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in ft.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=ft.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,l=ft.hmac.create();l.start(i,t);var f="",h,d,p;if(!o){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(ft.util.int32ToBytes(m)),h=p=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(p),d=l.digest().getBytes(),h=ft.util.xorBytes(h,d,s),p=d;f+=m<c?h:h.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return o(null,f);l.start(null,null),l.update(e),l.update(ft.util.int32ToBytes(m)),h=p=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(p),d=l.digest().getBytes(),h=ft.util.xorBytes(h,d,s),p=d,++y,ft.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,g()}g()}});var Um=T((kD,Mm)=>{var pa=fe();qe();var Om=Mm.exports=pa.pem=pa.pem||{};Om.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
31
+ `,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=da(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=da(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=da(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=da(t.headers[i]);return t.procType&&(r+=`\r
32
+ `),r+=pa.util.encode64(t.body,e.maxline||64)+`\r
33
+ `,r+="-----END "+t.type+`-----\r
34
+ `,r};Om.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/,o;o=r.exec(t),!!o;){var s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:pa.util.decode64(o[3])};if(e.push(a),!!o[2]){for(var c=o[2].split(i),u=0;o&&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(o=l.match(n),o){for(var d={name:o[1],values:[]},p=o[2].split(","),m=0;m<p.length;++m)d.values.push(D2(p[m]));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 da(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
35
+ `;for(var o=0,s=-1,i=0;i<e.length;++i,++o)if(o>65&&s!==-1){var a=e[s];a===","?(++s,e=e.substr(0,s)+`\r
36
+ `+e.substr(s)):e=e.substr(0,s)+`\r
37
+ `+a+e.substr(s+1),o=i-s-1,s=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(s=i);return e}function D2(t){return t.replace(/^\s+/,"")}});var zm=T((OD,$m)=>{var ar=fe();On();qe();var Km=$m.exports=ar.sha256=ar.sha256||{};ar.md.sha256=ar.md.algorithms.sha256=Km;Km.create=function(){Vm||B2();var t=null,e=ar.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,o=0;o<i;++o)n.fullMessageLength.push(0);return e=ar.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,o){o==="utf8"&&(i=ar.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return e.putBytes(i),Fm(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=ar.util.createBuffer();i.putBytes(e.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Ol.substr(0,n.blockLength-s));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};Fm(f,r,i);var h=ar.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var Ol=null,Vm=!1,qm=null;function B2(){Ol=String.fromCharCode(128),Ol+=ar.util.fillString(String.fromCharCode(0),64),qm=[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],Vm=!0}function Fm(t,e,r){for(var n,i,o,s,a,c,u,l,f,h,d,p,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,h=t.h2,d=t.h3,p=t.h4,m=t.h5,y=t.h6,g=t.h7,u=0;u<64;++u)s=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),o=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=g+s+a+qm[u]+e[u],i=o+c,g=y,y=m,m=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+m|0,t.h6=t.h6+y|0,t.h7=t.h7+g|0,x-=64}}});var Gm=T((MD,Hm)=>{var cr=fe();qe();var ma=null;cr.util.isNodejs&&!cr.options.usePureJavaScript&&!process.versions["node-webkit"]&&(ma=Tn());var L2=Hm.exports=cr.prng=cr.prng||{};L2.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,m=cr.util.createBuffer();e.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return cr.util.nextTick(function(){o(y)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=d(f(e.key,h(e.seed))),e.seed=p(f(e.key,e.seed)),cr.util.setImmediate(y)}},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=cr.util.createBuffer();p.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&s();var m=l(e.key,e.seed);e.generated+=m.length,p.putBytes(m),e.key=h(l(e.key,f(e.seed))),e.seed=d(l(e.key,e.seed))}return p.getBytes(u)};function o(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 s(){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=cr.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(C){return h.getRandomValues(C)});var d=cr.util.createBuffer();if(l)for(;d.length()<u;){var p=Math.max(1,Math.min(u-d.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{l(m);for(var y=0;y<m.length;++y)d.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(d.length()<u)for(var g,x,_,k=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(k&65535),g=16807*(k>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),k=x&4294967295;for(var y=0;y<3;++y)_=k>>>(y<<3),_^=Math.floor(Math.random()*256),d.putByte(_&255)}return d.getBytes(u)}return ma?(e.seedFile=function(u,l){ma.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},e.seedFileSync=function(u){return ma.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 m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",d),h(m.forge.prng.err,m.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 vo=T((UD,Ml)=>{var et=fe();la();zm();Gm();qe();(function(){if(et.random&&et.random.getBytes){Ml.exports=et.random;return}(function(t){var e={},r=new Array(4),n=et.util.createBuffer();e.formatKey=function(f){var h=et.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),et.aes._expandKey(f,!1)},e.formatSeed=function(f){var h=et.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 et.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=et.md.sha256;function i(){var f=et.prng.create(e);return f.getBytes=function(h,d){return f.generate(h,d)},f.getBytesSync=function(h){return f.generate(h)},f}var o=i(),s=null,a=et.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(f){return c.getRandomValues(f)}),et.options.usePureJavaScript||!et.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}o.collect(u),u=null}t&&(t().mousemove(function(f){o.collectInt(f.clientX,16),o.collectInt(f.clientY,16)}),t().keypress(function(f){o.collectInt(f.charCode,8)}))}if(!et.random)et.random=o;else for(var l in o)et.random[l]=o[l];et.random.createInstance=i,Ml.exports=et.random})(typeof jQuery<"u"?jQuery:null)})()});var Xm=T((FD,Qm)=>{var pt=fe();qe();var Ul=[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],Ym=[1,2,3,5],P2=function(t,e){return t<<e&65535|(t&65535)>>16-e},N2=function(t,e){return(t&65535)>>e|t<<16-e&65535};Qm.exports=pt.rc2=pt.rc2||{};pt.rc2.expandKey=function(t,e){typeof t=="string"&&(t=pt.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Ul[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,Ul[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,Ul[r.at(a+1)^r.at(a+o)]);return r};var Wm=function(t,e,r){var n=!1,i=null,o=null,s=null,a,c,u,l,f=[];for(t=pt.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]=P2(p[u],Ym[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]=N2(p[u],Ym[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 m=[];for(u=0;u<4;u++){var y=i.getInt16Le();s!==null&&(r?y^=s.getInt16Le():s.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<p.length;g++)for(var x=0;x<p[g][0];x++)p[g][1](m);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(m[u]):m[u]^=s.getInt16Le()),o.putInt16Le(m[u])},d=null;return d={start:function(p,m){p&&typeof p=="string"&&(p=pt.util.createBuffer(p)),n=!1,i=pt.util.createBuffer(),o=m||new pt.util.createBuffer,s=p,d.output=o},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 m=!0;if(r)if(p)m=p(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,d.update()),!r&&(m=i.length()===0,m))if(p)m=p(8,o,!r);else{var g=o.length(),x=o.at(g-1);x>g?m=!1:o.truncate(x)}return m}},d};pt.rc2.startEncrypting=function(t,e,r){var n=pt.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};pt.rc2.createEncryptionCipher=function(t,e){return Wm(t,e,!0)};pt.rc2.startDecrypting=function(t,e,r){var n=pt.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};pt.rc2.createDecryptionCipher=function(t,e){return Wm(t,e,!1)}});var wa=T((KD,iy)=>{var Fl=fe();iy.exports=Fl.jsbn=Fl.jsbn||{};var Br,k2=0xdeadbeefcafe,Zm=(k2&16777215)==15715070;function A(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))}Fl.jsbn.BigInteger=A;function oe(){return new A(null)}function O2(t,e,r,n,i,o){for(;--o>=0;){var s=e*this.data[t++]+r.data[n]+i;i=Math.floor(s/67108864),r.data[n++]=s&67108863}return i}function M2(t,e,r,n,i,o){for(var s=e&32767,a=e>>15;--o>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*s;c=s*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 Jm(t,e,r,n,i,o){for(var s=e&16383,a=e>>14;--o>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*s;c=s*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"?(A.prototype.am=Jm,Br=28):Zm&&navigator.appName=="Microsoft Internet Explorer"?(A.prototype.am=M2,Br=30):Zm&&navigator.appName!="Netscape"?(A.prototype.am=O2,Br=26):(A.prototype.am=Jm,Br=28);A.prototype.DB=Br;A.prototype.DM=(1<<Br)-1;A.prototype.DV=1<<Br;var Kl=52;A.prototype.FV=Math.pow(2,Kl);A.prototype.F1=Kl-Br;A.prototype.F2=2*Br-Kl;var U2="0123456789abcdefghijklmnopqrstuvwxyz",ya=new Array,Ci,Dt;Ci="0".charCodeAt(0);for(Dt=0;Dt<=9;++Dt)ya[Ci++]=Dt;Ci="a".charCodeAt(0);for(Dt=10;Dt<36;++Dt)ya[Ci++]=Dt;Ci="A".charCodeAt(0);for(Dt=10;Dt<36;++Dt)ya[Ci++]=Dt;function jm(t){return U2.charAt(t)}function ey(t,e){var r=ya[t.charCodeAt(e)];return r??-1}function F2(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 K2(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 nn(t){var e=oe();return e.fromInt(t),e}function V2(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,o=0;--n>=0;){var s=r==8?t[n]&255:ey(t,n);if(s<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&t[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&A.ZERO.subTo(this,this)}function q2(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function $2(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,o="",s=this.t,a=this.DB-s*this.DB%e;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=jm(n));s>=0;)a<e?(n=(this.data[s]&(1<<a)-1)<<e-a,n|=this.data[--s]>>(a+=this.DB-e)):(n=this.data[s]>>(a-=e)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=jm(n));return i?o:"0"}function z2(){var t=oe();return A.ZERO.subTo(this,t),t}function H2(){return this.s<0?this.negate():this}function G2(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 ga(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 Y2(){return this.t<=0?0:this.DB*(this.t-1)+ga(this.data[this.t-1]^this.s&this.DM)}function W2(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 Q2(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 X2(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(t/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)e.data[a]=0;e.data[o]=s,e.t=this.t+o+1,e.s=this.s,e.clamp()}function Z2(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,o=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var s=r+1;s<this.t;++s)e.data[s-r-1]|=(this.data[s]&o)<<i,e.data[s-r]=this.data[s]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&o)<<i),e.t=this.t-r,e.clamp()}function J2(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 j2(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&&A.ZERO.subTo(e,e)}function eb(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 tb(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=oe());var o=oe(),s=this.s,a=t.s,c=this.DB-ga(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,l=o.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),h=this.FV/f,d=(1<<this.F1)/f,p=1<<this.F2,m=r.t,y=m-u,g=e??oe();for(o.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),A.ONE.dlShiftTo(u,g),g.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--y>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*h+(r.data[m-1]+p)*d);if((r.data[m]+=o.am(0,x,r,y,0,u))<x)for(o.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}e!=null&&(r.drShiftTo(u,e),s!=a&&A.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&A.ZERO.subTo(r,r)}}}function rb(t){var e=oe();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(A.ZERO)>0&&t.subTo(e,e),e}function Mn(t){this.m=t}function nb(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function ib(t){return t}function ob(t){t.divRemTo(this.m,null,t)}function sb(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function ab(t,e){t.squareTo(e),this.reduce(e)}Mn.prototype.convert=nb;Mn.prototype.revert=ib;Mn.prototype.reduce=ob;Mn.prototype.mulTo=sb;Mn.prototype.sqrTo=ab;function cb(){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 Un(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 ub(t){var e=oe();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(A.ZERO)>0&&this.m.subTo(e,e),e}function lb(t){var e=oe();return t.copyTo(e),this.reduce(e),e}function fb(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 hb(t,e){t.squareTo(e),this.reduce(e)}function db(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Un.prototype.convert=ub;Un.prototype.revert=lb;Un.prototype.reduce=fb;Un.prototype.mulTo=db;Un.prototype.sqrTo=hb;function pb(){return(this.t>0?this.data[0]&1:this.s)==0}function mb(t,e){if(t>4294967295||t<1)return A.ONE;var r=oe(),n=oe(),i=e.convert(this),o=ga(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<<o)>0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)}function yb(t,e){var r;return t<256||e.isEven()?r=new Mn(e):r=new Un(e),this.exp(t,r)}A.prototype.copyTo=F2;A.prototype.fromInt=K2;A.prototype.fromString=V2;A.prototype.clamp=q2;A.prototype.dlShiftTo=W2;A.prototype.drShiftTo=Q2;A.prototype.lShiftTo=X2;A.prototype.rShiftTo=Z2;A.prototype.subTo=J2;A.prototype.multiplyTo=j2;A.prototype.squareTo=eb;A.prototype.divRemTo=tb;A.prototype.invDigit=cb;A.prototype.isEven=pb;A.prototype.exp=mb;A.prototype.toString=$2;A.prototype.negate=z2;A.prototype.abs=H2;A.prototype.compareTo=G2;A.prototype.bitLength=Y2;A.prototype.mod=rb;A.prototype.modPowInt=yb;A.ZERO=nn(0);A.ONE=nn(1);function gb(){var t=oe();return this.copyTo(t),t}function wb(){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 Eb(){return this.t==0?this.s:this.data[0]<<24>>24}function xb(){return this.t==0?this.s:this.data[0]<<16>>16}function vb(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function bb(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function _b(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=nn(r),i=oe(),o=oe(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s}function Sb(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a<t.length;++a){var c=ey(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=e*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&A.ZERO.subTo(this,this)}function Ab(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(A.ONE.shiftLeft(t-1),Vl,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(A.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 Rb(){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 Ib(t){return this.compareTo(t)==0}function Tb(t){return this.compareTo(t)<0?this:t}function Cb(t){return this.compareTo(t)>0?this:t}function Db(t,e,r){var n,i,o=Math.min(t.t,this.t);for(n=0;n<o;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=o;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;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 Bb(t,e){return t&e}function Lb(t){var e=oe();return this.bitwiseTo(t,Bb,e),e}function Vl(t,e){return t|e}function Pb(t){var e=oe();return this.bitwiseTo(t,Vl,e),e}function ty(t,e){return t^e}function Nb(t){var e=oe();return this.bitwiseTo(t,ty,e),e}function ry(t,e){return t&~e}function kb(t){var e=oe();return this.bitwiseTo(t,ry,e),e}function Ob(){for(var t=oe(),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 Mb(t){var e=oe();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function Ub(t){var e=oe();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function Fb(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 Kb(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+Fb(this.data[t]);return this.s<0?this.t*this.DB:-1}function Vb(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function qb(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=Vb(this.data[r]^e);return t}function $b(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function zb(t,e){var r=A.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function Hb(t){return this.changeBit(t,Vl)}function Gb(t){return this.changeBit(t,ry)}function Yb(t){return this.changeBit(t,ty)}function Wb(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 Qb(t){var e=oe();return this.addTo(t,e),e}function Xb(t){var e=oe();return this.subTo(t,e),e}function Zb(t){var e=oe();return this.multiplyTo(t,e),e}function Jb(t){var e=oe();return this.divRemTo(t,e,null),e}function jb(t){var e=oe();return this.divRemTo(t,null,e),e}function e_(t){var e=oe(),r=oe();return this.divRemTo(t,e,r),new Array(e,r)}function t_(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function r_(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 bo(){}function ny(t){return t}function n_(t,e,r){t.multiplyTo(e,r)}function i_(t,e){t.squareTo(e)}bo.prototype.convert=ny;bo.prototype.revert=ny;bo.prototype.mulTo=n_;bo.prototype.sqrTo=i_;function o_(t){return this.exp(t,new bo)}function s_(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 a_(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 Di(t){this.r2=oe(),this.q3=oe(),A.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function c_(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=oe();return t.copyTo(e),this.reduce(e),e}function u_(t){return t}function l_(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 f_(t,e){t.squareTo(e),this.reduce(e)}function h_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Di.prototype.convert=c_;Di.prototype.revert=u_;Di.prototype.reduce=l_;Di.prototype.mulTo=h_;Di.prototype.sqrTo=f_;function d_(t,e){var r=t.bitLength(),n,i=nn(1),o;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?o=new Mn(e):e.isEven()?o=new Di(e):o=new Un(e);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var l=oe();for(o.sqrTo(s[1],l);a<=u;)s[a]=oe(),o.mulTo(l,s[a-2],s[a]),a+=2}var f=t.t-1,h,d=!0,p=oe(),m;for(r=ga(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)s[h].copyTo(i),d=!1;else{for(;a>1;)o.sqrTo(i,p),o.sqrTo(p,i),a-=2;a>0?o.sqrTo(i,p):(m=i,i=p,p=m),o.mulTo(p,s[h],i)}for(;f>=0&&!(t.data[f]&1<<r);)o.sqrTo(i,p),m=i,i=p,p=m,--r<0&&(r=this.DB-1,--f)}return o.revert(i)}function p_(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(),o=r.getLowestSetBit();if(o<0)return e;for(i<o&&(o=i),o>0&&(e.rShiftTo(o,e),r.rShiftTo(o,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 o>0&&r.lShiftTo(o,r),r}function m_(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 y_(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return A.ZERO;for(var r=t.clone(),n=this.clone(),i=nn(1),o=nn(0),s=nn(0),a=nn(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(t,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(t,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),e?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(t,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(A.ONE)!=0)return A.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 Ht=[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],g_=(1<<26)/Ht[Ht.length-1];function w_(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=Ht[Ht.length-1]){for(e=0;e<Ht.length;++e)if(r.data[0]==Ht[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Ht.length;){for(var n=Ht[e],i=e+1;i<Ht.length&&n<g_;)n*=Ht[i++];for(n=r.modInt(n);e<i;)if(n%Ht[e++]==0)return!1}return r.millerRabin(t)}function E_(t){var e=this.subtract(A.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=x_(),o,s=0;s<t;++s){do o=new A(this.bitLength(),i);while(o.compareTo(A.ONE)<=0||o.compareTo(e)>=0);var a=o.modPow(n,this);if(a.compareTo(A.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(A.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function x_(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}A.prototype.chunkSize=vb;A.prototype.toRadix=_b;A.prototype.fromRadix=Sb;A.prototype.fromNumber=Ab;A.prototype.bitwiseTo=Db;A.prototype.changeBit=zb;A.prototype.addTo=Wb;A.prototype.dMultiply=t_;A.prototype.dAddOffset=r_;A.prototype.multiplyLowerTo=s_;A.prototype.multiplyUpperTo=a_;A.prototype.modInt=m_;A.prototype.millerRabin=E_;A.prototype.clone=gb;A.prototype.intValue=wb;A.prototype.byteValue=Eb;A.prototype.shortValue=xb;A.prototype.signum=bb;A.prototype.toByteArray=Rb;A.prototype.equals=Ib;A.prototype.min=Tb;A.prototype.max=Cb;A.prototype.and=Lb;A.prototype.or=Pb;A.prototype.xor=Nb;A.prototype.andNot=kb;A.prototype.not=Ob;A.prototype.shiftLeft=Mb;A.prototype.shiftRight=Ub;A.prototype.getLowestSetBit=Kb;A.prototype.bitCount=qb;A.prototype.testBit=$b;A.prototype.setBit=Hb;A.prototype.clearBit=Gb;A.prototype.flipBit=Yb;A.prototype.add=Qb;A.prototype.subtract=Xb;A.prototype.multiply=Zb;A.prototype.divide=Jb;A.prototype.remainder=jb;A.prototype.divideAndRemainder=e_;A.prototype.modPow=d_;A.prototype.modInverse=y_;A.prototype.pow=o_;A.prototype.gcd=p_;A.prototype.isProbablePrime=w_});var uy=T((VD,cy)=>{var ur=fe();On();qe();var sy=cy.exports=ur.sha1=ur.sha1||{};ur.md.sha1=ur.md.algorithms.sha1=sy;sy.create=function(){ay||v_();var t=null,e=ur.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,o=0;o<i;++o)n.fullMessageLength.push(0);return e=ur.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=ur.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return e.putBytes(i),oy(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=ur.util.createBuffer();i.putBytes(e.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(ql.substr(0,n.blockLength-s));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};oy(f,r,i);var h=ur.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 ql=null,ay=!1;function v_(){ql=String.fromCharCode(128),ql+=ur.util.fillString(String.fromCharCode(0),64),ay=!0}function oy(t,e,r){for(var n,i,o,s,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,o=t.h1,s=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=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^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=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=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=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=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=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=o&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=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=o^s^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+o|0,t.h2=t.h2+s|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var hy=T((qD,fy)=>{var lr=fe();qe();vo();uy();var ly=fy.exports=lr.pkcs1=lr.pkcs1||{};ly.encode_rsa_oaep=function(t,e,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=lr.md.sha1.create(),s||(s=o);var a=Math.ceil(t.n.bitLength()/8),c=a-2*o.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=""),o.update(n,"raw");for(var l=o.digest(),f="",h=c-e.length,d=0;d<h;d++)f+="\0";var p=l.getBytes()+f+""+e;if(!i)i=lr.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var m=Ea(i,a-o.digestLength-1,s),y=lr.util.xorBytes(p,m,p.length),g=Ea(y,o.digestLength,s),x=lr.util.xorBytes(i,g,i.length);return"\0"+x+y};ly.decode_rsa_oaep=function(t,e,r){var n,i,o;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&&(o=r.mgf1.md));var s=Math.ceil(t.n.bitLength()/8);if(e.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=e.length,y.expectedLength=s,y}if(i===void 0?i=lr.md.sha1.create():i.start(),o||(o=i),s<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=Ea(l,i.digestLength,o),h=lr.util.xorBytes(u,f,u.length),d=Ea(h,s-i.digestLength-1,o),p=lr.util.xorBytes(l,d,l.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,_=i.digestLength,k=i.digestLength;k<p.length;k++){var C=p.charCodeAt(k),D=C&1^1,X=x?65534:0;y|=C&X,x=x&D,_+=x}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function Ea(t,e,r){r||(r=lr.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(t+s),n+=r.digest().getBytes()}return n.substring(0,e)}});var dy=T(($D,$l)=>{var on=fe();qe();wa();vo();(function(){if(on.prime){$l.exports=on.prime;return}var t=$l.exports=on.prime=on.prime||{},e=on.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 m=h.prng||on.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=x.charCodeAt(_)}};if(p.name==="PRIMEINC")return o(f,y,p.options,d);throw new Error("Invalid prime generation algorithm: "+p.name)};function o(f,h,d,p){return"workers"in d?c(f,h,d,p):s(f,h,d,p)}function s(f,h,d,p){var m=u(f,h),y=0,g=l(m.bitLength());"millerRabinTests"in d&&(g=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(m,f,h,y,g,x,p)}function a(f,h,d,p,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,d)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[p++%8],0)}while(y<0||+new Date-x<y);on.util.setImmediate(function(){a(f,h,d,p,m,y,g)})}function c(f,h,d,p){if(typeof Worker>"u")return s(f,h,d,p);var m=u(f,h),y=d.workers,g=d.workLoad||100,x=g*30/8,_=d.workerScript||"forge/prime.worker.js";if(y===-1)return on.util.estimateCores(function(C,D){C&&(D=2),y=D-1,k()});k();function k(){y=Math.max(1,y);for(var C=[],D=0;D<y;++D)C[D]=new Worker(_);for(var X=y,D=0;D<y;++D)C[D].addEventListener("message",We);var J=!1;function We(Ot){if(!J){--X;var wt=Ot.data;if(wt.found){for(var at=0;at<C.length;++at)C[at].terminate();return J=!0,p(null,new e(wt.prime,16))}m.bitLength()>f&&(m=u(f,h));var ei=m.toString(16);Ot.target.postMessage({hex:ei,workLoad:g}),m.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 va=T((zD,xy)=>{var K=fe();xo();wa();oa();hy();dy();vo();qe();typeof te>"u"&&(te=K.jsbn.BigInteger);var te,zl=K.util.isNodejs?Tn():null,v=K.asn1,Bt=K.util;K.pki=K.pki||{};xy.exports=K.pki.rsa=K.rsa=K.rsa||{};var q=K.pki,b_=[6,4,2,4,2,4,6,2],__={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},S_={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},A_={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},R_=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},I_={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},T_=function(t){var e;if(t.algorithm in q.oids)e=q.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=v.oidToDer(e).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),o=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);o.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),o.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var s=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(o),i.value.push(s),v.toDer(i).getBytes()},wy=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(te.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(te.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new te(K.util.bytesToHex(K.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(te.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),o=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(o)<0;)i=i.add(e.p);var s=i.subtract(o).multiply(e.qInv).mod(e.p).multiply(e.q).add(o);return s=s.multiply(n.modInverse(e.n)).mod(e.n),s};q.rsa.encrypt=function(t,e,r){var n=r,i,o=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=Ey(t,e,r)):(i=K.util.createBuffer(),i.putBytes(t));for(var s=new te(i.toHex(),16),a=wy(s,e,n),c=a.toString(16),u=K.util.createBuffer(),l=o-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(K.util.hexToBytes(c)),u.getBytes()};q.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=t.length,o.expected=i,o}var s=new te(K.util.createBuffer(t).toHex(),16);if(s.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=wy(s,e,r),c=a.toString(16),u=K.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(K.util.hexToBytes(c)),n!==!1?xa(u.getBytes(),e,r):u.getBytes()};q.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:t,rng:i,eInt:e||65537,e:new te(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};q.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new te(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},o=+new Date,s,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 te(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(te.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(D_(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(b_[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(te.ONE).gcd(t.e).compareTo(te.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(te.ONE),t.q1=t.q.subtract(te.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(te.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:q.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:q.rsa.setPublicKey(t.n,t.e)}}s=+new Date,a+=s-o,o=s}return t.keys!==null};q.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),!K.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(py("generateKeyPair"))return zl.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:q.privateKeyFromPem(u),publicKey:q.publicKeyFromPem(c)})});if(my("generateKey")&&my("exportKey"))return Bt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:gy(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Bt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:q.setRsaPublicKey(c.n,c.e)})}});if(yy("generateKey")&&yy("exportKey")){var i=Bt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:gy(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Bt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(f)));n(null,{privateKey:h,publicKey:q.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(py("generateKeyPairSync")){var o=zl.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:q.privateKeyFromPem(o.privateKey),publicKey:q.publicKeyFromPem(o.publicKey)}}}var s=q.rsa.createKeyPairGenerationState(t,e,r);if(!n)return q.rsa.stepKeyPairGenerationState(s,0),s.keys;C_(s,r,n)};q.setRsaPublicKey=q.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,o){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 Ey(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};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 s=i.encode(n,r,!0);return q.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=xa(u,r,!0);var l=v.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),f={},h=[];if(!v.validate(l,I_,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=v.derToOid(f.algorithmIdentifier);if(!(p===K.oids.md2||p===K.oids.md5||p===K.oids.sha1||p===K.oids.sha224||p===K.oids.sha256||p===K.oids.sha384||p===K.oids.sha512||p===K.oids["sha512-224"]||p===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=p,d}if((p===K.oids.md2||p===K.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}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=xa(u,r,!0),c===u}});var a=q.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};q.setRsaPrivateKey=q.rsa.setPrivateKey=function(t,e,r,n,i,o,s,a){var c={n:t,e,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var h=q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:xa};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(d,p){return K.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:T_},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return q.rsa.encrypt(h,c,f)},c};q.wrapRsaPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(t).getBytes())])};q.privateKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,__,e,r)&&(t=v.fromDer(K.util.createBuffer(e.privateKey))),e={},r=[],!v.validate(t,S_,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,o,s,a,c,u,l,f;return i=K.util.createBuffer(e.privateKeyModulus).toHex(),o=K.util.createBuffer(e.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(e.privateKeyPrime1).toHex(),c=K.util.createBuffer(e.privateKeyPrime2).toHex(),u=K.util.createBuffer(e.privateKeyExponent1).toHex(),l=K.util.createBuffer(e.privateKeyExponent2).toHex(),f=K.util.createBuffer(e.privateKeyCoefficient).toHex(),q.setRsaPrivateKey(new te(i,16),new te(o,16),new te(s,16),new te(a,16),new te(c,16),new te(u,16),new te(l,16),new te(f,16))};q.privateKeyToAsn1=q.privateKeyToRSAPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.qInv))])};q.publicKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,R_,e,r)){var n=v.derToOid(e.publicKeyOid);if(n!==q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!v.validate(t,A_,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=K.util.createBuffer(e.publicKeyModulus).toHex(),s=K.util.createBuffer(e.publicKeyExponent).toHex();return q.setRsaPublicKey(new te(o,16),new te(s,16))};q.publicKeyToAsn1=q.publicKeyToSubjectPublicKeyInfo=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[q.publicKeyToRSAPublicKey(t)])])};q.publicKeyToRSAPublicKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,fr(t.e))])};function Ey(t,e,r){var n=K.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=t.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var s=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,l=K.random.getBytes(s),c=0;c<s;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(t),n}function xa(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),o=K.util.createBuffer(t),s=o.getByte(),a=o.getByte();if(s!==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(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var l=o.getByte();if(l!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function C_(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(){o(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return s(a,t.q);o(t.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(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(te.ONE).gcd(t.e).compareTo(te.ONE)!==0){t.p=null,i();return}if(t.q.subtract(te.ONE).gcd(t.e).compareTo(te.ONE)!==0){t.q=null,o(t.qBits,s);return}if(t.p1=t.p.subtract(te.ONE),t.q1=t.q.subtract(te.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(te.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,o(t.qBits,s);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:q.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:q.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function fr(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=K.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 D_(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 py(t){return K.util.isNodejs&&typeof zl[t]=="function"}function my(t){return typeof Bt.globalScope<"u"&&typeof Bt.globalScope.crypto=="object"&&typeof Bt.globalScope.crypto.subtle=="object"&&typeof Bt.globalScope.crypto.subtle[t]=="function"}function yy(t){return typeof Bt.globalScope<"u"&&typeof Bt.globalScope.msCrypto=="object"&&typeof Bt.globalScope.msCrypto.subtle=="object"&&typeof Bt.globalScope.msCrypto.subtle[t]=="function"}function gy(t){for(var e=K.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var Ry=T((HD,Ay)=>{var L=fe();la();xo();Bm();On();oa();kl();Um();vo();Xm();va();qe();typeof vy>"u"&&(vy=L.jsbn.BigInteger);var vy,b=L.asn1,z=L.pki=L.pki||{};Ay.exports=z.pbe=L.pbe=L.pbe||{};var Fn=z.oids,B_={name:"EncryptedPrivateKeyInfo",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},L_={name:"PBES2Algorithms",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},P_={name:"pkcs-12PbeParams",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"iterations"}]};z.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=L.random.getBytesSync(r.saltSize),i=r.count,o=b.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":s=16,u=16,l=Fn["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,l=Fn["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,l=Fn["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":s=8,u=8,l=Fn.desCBC,f=L.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=Sy(d),m=L.pkcs5.pbkdf2(e,n,i,s,p),y=L.random.getBytesSync(u),g=f(m);g.start(y),g.update(b.toDer(t)),g.finish(),c=g.output.getBytes();var x=N_(n,o,s,d);a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Fn.pkcs5PBES2).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Fn.pkcs5PBKDF2).getBytes()),x]),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(l).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){s=24;var _=new L.util.ByteBuffer(n),m=z.pbe.generatePkcs12Key(e,_,1,i,s),y=z.pbe.generatePkcs12Key(e,_,2,i,s),g=L.des.createEncryptionCipher(m);g.start(y),g.update(b.toDer(t)),g.finish(),c=g.output.getBytes(),a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Fn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,n),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,o.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var k=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[a,b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,c)]);return k};z.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!b.validate(t,B_,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=b.derToOid(n.encryptionOid),a=z.pbe.getCipher(s,n.encryptionParams,e),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=b.fromDer(a.output)),r};z.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:b.toDer(t).getBytes()};return L.pem.encode(r,{maxline:e})};z.encryptedPrivateKeyFromPem=function(t){var e=L.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 b.fromDer(e.body)};z.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=z.wrapRsaPrivateKey(z.privateKeyToAsn1(t));return n=z.encryptPrivateKeyInfo(n,e,r),z.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=L.random.getBytesSync(8),a=L.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=L.pbe.opensslDeriveBytes(e,o.substr(0,8),s),l=a(u);l.start(o),l.update(b.toDer(z.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(o).toUpperCase()},body:l.output.getBytes()};return L.pem.encode(f)};z.decryptRsaPrivateKey=function(t,e){var r=null,n=L.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 o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=L.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=L.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=L.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":o=8,s=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":o=16,s=function(f){return L.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=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(e,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(L.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=z.decryptPrivateKeyInfo(b.fromDer(r),e):r=b.fromDer(r),r!==null&&(r=z.privateKeyFromAsn1(r)),r};z.pbe.generatePkcs12Key=function(t,e,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');o=L.md.sha1.create()}var c=o.digestLength,u=o.blockLength,l=new L.util.ByteBuffer,f=new L.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 L.util.ByteBuffer;p.fillWithByte(r,u);var m=u*Math.ceil(d/u),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(e.at(a%d));var g=u*Math.ceil(h/u),x=new L.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var _=y;_.putBuffer(x);for(var k=Math.ceil(i/c),C=1;C<=k;C++){var D=new L.util.ByteBuffer;D.putBytes(p.bytes()),D.putBytes(_.bytes());for(var X=0;X<n;X++)o.start(),o.update(D.getBytes()),D=o.digest();var J=new L.util.ByteBuffer;for(a=0;a<u;a++)J.putByte(D.at(a%c));var We=Math.ceil(d/u)+Math.ceil(h/u),Ot=new L.util.ByteBuffer;for(s=0;s<We;s++){var wt=new L.util.ByteBuffer(_.getBytes(u)),at=511;for(a=J.length()-1;a>=0;a--)at=at>>8,at+=J.at(a)+wt.at(a),wt.setAt(a,at&255);Ot.putBuffer(wt)}_=Ot,l.putBuffer(D)}return l.truncate(l.length()-i),l};z.pbe.getCipher=function(t,e,r){switch(t){case z.oids.pkcs5PBES2:return z.pbe.getCipherForPBES2(t,e,r);case z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case z.oids["pbewithSHAAnd40BitRC2-CBC"]:return z.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}};z.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!b.validate(e,L_,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(t=b.derToOid(n.kdfOid),t!==z.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=t,o.supportedOids=["pkcs5PBKDF2"],o}if(t=b.derToOid(n.encOid),t!==z.oids["aes128-CBC"]&&t!==z.oids["aes192-CBC"]&&t!==z.oids["aes256-CBC"]&&t!==z.oids["des-EDE3-CBC"]&&t!==z.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=t,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(z.oids[t]){case"aes128-CBC":c=16,u=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=L.des.createDecryptionCipher;break;case"desCBC":c=8,u=L.des.createDecryptionCipher;break}var l=_y(n.prfOid),f=L.pkcs5.pbkdf2(r,s,a,c,l),h=n.encIv,d=u(f);return d.start(h),d};z.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!b.validate(e,P_,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=L.des.startDecrypting;break;case z.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=t,o}var f=_y(n.prfOid),h=z.pbe.generatePkcs12Key(r,s,1,a,c,f);f.start();var d=z.pbe.generatePkcs12Key(r,s,2,a,u,f);return l(h,d)};z.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}e===null&&(e="");for(var i=[by(n,t+e)],o=16,s=1;o<r;++s,o+=16)i.push(by(n,i[s-1]+t+e));return i.join("").substr(0,r)};function by(t,e){return t.start().update(e).digest().getBytes()}function _y(t){var e;if(!t)e="hmacWithSHA1";else if(e=z.oids[b.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return Sy(e)}function Sy(t){var e=L.md;switch(t){case"hmacWithSHA224":e=L.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 N_(t,e,r,n){var i=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,t),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,L.util.hexToBytes(r.toString(16))),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(z.oids[n]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.NULL,!1,"")])),i}});var Uy=T((SB,My)=>{var Ae=fe();On();qe();var _o=My.exports=Ae.sha512=Ae.sha512||{};Ae.md.sha512=Ae.md.algorithms.sha512=_o;var ky=Ae.sha384=Ae.sha512.sha384=Ae.sha512.sha384||{};ky.create=function(){return _o.create("SHA-384")};Ae.md.sha384=Ae.md.algorithms.sha384=ky;Ae.sha512.sha256=Ae.sha512.sha256||{create:function(){return _o.create("SHA-512/256")}};Ae.md["sha512/256"]=Ae.md.algorithms["sha512/256"]=Ae.sha512.sha256;Ae.sha512.sha224=Ae.sha512.sha224||{create:function(){return _o.create("SHA-512/224")}};Ae.md["sha512/224"]=Ae.md.algorithms["sha512/224"]=Ae.sha512.sha224;_o.create=function(t){if(Oy||M_(),typeof t>"u"&&(t="SHA-512"),!(t in Kn))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=Kn[t],r=null,n=Ae.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(t){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:s,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=Ae.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=Ae.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),Ny(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Ae.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(Hl.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 m=new Array(r.length),p=0;p<r.length;++p)m[p]=r[p].slice(0);Ny(m,i,c);var y=Ae.util.createBuffer(),g;t==="SHA-512"?g=m.length:t==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||t!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var Hl=null,Oy=!1,Gl=null,Kn=null;function M_(){Hl=String.fromCharCode(128),Hl+=Ae.util.fillString(String.fromCharCode(0),128),Gl=[[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]],Kn={},Kn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Kn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Kn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Kn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Oy=!0}function Ny(t,e,r){for(var n,i,o,s,a,c,u,l,f,h,d,p,m,y,g,x,_,k,C,D,X,J,We,Ot,wt,at,ei,ts,$e,ht,V,_c,Sc,Ac,Rc,Jf=r.length();Jf>=128;){for($e=0;$e<16;++$e)e[$e][0]=r.getInt32()>>>0,e[$e][1]=r.getInt32()>>>0;for(;$e<80;++$e)_c=e[$e-2],ht=_c[0],V=_c[1],n=((ht>>>19|V<<13)^(V>>>29|ht<<3)^ht>>>6)>>>0,i=((ht<<13|V>>>19)^(V<<3|ht>>>29)^(ht<<26|V>>>6))>>>0,Ac=e[$e-15],ht=Ac[0],V=Ac[1],o=((ht>>>1|V<<31)^(ht>>>8|V<<24)^ht>>>7)>>>0,s=((ht<<31|V>>>1)^(ht<<24|V>>>8)^(ht<<25|V>>>7))>>>0,Sc=e[$e-7],Rc=e[$e-16],V=i+Sc[1]+s+Rc[1],e[$e][0]=n+Sc[0]+o+Rc[0]+(V/4294967296>>>0)>>>0,e[$e][1]=V>>>0;for(m=t[0][0],y=t[0][1],g=t[1][0],x=t[1][1],_=t[2][0],k=t[2][1],C=t[3][0],D=t[3][1],X=t[4][0],J=t[4][1],We=t[5][0],Ot=t[5][1],wt=t[6][0],at=t[6][1],ei=t[7][0],ts=t[7][1],$e=0;$e<80;++$e)u=((X>>>14|J<<18)^(X>>>18|J<<14)^(J>>>9|X<<23))>>>0,l=((X<<18|J>>>14)^(X<<14|J>>>18)^(J<<23|X>>>9))>>>0,f=(wt^X&(We^wt))>>>0,h=(at^J&(Ot^at))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,d=(m&g|_&(m^g))>>>0,p=(y&x|k&(y^x))>>>0,V=ts+l+h+Gl[$e][1]+e[$e][1],n=ei+u+f+Gl[$e][0]+e[$e][0]+(V/4294967296>>>0)>>>0,i=V>>>0,V=c+p,o=a+d+(V/4294967296>>>0)>>>0,s=V>>>0,ei=wt,ts=at,wt=We,at=Ot,We=X,Ot=J,V=D+i,X=C+n+(V/4294967296>>>0)>>>0,J=V>>>0,C=_,D=k,_=g,k=x,g=m,x=y,V=i+s,m=n+o+(V/4294967296>>>0)>>>0,y=V>>>0;V=t[0][1]+y,t[0][0]=t[0][0]+m+(V/4294967296>>>0)>>>0,t[0][1]=V>>>0,V=t[1][1]+x,t[1][0]=t[1][0]+g+(V/4294967296>>>0)>>>0,t[1][1]=V>>>0,V=t[2][1]+k,t[2][0]=t[2][0]+_+(V/4294967296>>>0)>>>0,t[2][1]=V>>>0,V=t[3][1]+D,t[3][0]=t[3][0]+C+(V/4294967296>>>0)>>>0,t[3][1]=V>>>0,V=t[4][1]+J,t[4][0]=t[4][0]+X+(V/4294967296>>>0)>>>0,t[4][1]=V>>>0,V=t[5][1]+Ot,t[5][0]=t[5][0]+We+(V/4294967296>>>0)>>>0,t[5][1]=V>>>0,V=t[6][1]+at,t[6][0]=t[6][0]+wt+(V/4294967296>>>0)>>>0,t[6][1]=V>>>0,V=t[7][1]+ts,t[7][0]=t[7][0]+ei+(V/4294967296>>>0)>>>0,t[7][1]=V>>>0,Jf-=128}}});var vw=T((ck,xw)=>{function pA(){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)}xw.exports=pA});var RA={};rt(RA,{createLibp2p:()=>AA});var It=M(Tc(),1);var Pc={};rt(Pc,{base58btc:()=>Oe,base58flickr:()=>l1});function o1(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 o=t.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=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 m=0,y=0,g=0,x=p.length;g!==x&&p[g]===0;)g++,m++;for(var _=(x-g)*l+1>>>0,k=new Uint8Array(_);g!==x;){for(var C=p[g],D=0,X=_-1;(C!==0||D<y)&&X!==-1;X--,D++)C+=256*k[X]>>>0,k[X]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=D,g++}for(var J=_-y;J!==_&&k[J]===0;)J++;for(var We=c.repeat(m);J<_;++J)We+=t.charAt(k[J]);return We}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var x=(p.length-m)*u+1>>>0,_=new Uint8Array(x);p[m];){var k=r[p.charCodeAt(m)];if(k===255)return;for(var C=0,D=x-1;(k!==0||C<g)&&D!==-1;D--,C++)k+=a*_[D]>>>0,_[D]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var X=x-g;X!==x&&_[X]===0;)X++;for(var J=new Uint8Array(y+(x-X)),We=y;X!==x;)J[We++]=_[X++];return J}}}function d(p){var m=h(p);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:h,decode:d}}var s1=o1,a1=s1,nh=a1;var BA=new Uint8Array(0);var ih=(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},gr=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 oh=t=>new TextEncoder().encode(t),sh=t=>new TextDecoder().decode(t);var Cc=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")}},Dc=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 ch(this,e)}},Bc=class{constructor(e){this.decoders=e}or(e){return ch(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`)}},ch=(t,e)=>new Bc({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Lc=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Cc(e,r,n),this.decoder=new Dc(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ii=({name:t,prefix:e,encode:r,decode:n})=>new Lc(t,e,r,n),Fr=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=nh(r,e);return ii({prefix:t,name:e,encode:n,decode:o=>gr(i(o))})},c1=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let o=t.length;for(;t[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let l=0;l<o;++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,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},u1=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],s+=8;s>r;)s-=r,o+=e[i&a>>s];if(s&&(o+=e[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Pe=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ii({prefix:e,name:t,encode(i){return u1(i,n,r)},decode(i){return c1(i,n,r,t)}});var Oe=Fr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),l1=Fr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Nc={};rt(Nc,{base32:()=>xt,base32hex:()=>p1,base32hexpad:()=>y1,base32hexpadupper:()=>g1,base32hexupper:()=>m1,base32pad:()=>h1,base32padupper:()=>d1,base32upper:()=>f1,base32z:()=>w1});var xt=Pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),f1=Pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),h1=Pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),d1=Pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),p1=Pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),m1=Pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),y1=Pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),g1=Pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),w1=Pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var kc={};rt(kc,{base64:()=>En,base64pad:()=>E1,base64url:()=>x1,base64urlpad:()=>v1});var En=Pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),E1=Pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x1=Pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v1=Pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});It.default.formatters.b=t=>t==null?"undefined":Oe.baseEncode(t);It.default.formatters.t=t=>t==null?"undefined":xt.baseEncode(t);It.default.formatters.m=t=>t==null?"undefined":En.baseEncode(t);It.default.formatters.p=t=>t==null?"undefined":t.toString();It.default.formatters.c=t=>t==null?"undefined":t.toString();It.default.formatters.k=t=>t==null?"undefined":t.toString();function b1(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function U(t){let e=b1(`${t}:trace`);return It.default.enabled(`${t}:trace`)&&It.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,It.default)(`${t}:trace`)),Object.assign((0,It.default)(t),{error:(0,It.default)(`${t}:error`),trace:e})}var xn=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)},wr,Xe=class extends EventTarget{constructor(){super(...arguments),wr.set(this,new Map)}listenerCount(e){let r=xn(this,wr,"f").get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=xn(this,wr,"f").get(e);i==null&&(i=[],xn(this,wr,"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=xn(this,wr,"f").get(e);i!=null&&(i=i.filter(({callback:o})=>o!==r),xn(this,wr,"f").set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=xn(this,wr,"f").get(e.type);return n==null||(n=n.filter(({once:i})=>!i),xn(this,wr,"f").set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new G(e,r))}};wr=new WeakMap;var Oc=class extends Event{constructor(e,r){super(e,r),this.detail=r?.detail}},G=globalThis.CustomEvent??Oc;function Er(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var os=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 o=0,s=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(o*=e,o+=l,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}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 s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&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 o=new Uint8Array(14),s=16-(n+2),[a]=e(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var uh=45,_1=15,oi=new os;function Mc(t){if(!(t.length>_1))return oi.new(t).parseWith(()=>oi.readIPv4Addr())}function Uc(t){if(!(t.length>uh))return oi.new(t).parseWith(()=>oi.readIPv6Addr())}function ss(t){if(!(t.length>uh))return oi.new(t).parseWith(()=>oi.readIPAddr())}function lh(t){return!!Mc(t)}function fh(t){return!!Uc(t)}function si(t){return!!ss(t)}var Fc={};rt(Fc,{identity:()=>S1});var S1=ii({prefix:"\0",name:"identity",encode:t=>sh(t),decode:t=>oh(t)});var Kc={};rt(Kc,{base2:()=>A1});var A1=Pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vc={};rt(Vc,{base8:()=>R1});var R1=Pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qc={};rt(qc,{base10:()=>I1});var I1=Fr({prefix:"9",name:"base10",alphabet:"0123456789"});var $c={};rt($c,{base16:()=>T1,base16upper:()=>C1});var T1=Pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),C1=Pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var zc={};rt(zc,{base36:()=>D1,base36upper:()=>B1});var D1=Fr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),B1=Fr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Hc={};rt(Hc,{base256emoji:()=>O1});var hh=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}"),L1=hh.reduce((t,e,r)=>(t[r]=e,t),[]),P1=hh.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function N1(t){return t.reduce((e,r)=>(e+=L1[r],e),"")}function k1(t){let e=[];for(let r of t){let n=P1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var O1=ii({prefix:"\u{1F680}",name:"base256emoji",encode:N1,decode:k1});var Qc={};rt(Qc,{sha256:()=>nt,sha512:()=>tE});var M1=mh,dh=128,U1=127,F1=~U1,K1=Math.pow(2,31);function mh(t,e,r){e=e||[],r=r||0;for(var n=r;t>=K1;)e[r++]=t&255|dh,t/=128;for(;t&F1;)e[r++]=t&255|dh,t>>>=7;return e[r]=t|0,mh.bytes=r-n+1,e}var V1=Gc,q1=128,ph=127;function Gc(t,n){var r=0,n=n||0,i=0,o=n,s,a=t.length;do{if(o>=a)throw Gc.bytes=0,new RangeError("Could not decode varint");s=t[o++],r+=i<28?(s&ph)<<i:(s&ph)*Math.pow(2,i),i+=7}while(s>=q1);return Gc.bytes=o-n,r}var $1=Math.pow(2,7),z1=Math.pow(2,14),H1=Math.pow(2,21),G1=Math.pow(2,28),Y1=Math.pow(2,35),W1=Math.pow(2,42),Q1=Math.pow(2,49),X1=Math.pow(2,56),Z1=Math.pow(2,63),J1=function(t){return t<$1?1:t<z1?2:t<H1?3:t<G1?4:t<Y1?5:t<W1?6:t<Q1?7:t<X1?8:t<Z1?9:10},j1={encode:M1,decode:V1,encodingLength:J1},eE=j1,Gi=eE;var Yi=(t,e=0)=>[Gi.decode(t,e),Gi.decode.bytes],ai=(t,e,r=0)=>(Gi.encode(t,e,r),e),ci=t=>Gi.encodingLength(t);var Zt=(t,e)=>{let r=e.byteLength,n=ci(t),i=n+ci(r),o=new Uint8Array(i+r);return ai(t,o,0),ai(r,o,n),o.set(e,i),new ui(t,r,e,o)},vn=t=>{let e=gr(t),[r,n]=Yi(e),[i,o]=Yi(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new ui(r,i,s,e)},yh=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&ih(t.bytes,r.bytes)}},ui=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var Wc=({name:t,code:e,encode:r})=>new Yc(t,e,r),Yc=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?Zt(this.code,r):r.then(n=>Zt(this.code,n))}else throw Error("Unknown type, must be binary type")}};var wh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),nt=Wc({name:"sha2-256",code:18,encode:wh("SHA-256")}),tE=Wc({name:"sha2-512",code:19,encode:wh("SHA-512")});var Xc={};rt(Xc,{identity:()=>Kr});var Eh=0,rE="identity",xh=gr,nE=t=>Zt(Eh,xh(t)),Kr={code:Eh,name:rE,encode:xh,digest:nE};var uR=new TextEncoder,lR=new TextDecoder;var vh=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return aE(r,Zc(t),e||Oe.encoder);default:return cE(r,Zc(t),e||xt.encoder)}};var bh=new WeakMap,Zc=t=>{let e=bh.get(t);if(e==null){let r=new Map;return bh.set(t,r),r}return e},Ee=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!==Wi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==uE)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return Ee.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=Zt(e,r);return Ee.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 Ee.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&yh(e.multihash,n.multihash)}toString(e){return vh(this,e)}toJSON(){return{"/":vh(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 Ee)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new Ee(n,i,o,s||_h(n,i,o.bytes))}else if(r[lE]===!0){let{version:n,multihash:i,code:o}=r,s=vn(i);return Ee.create(n,o,s)}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!==Wi)throw new Error(`Version 0 CID must use dag-pb (code: ${Wi}) block encoding`);return new Ee(e,r,n,n.bytes)}case 1:{let i=_h(e,r,n.bytes);return new Ee(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return Ee.create(0,Wi,e)}static createV1(e,r){return Ee.create(1,e,r)}static decode(e){let[r,n]=Ee.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=Ee.inspectBytes(e),n=r.size-r.multihashSize,i=gr(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new ui(r.multihashCode,r.digestSize,o,i);return[r.version===0?Ee.createV0(s):Ee.createV1(r.codec,s),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,h]=Yi(e.subarray(r));return r+=h,f},i=n(),o=Wi;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,l=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=sE(e,r),o=Ee.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Zc(o).set(n,e),o}},sE=(t,e)=>{switch(t[0]){case"Q":{let r=e||Oe;return[Oe.prefix,r.decode(`${Oe.prefix}${t}`)]}case Oe.prefix:{let r=e||Oe;return[Oe.prefix,r.decode(t)]}case xt.prefix:{let r=e||xt;return[xt.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)]}}},aE=(t,e,r)=>{let{prefix:n}=r;if(n!==Oe.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let o=r.encode(t).slice(1);return e.set(n,o),o}else return i},cE=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let o=r.encode(t);return e.set(n,o),o}else return i},Wi=112,uE=18,_h=(t,e,r)=>{let n=ci(t),i=n+ci(e),o=new Uint8Array(i+r.byteLength);return ai(t,o,0),ai(e,o,n),o.set(r,i),o},lE=Symbol.for("@ipld/js-cid/CID");var Vr={...Fc,...Kc,...Vc,...qc,...$c,...Nc,...zc,...Pc,...kc,...Hc},xR={...Qc,...Xc};function _n(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function xr(t=0){return globalThis.Buffer?.alloc!=null?_n(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Mt(t=0){return globalThis.Buffer?.allocUnsafe!=null?_n(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Ah(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Sh=Ah("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Jc=Ah("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=Mt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),fE={utf8:Sh,"utf-8":Sh,hex:Vr.base16,latin1:Jc,ascii:Jc,binary:Jc,...Vr},cs=fE;function $(t,e="utf8"){let r=cs[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)}var Rh=lh,hE=fh,jc=function(t){let e=0;if(t=t.toString().trim(),Rh(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(hE(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let o=Rh(r[n]),s;o&&(s=jc(r[n]),r[n]=$(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,$(s.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 o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[e++]=o>>8&255,i[e++]=o&255}return i}throw new Error("invalid ip address")},Ih=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 o=0;o<r;o++)i.push(t[e+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(e+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Qi={},eu={},pE=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];pE.forEach(t=>{let e=mE(...t);eu[e.code]=e,Qi[e.name]=e});function mE(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function j(t){if(typeof t=="number"){if(eu[t]!=null)return eu[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Qi[t]!=null)return Qi[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var Jt=M(us(),1);function F(t,e="utf8"){let r=cs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?_n(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function Me(t,e){e==null&&(e=t.reduce((i,o)=>i+o.length,0));let r=Mt(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return _n(r)}var XR=parseInt("0xFFFF",16),ZR=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var TI=j("ip4"),CI=j("ip6"),DI=j("ipcidr");function $h(t,e){switch(j(t).code){case 4:case 41:return NE(e);case 42:return Vh(e);case 6:case 273:case 33:case 132:return Hh(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Vh(e);case 421:return UE(e);case 444:return qh(e);case 445:return qh(e);case 466:return ME(e);default:return $(e,"base16")}}function zh(t,e){switch(j(t).code){case 4:return Fh(e);case 41:return Fh(e);case 42:return Kh(e);case 6:case 273:case 33:case 132:return iu(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Kh(e);case 421:return kE(e);case 444:return FE(e);case 445:return KE(e);case 466:return OE(e);default:return F(e,"base16")}}var nu=Object.values(Vr).map(t=>t.decoder),PE=function(){let t=nu[0].or(nu[1]);return nu.slice(2).forEach(e=>t=t.or(e)),t}();function Fh(t){if(!si(t))throw new Error("invalid ip address");return jc(t)}function NE(t){let e=Ih(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!si(e))throw new Error("invalid ip address");return e}function iu(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Hh(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Kh(t){let e=F(t),r=Uint8Array.from(Jt.default.encode(e.length));return Me([r,e],r.length+e.length)}function Vh(t){let e=Jt.default.decode(t);if(t=t.slice(Jt.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return $(t)}function kE(t){let e;t[0]==="Q"||t[0]==="1"?e=vn(Oe.decode(`z${t}`)).bytes:e=Ee.parse(t).multihash.bytes;let r=Uint8Array.from(Jt.default.encode(e.length));return Me([r,e],r.length+e.length)}function OE(t){let e=PE.decode(t),r=Uint8Array.from(Jt.default.encode(e.length));return Me([r,e],r.length+e.length)}function ME(t){let e=Jt.default.decode(t),r=t.slice(Jt.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+$(r,"base64url")}function UE(t){let e=Jt.default.decode(t),r=t.slice(Jt.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return $(r,"base58btc")}function FE(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=xt.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=iu(n);return Me([r,i],r.length+i.length)}function KE(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=xt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=iu(n);return Me([r,i],r.length+i.length)}function qh(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=$(e,"base32"),i=Hh(r);return`${n}:${i}`}var li=M(us(),1);function VE(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],o=j(i);if(o.size===0){e.push([i]);continue}if(n++,n>=r.length)throw Yh("invalid address: "+t);if(o.path===!0){e.push([i,uu(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function qE(t){let e=[];return t.map(r=>{let n=hs(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),uu(e.join("/"))}function $E(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=hs(e);return e.length>1?[r.code,zh(r.code,e[1])]:[r.code]})}function ou(t){return t.map(e=>{let r=hs(e);return e[1]!=null?[r.code,$h(r.code,e[1])]:[r.code]})}function su(t){return fs(Me(t.map(e=>{let r=hs(e),n=Uint8Array.from(li.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=Me([n,e[1]])),n})))}function au(t,e){return t.size>0?t.size/8:t.size===0?0:li.default.decode(e)+(li.default.decode.bytes??0)}function ls(t){let e=[],r=0;for(;r<t.length;){let n=li.default.decode(t,r),i=li.default.decode.bytes??0,o=j(n),s=au(o,t.slice(r+i));if(s===0){e.push([n]),r+=i;continue}let a=t.slice(r+i,r+i+s);if(r+=s+i,r>t.length)throw Yh("Invalid address Uint8Array: "+$(t,"base16"));e.push([n,a])}return e}function cu(t){let e=ls(t),r=ou(e);return qE(r)}function zE(t){t=uu(t);let e=VE(t),r=$E(e);return su(r)}function Gh(t){return zE(t)}function fs(t){let e=HE(t);if(e!=null)throw e;return Uint8Array.from(t)}function HE(t){try{ls(t)}catch(e){return e}}function uu(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Yh(t){return new Error("Error parsing address: "+t)}function hs(t){return j(t[0])}var fu=M(us(),1);var vr=class extends Error{constructor(e="The operation was aborted"){super(e),this.code=vr.code,this.type=vr.type}static get code(){return"ABORT_ERR"}static get type(){return"aborted"}},w=class extends Error{constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};function xe(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 fi=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)},lu=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},Xi,Zi,Ji,Wh,YE=Symbol.for("nodejs.util.inspect.custom"),WE=[j("dns").code,j("dns4").code,j("dns6").code,j("dnsaddr").code],hu=new Map,Qh=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Xh(t,e){if(t==null)throw new Error("requires node address object");if(e==null)throw new Error("requires transport protocol");let r,n=t.address;switch(t.family){case 4:r="ip4";break;case 6:if(r="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],r=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new jt("/"+[r,n,e,t.port].join("/"))}function br(t){return!!t?.[Qh]}var jt=class{constructor(e){if(Xi.set(this,void 0),Zi.set(this,void 0),Ji.set(this,void 0),this[Wh]=!0,e==null&&(e=""),e instanceof Uint8Array)this.bytes=fs(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=Gh(e)}else if(br(e))this.bytes=fs(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return fi(this,Xi,"f")==null&&lu(this,Xi,cu(this.bytes),"f"),fi(this,Xi,"f")}toJSON(){return this.toString()}toOptions(){let e,r,n,i,o="",s=j("tcp"),a=j("udp"),c=j("ip4"),u=j("ip6"),l=j("dns6"),f=j("ip6zone");for(let[d,p]of this.stringTuples())d===f.code&&(o=`%${p??""}`),WE.includes(d)&&(r=s.name,i=443,n=`${p??""}${o}`,e=d===l.code?6:4),(d===s.code||d===a.code)&&(r=j(d).name,i=parseInt(p??"")),(d===c.code||d===u.code)&&(r=j(d).name,n=`${p??""}${o}`,e=d===u.code?6:4);if(e==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:r,port:i}}protos(){return this.protoCodes().map(e=>Object.assign({},j(e)))}protoCodes(){let e=[],r=this.bytes,n=0;for(;n<r.length;){let i=fu.default.decode(r,n),o=fu.default.decode.bytes??0,s=j(i),a=au(s,r.slice(n+o));n+=a+o,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return fi(this,Zi,"f")==null&&lu(this,Zi,ls(this.bytes),"f"),fi(this,Zi,"f")}stringTuples(){return fi(this,Ji,"f")==null&&lu(this,Ji,ou(this.tuples()),"f"),fi(this,Ji,"f")}encapsulate(e){return e=new jt(e),new jt(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 jt(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 jt(su(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Qi.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?$(Oe.decode(`z${n}`),"base58btc"):$(Ee.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let e=null;try{e=this.stringTuples().filter(r=>j(r[0]).path===!0)[0][1],e==null&&(e=null)}catch{e=null}return e}equals(e){return xe(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=hu.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(o=>new jt(o))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[(Xi=new WeakMap,Zi=new WeakMap,Ji=new WeakMap,Wh=Qh,YE)](){return`Multiaddr(${cu(this.bytes)})`}};function Te(t){return new jt(t)}function QE(t){return t[Symbol.asyncIterator]!=null}function XE(t){if(QE(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var du=XE;function ZE(t){return t[Symbol.asyncIterator]!=null}function JE(t,e){return ZE(t)?async function*(){yield*(await du(t)).sort(e)}():function*(){yield*du(t).sort(e)}()}var pu=JE;function jE(t){return t[Symbol.asyncIterator]!=null}function ex(t){if(jE(t))return(async()=>{for await(let e of t);})();for(let e of t);}var mu=ex;function tx(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var ds=tx;function rx(t){return t[Symbol.asyncIterator]!=null}function nx(t,e){if(rx(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=ds(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=e(n);if(typeof o.then=="function")return async function*(){await o&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let s=e;return function*(){o===!0&&(yield n);for(let a of r)s(a)&&(yield a)}()}var Ut=nx;function ix(t){return t[Symbol.asyncIterator]!=null}function ox(t,e){return ix(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var yu=ox;var ps=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await mu(this.putMany(e,n)),e=[],await mu(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=Ut(n,o=>o.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>Ut(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>pu(i,o),n)),e.offset!=null){let i=0,o=e.offset;n=Ut(n,()=>i++>=o)}return e.limit!=null&&(n=yu(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=Ut(n,o=>o.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>Ut(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>pu(i,o),n)),e.offset!=null){let i=e.offset,o=0;n=Ut(n,()=>o++>=i)}return e.limit!=null&&(n=yu(n,e.limit)),n}};var ms=(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 _r="/",Zh=new TextEncoder().encode(_r),ys=Zh[0],Ne=class{constructor(e,r){if(typeof e=="string")this._buf=F(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]!==ys)throw new Error("Invalid key")}toString(e="utf8"){return $(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new Ne(e.join(_r))}static random(){return new Ne(ms().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new Ne(e):typeof e.uint8Array=="function"?new Ne(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Zh),this._buf[0]!==ys){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ys,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ys;)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 o=r[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return r.length<n.length}reverse(){return Ne.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(_r).slice(1)}type(){return sx(this.baseNamespace())}name(){return ax(this.baseNamespace())}instance(e){return new Ne(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(_r)||(e+=_r),e+=this.type(),new Ne(e)}parent(){let e=this.list();return e.length===1?new Ne(_r):new Ne(e.slice(0,-1).join(_r))}child(e){return this.toString()===_r?e:e.toString()===_r?this:new Ne(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 Ne.withNamespaces([...this.namespaces(),...cx(e.map(r=>r.namespaces()))])}};function sx(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ax(t){let e=t.split(":");return e[e.length-1]}function cx(t){return[].concat(...t)}var ed=M(gs(),1);function td(t){return t=t??new Error("Not Found"),(0,ed.default)(t,"ERR_NOT_FOUND")}var ws=class extends ps{constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw td();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new Ne(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new Ne(e)}};var W;(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"})(W||(W={}));var S;(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",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(S||(S={}));function fx(t){return t[Symbol.asyncIterator]!=null}function hx(t,e){if(fx(t))return async function*(){for await(let a of t)yield e(a)}();let r=ds(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=e(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let a of r)yield e(a)}();let s=e;return function*(){yield o;for(let a of r)yield s(a)}()}var Es=hx;async function*ji(t,e){yield*Es(t,async r=>(await e.addressBook.add(r.id,r.multiaddrs),r))}function xs(t){let e=new Set;return Ut(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*vs(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw new w(`more peers required, seen: ${r} min: ${e}`,"NOT_FOUND")}var _d=M(qr(),1);var _s=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}},hi=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new _s(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 _s(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 Sn(t={}){return mx(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 mx(t,e){e=e??{};let r=e.onEnd,n=new hi,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((m,y)=>{o=g=>{o=null,n.push(g);try{m(t(n))}catch(x){y(x)}return i}}):t(n),c=m=>o!=null?o(m):(n.push(m),i),u=m=>(n=new hi,o!=null?o({error:m}):(n.push({error:m}),i)),l=m=>{if(s)return i;if(e?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>s?i:(s=!0,m!=null?u(m):c({done:!0})),h=()=>(n=new hi,f(),{done:!0}),d=m=>(f(m),{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(m){return p.throw(m),r!=null&&(r(m),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(m){return p.end(m),r!=null&&(r(m),r=void 0),i},get readableLength(){return p.readableLength}},i}function yx(t){return t[Symbol.asyncIterator]!=null}function gx(...t){let e=[];for(let r of t)yx(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=Sn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var $r=gx;function Ue(t,...e){if(t==null)throw new Error("Empty pipeline");if(wu(t)){let n=t;t=()=>n.source}else if(ud(t)||cd(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&wu(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++)wu(r[n])&&(r[n]=Ex(r[n]));return wx(...r)}var wx=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},cd=t=>t?.[Symbol.asyncIterator]!=null,ud=t=>t?.[Symbol.iterator]!=null,wu=t=>t==null?!1:t.sink!=null&&t.source!=null,Ex=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=Sn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=t.source;if(cd(o))i=async function*(){yield*o,n.end()};else if(ud(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return $r(n,i())}return t.source};async function dt(t){for await(let e of t)return e}async function zr(t){for await(let e of t);}var Is=M(fd(),1),Sd=M(Sr(),1),bd=U("libp2p:peer-routing"),Rs=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,Is.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new _d.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,Sd.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await zr(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(e){bd.error(e)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,Is.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(e,r){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw new w("Should not try to find self",S.ERR_FIND_SELF);let n=await Ue($r(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(o){bd.error(o)}}())),i=>Ut(i,Boolean),i=>ji(i,this.components.peerStore),async i=>await dt(i));if(n!=null)return n;throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ue($r(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>ji(n,this.components.peerStore),n=>xs(n),n=>vs(n))}};var Ts=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 new w("No content this.routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ue($r(...this.routers.map(n=>n.findProviders(e,r))),n=>ji(n,this.components.peerStore),n=>xs(n),n=>vs(n))}async provide(e,r={}){if(this.routers.length===0)throw new w("No content routers available",S.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await zr(i.put(e,r,n))}async get(e,r){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.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 new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getMany(e,r,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);if(r==null||r===0)return;let i=0,o=this.components.dht;if(o!=null){for await(let s of o.get(e,n))if(s.name==="VALUE"&&(yield{from:s.from,val:s.value},i++,i===r))break}if(i===0)throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}};var xu=Symbol.for("@libp2p/peer-id");function Ad(t){return t!=null&&!!t[xu]}var Dx=Symbol.for("nodejs.util.inspect.custom"),Rd=Object.values(Vr).map(t=>t.decoder).reduce((t,e)=>t.or(e),Vr.identity.decoder),Id=114,vu=36,bu=37,to=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[xu](){return!0}toString(){return this.string==null&&(this.string=Oe.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ee.createV1(Id,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return xe(this.multihash.bytes,e);if(typeof e=="string")return ae(e).equals(this);if(e?.multihash?.bytes!=null)return xe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[Dx](){return`PeerId(${this.toString()})`}},An=class extends to{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Rn=class extends to{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},In=class extends to{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Fe(t){if(t.type==="RSA")return new An(t);if(t.type==="Ed25519")return new Rn(t);if(t.type==="secp256k1")return new In(t);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function ae(t,e){if(e=e??Rd,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=vn(Oe.decode(`z${t}`));return t.startsWith("12D")?new Rn({multihash:r}):t.startsWith("16U")?new In({multihash:r}):new An({multihash:r})}return Hr(Rd.decode(t))}function Hr(t){try{let e=vn(t);if(e.code===Kr.code){if(e.digest.length===vu)return new Rn({multihash:e});if(e.digest.length===bu)return new In({multihash:e})}if(e.code===nt.code)return new An({multihash:e})}catch{return Bx(Ee.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function Bx(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==Id)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===nt.code)return new An({multihash:t.multihash});if(e.code===Kr.code){if(e.digest.length===vu)return new Rn({multihash:t.multihash});if(e.digest.length===bu)return new In({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Gr(t,e){return t.length===vu?new Rn({multihash:Zt(Kr.code,t),privateKey:e}):t.length===bu?new In({multihash:Zt(Kr.code,t),privateKey:e}):new An({multihash:await nt.digest(t),publicKey:t,privateKey:e})}var Lx=t=>t;function _u(t,e){let r=t.getPeerId();return r!=null&&ae(r).equals(e)&&(t=t.decapsulate(Te(`/p2p/${e.toString()}`))),t}var Cs=class extends Xe{constructor(e,r){super();let{listen:n=[],announce:i=[]}=r;this.components=e,this.listen=n.map(o=>o.toString()),this.announce=new Set(i.map(o=>o.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Lx}getListenAddrs(){return Array.from(this.listen).map(e=>Te(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>Te(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>Te(e))}addObservedAddr(e){e=_u(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=_u(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this.dispatchEvent(new G("change:addresses"))}removeObservedAddr(e){e=_u(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>Te(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var rp=M(Sr(),1);var Td="keep-alive";var np=M(_0(),1);var pv=U("libp2p:get-peer");function Bs(t){if(Ad(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:ae(r),t.forEach(n=>{if(!br(n))throw pv.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",S.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",S.ERR_INVALID_PARAMETERS)}else{let o=ae(i);if(e==null||!e.equals(o))throw new w("Multiaddrs must all have the same peer id or have no peer id",S.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function Ar(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 Rr=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 Ar(this.map.entries(),e=>[ae(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,ae(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 Ar(this.map.keys(),e=>ae(e))}values(){return this.map.values()}get size(){return this.map.size}};var Ir=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 Ar(this.set.entries(),e=>{let r=ae(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=ae(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return Ar(this.set.values(),e=>ae(e))}intersection(e){let r=new Ir;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new Ir;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new Ir;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var Ei=class{constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return Ar(this.list.entries(),e=>ae(e[1]))}concat(e){let r=new Ei(this);for(let n of e)r.push(n);return r}entries(){return Ar(this.list.entries(),e=>[e[0],ae(e[1])])}every(e){return this.list.every((r,n)=>e(ae(r),n,this))}filter(e){let r=new Ei;return this.list.forEach((n,i)=>{let o=ae(n);e(o,i,this)&&r.push(o)}),r}find(e){let r=this.list.find((n,i)=>e(ae(n),i,this));if(r!=null)return ae(r)}findIndex(e){return this.list.findIndex((r,n)=>e(ae(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(ae(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 ae(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return ae(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 N0=M(A0(),1);var oo=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Uu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},R0=t=>globalThis.DOMException===void 0?new Uu(t):new DOMException(t),I0=t=>{let e=t.reason===void 0?R0("This operation was aborted."):t.reason;return e instanceof Error?e:R0(e)};function Fu(t,e,r,n){let i,o=new Promise((s,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){s(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(I0(c)),c.addEventListener("abort",()=>{a(I0(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new oo(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{s(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function Ku(t,e,r){let n=0,i=t.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(t[s],e)<=0?(n=++s,i-=o+1):i=o}return n}var Cn=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)},Tr,so=class{constructor(){Tr.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&Cn(this,Tr,"f")[this.size-1].priority>=r.priority){Cn(this,Tr,"f").push(n);return}let i=Ku(Cn(this,Tr,"f"),n,(o,s)=>s.priority-o.priority);Cn(this,Tr,"f").splice(i,0,n)}dequeue(){let e=Cn(this,Tr,"f").shift();return e?.run}filter(e){return Cn(this,Tr,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return Cn(this,Tr,"f").length}};Tr=new WeakMap;var Le=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},N=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Ke,co,uo,Wr,Us,lo,Ps,Ft,ao,bt,Ns,_t,fo,Yr,ks,T0,C0,L0,D0,B0,Os,Vu,qu,Fs,P0,Ms,Ks=class extends Error{},Kt=class extends N0.default{constructor(e){var r,n,i,o;if(super(),Ke.add(this),co.set(this,void 0),uo.set(this,void 0),Wr.set(this,0),Us.set(this,void 0),lo.set(this,void 0),Ps.set(this,0),Ft.set(this,void 0),ao.set(this,void 0),bt.set(this,void 0),Ns.set(this,void 0),_t.set(this,0),fo.set(this,void 0),Yr.set(this,void 0),ks.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:so,...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 \`${(o=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof e.interval})`);Le(this,co,e.carryoverConcurrencyCount,"f"),Le(this,uo,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),Le(this,Us,e.intervalCap,"f"),Le(this,lo,e.interval,"f"),Le(this,bt,new e.queueClass,"f"),Le(this,Ns,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,Le(this,ks,e.throwOnTimeout===!0,"f"),Le(this,Yr,e.autoStart===!1,"f")}get concurrency(){return N(this,fo,"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})`);Le(this,fo,e,"f"),N(this,Ke,"m",Fs).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:N(this,ks,"f"),...r},new Promise((n,i)=>{N(this,bt,"f").enqueue(async()=>{var o,s,a;Le(this,_t,(s=N(this,_t,"f"),s++,s),"f"),Le(this,Wr,(a=N(this,Wr,"f"),a++,a),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new Ks("The task was aborted.");let c=e({signal:r.signal});r.timeout&&(c=Fu(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,N(this,Ke,"m",P0).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof oo&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{N(this,Ke,"m",L0).call(this)}},r),this.emit("add"),N(this,Ke,"m",Os).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return N(this,Yr,"f")?(Le(this,Yr,!1,"f"),N(this,Ke,"m",Fs).call(this),this):this}pause(){Le(this,Yr,!0,"f")}clear(){Le(this,bt,new(N(this,Ns,"f")),"f")}async onEmpty(){N(this,bt,"f").size!==0&&await N(this,Ke,"m",Ms).call(this,"empty")}async onSizeLessThan(e){N(this,bt,"f").size<e||await N(this,Ke,"m",Ms).call(this,"next",()=>N(this,bt,"f").size<e)}async onIdle(){N(this,_t,"f")===0&&N(this,bt,"f").size===0||await N(this,Ke,"m",Ms).call(this,"idle")}get size(){return N(this,bt,"f").size}sizeBy(e){return N(this,bt,"f").filter(e).length}get pending(){return N(this,_t,"f")}get isPaused(){return N(this,Yr,"f")}};co=new WeakMap,uo=new WeakMap,Wr=new WeakMap,Us=new WeakMap,lo=new WeakMap,Ps=new WeakMap,Ft=new WeakMap,ao=new WeakMap,bt=new WeakMap,Ns=new WeakMap,_t=new WeakMap,fo=new WeakMap,Yr=new WeakMap,ks=new WeakMap,Ke=new WeakSet,T0=function(){return N(this,uo,"f")||N(this,Wr,"f")<N(this,Us,"f")},C0=function(){return N(this,_t,"f")<N(this,fo,"f")},L0=function(){var e;Le(this,_t,(e=N(this,_t,"f"),e--,e),"f"),N(this,Ke,"m",Os).call(this),this.emit("next")},D0=function(){N(this,Ke,"m",qu).call(this),N(this,Ke,"m",Vu).call(this),Le(this,ao,void 0,"f")},B0=function(){let e=Date.now();if(N(this,Ft,"f")===void 0){let r=N(this,Ps,"f")-e;if(r<0)Le(this,Wr,N(this,co,"f")?N(this,_t,"f"):0,"f");else return N(this,ao,"f")===void 0&&Le(this,ao,setTimeout(()=>{N(this,Ke,"m",D0).call(this)},r),"f"),!0}return!1},Os=function(){if(N(this,bt,"f").size===0)return N(this,Ft,"f")&&clearInterval(N(this,Ft,"f")),Le(this,Ft,void 0,"f"),this.emit("empty"),N(this,_t,"f")===0&&this.emit("idle"),!1;if(!N(this,Yr,"f")){let e=!N(this,Ke,"a",B0);if(N(this,Ke,"a",T0)&&N(this,Ke,"a",C0)){let r=N(this,bt,"f").dequeue();return r?(this.emit("active"),r(),e&&N(this,Ke,"m",Vu).call(this),!0):!1}}return!1},Vu=function(){N(this,uo,"f")||N(this,Ft,"f")!==void 0||(Le(this,Ft,setInterval(()=>{N(this,Ke,"m",qu).call(this)},N(this,lo,"f")),"f"),Le(this,Ps,Date.now()+N(this,lo,"f"),"f"))},qu=function(){N(this,Wr,"f")===0&&N(this,_t,"f")===0&&N(this,Ft,"f")&&(clearInterval(N(this,Ft,"f")),Le(this,Ft,void 0,"f")),Le(this,Wr,N(this,co,"f")?N(this,_t,"f"):0,"f"),N(this,Ke,"m",Fs).call(this)},Fs=function(){for(;N(this,Ke,"m",Os).call(this););},P0=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Ks("The task was aborted."))},{once:!0})})},Ms=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var er=U("libp2p:connection-manager:auto-dial"),Vs={minConnections:50,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3},qs=class{constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??Vs.minConnections,this.autoDialPriority=r.autoDialPriority??Vs.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??Vs.autoDialInterval,this.started=!1,this.queue=new Kt({concurrency:r.autoDialConcurrency??Vs.autoDialConcurrency}),this.queue.addListener("error",n=>{er.error("error during auto-dial",n)})}isStarted(){return this.started}start(){this.autoDialInterval=setInterval(()=>{this.autoDial().catch(e=>{er.error("error while autodialing",e)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(e=>{er.error("error while autodialing",e)})}stop(){this.queue.clear(),clearInterval(this.autoDialInterval),this.started=!1}async autoDial(){let e=this.connectionManager.getConnections().length;if(e>=this.minConnections){er("have enough connections %d/%d",e,this.minConnections);return}er("not enough connections %d/%d - will dial peers to increase the number of connections",e,this.minConnections);let r=await this.peerStore.all();er("loaded %d peers from the peer store",r.length),r=r.filter(o=>o.addresses.length!==0),r=r.sort(()=>Math.random()>.5?1:-1);let n=new Rr;for(let o of r){if(n.has(o.id))continue;let s=await this.peerStore.getTags(o.id);n.set(o.id,(s??[]).reduce((a,c)=>a+c.value,0))}let i=r.sort((o,s)=>{let a=n.get(o.id)??0,c=n.get(s.id)??0;return a>c?-1:a<c?1:0});er("selected %d peers to dial",i.length);for(let o of i)this.queue.add(async()=>{let s=this.connectionManager.getConnections().length;if(s>=this.minConnections){er("got enough connections now %d/%d",s,this.minConnections),this.queue.clear();return}er("connecting to a peerStore stored peer %p",o.id),await this.connectionManager.openConnection(o.id,{priority:this.autoDialPriority})}).catch(s=>{er.error("could not connect to peerStore stored peer",s)})}};var ep=M(qr(),1);var V0=M(k0(),1);var O0="[a-fA-F\\d:]",Qr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${O0})|(?<=${O0})(?=\\s|$))`:"",Vt="(?: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}",ze="[a-fA-F\\d]{1,4}",$s=`
39
38
  (?:
40
- (?:${Yt}:){7}(?:${Yt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
41
- (?:${Yt}:){6}(?:${Xe}|:${Yt}|:)| // 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
42
- (?:${Yt}:){5}(?::${Xe}|(?::${Yt}){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
43
- (?:${Yt}:){4}(?:(?::${Yt}){0,1}:${Xe}|(?::${Yt}){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
44
- (?:${Yt}:){3}(?:(?::${Yt}){0,2}:${Xe}|(?::${Yt}){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
45
- (?:${Yt}:){2}(?:(?::${Yt}){0,3}:${Xe}|(?::${Yt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
46
- (?:${Yt}:){1}(?:(?::${Yt}){0,4}:${Xe}|(?::${Yt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
47
- (?::(?:(?::${Yt}){0,5}:${Xe}|(?::${Yt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
39
+ (?:${ze}:){7}(?:${ze}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
+ (?:${ze}:){6}(?:${Vt}|:${ze}|:)| // 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
+ (?:${ze}:){5}(?::${Vt}|(?::${ze}){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
+ (?:${ze}:){4}(?:(?::${ze}){0,1}:${Vt}|(?::${ze}){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
+ (?:${ze}:){3}(?:(?::${ze}){0,2}:${Vt}|(?::${ze}){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
+ (?:${ze}:){2}(?:(?::${ze}){0,3}:${Vt}|(?::${ze}){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
+ (?:${ze}:){1}(?:(?::${ze}){0,4}:${Vt}|(?::${ze}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
+ (?::(?:(?::${ze}){0,5}:${Vt}|(?::${ze}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
48
47
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
49
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),LS=new RegExp(`(?:^${Xe}$)|(?:^${Oa}$)`),PS=new RegExp(`^${Xe}$`),NS=new RegExp(`^${Oa}$`),sf=r=>r&&r.exact?LS:new RegExp(`(?:${ln(r)}${Xe}${ln(r)})|(?:${ln(r)}${Oa}${ln(r)})`,"g");sf.v4=r=>r&&r.exact?PS:new RegExp(`${ln(r)}${Xe}${ln(r)}`,"g");sf.v6=r=>r&&r.exact?NS:new RegExp(`${ln(r)}${Oa}${ln(r)}`,"g");var Fg=sf;var zg=N(Vg(),1),{isValid:kS,parse:OS}=zg.default,MS=["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"],US=MS.map(r=>new $g.Netmask(r));function FS(r){for(let t of US)if(t.contains(r))return!0;return!1}function qg(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}var Hg=r=>{if(kS(r)){let t=OS(r);if(t.kind()==="ipv4")return FS(t.toNormalizedString());if(t.kind()==="ipv6")return qg(r)}else if(ni(r)&&Fg.v6().test(r))return qg(r)};var Yn=Hg;function Gg(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function Yg(r){let{address:t}=r.nodeAddress();return Gg(t)}var of=U("libp2p:nat"),af=7200;function KS(r=1024,t=65535){return Math.floor(Math.random()*(t-r+1)+r)}var Ua=class{constructor(t,e){if(this.components=t,this.started=!1,this.enabled=e.enabled,this.externalAddress=e.externalAddress,this.localAddress=e.localAddress,this.description=e.description??`${hg}@${La} ${this.components.peerId.toString()}`,this.ttl=e.ttl??af,this.keepAlive=e.keepAlive??!0,this.gateway=e.gateway,this.ttl<af)throw new w(`NatManager ttl should be at least ${af} seconds`,S.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Ks||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{of.error(t)}))}async _start(){let t=this.components.transportManager.getAddrs();for(let e of t){let{family:n,host:i,port:s,transport:o}=e.toOptions();if(!e.isThinWaistAddress()||o!=="tcp"||Yg(e)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),l=Yn(c);if(l===!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(l==null)throw new Error(`${c} is not an IP address`);let u=KS();of(`opening uPnP connection from ${c}:${u} to ${i}:${s}`),await a.map({publicPort:u,localPort:s,localAddress:this.localAddress,protocol:o.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(Gh({family:4,address:c,port:u},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await Tg({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Ks||this.client==null))try{await this.client.close(),this.client=void 0}catch(t){of.error(t)}}};var VS=U("libp2p:peer-record-updater"),Fa=class{constructor(t){this.components=t,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 t=new Gt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(j("p2p").code))}),e=await Zt.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(e)}).catch(t=>{VS.error("Could not update self peer record: %o",t)})}};var Ka=class{constructor(t){this.dht=t}async findPeer(t,e={}){for await(let n of this.dht.findPeer(t,e))if(n.name==="FINAL_PEER")return n.peer;throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getClosestPeers(t,e={}){for await(let n of this.dht.getClosestPeers(t,e))n.name==="FINAL_PEER"&&(yield n.peer)}};var Y={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};var wt=U("libp2p:peer-store:address-book"),Va="change:multiaddrs";async function qS(){return!0}var qa=class{constructor(t,e,n){this.dispatchEvent=t,this.store=e,this.addressFilter=n??qS}async consumePeerRecord(t){wt.trace("consumePeerRecord await write lock");let e=await this.store.lock.writeLock();wt.trace("consumePeerRecord got write lock");let n,i,s;try{let o;try{o=Gt.createFromProtobuf(t.payload)}catch{return wt.error("invalid peer record received"),!1}n=o.peerId;let a=o.multiaddrs;if(!n.equals(t.peerId))return wt("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 l=await Zt.createFromProtobuf(i.peerRecordEnvelope),u=Gt.createFromProtobuf(l.payload);if(u.seqNumber>=o.seqNumber)return wt("sequence number was lower or equal to existing sequence number - stored: %d received: %d",u.seqNumber,o.seqNumber),!1}let c=await cf(n,a,this.addressFilter,!0);s=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:t.marshal().subarray()}),wt("stored provided peer record for %p",o.peerId)}finally{wt.trace("consumePeerRecord release write lock"),e()}return this.dispatchEvent(new $(Va,{detail:{peerId:n,multiaddrs:s.addresses.map(({multiaddr:o})=>o),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:o})=>o)}})),!0}async getRawEnvelope(t){wt.trace("getRawEnvelope await read lock");let e=await this.store.lock.readLock();wt.trace("getRawEnvelope got read lock");try{return(await this.store.load(t)).peerRecordEnvelope}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{wt.trace("getRawEnvelope release read lock"),e()}}async getPeerRecord(t){let e=await this.getRawEnvelope(t);if(e!=null)return await Zt.createFromProtobuf(e)}async get(t){t=Kt(t),wt.trace("get wait for read lock");let e=await this.store.lock.readLock();wt.trace("get got read lock");try{return(await this.store.load(t)).addresses}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{wt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Kt(t),!Array.isArray(e))throw wt.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);wt.trace("set await write lock");let n=await this.store.lock.writeLock();wt.trace("set got write lock");let i=!1,s,o;try{let a=await cf(t,e,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(t),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!==Y.ERR_NOT_FOUND)throw c}o=await this.store.patchOrCreate(t,{addresses:a}),wt("set multiaddrs for %p",t)}finally{wt.trace("set multiaddrs for %p",t),wt("set release write lock"),n()}this.dispatchEvent(new $(Va,{detail:{peerId:t,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async add(t,e){if(t=Kt(t),!Array.isArray(e))throw wt.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);wt.trace("add await write lock");let n=await this.store.lock.writeLock();wt.trace("add got write lock");let i,s,o;try{let a=await cf(t,e,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(t),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!==Y.ERR_NOT_FOUND)throw c}o=await this.store.mergeOrCreate(t,{addresses:a}),wt("added multiaddrs for %p",t)}finally{wt.trace("set release write lock"),n()}this.dispatchEvent(new $(Va,{detail:{peerId:t,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async delete(t){t=Kt(t),wt.trace("delete await write lock");let e=await this.store.lock.writeLock();wt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{addresses:[]})}finally{wt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $(Va,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function cf(r,t,e,n=!1){let i=[];return await Promise.all(t.map(async s=>{if(!ve(s))throw wt.error("multiaddr must be an instance of Multiaddr"),new w("multiaddr must be an instance of Multiaddr",Y.ERR_INVALID_PARAMETERS);await e(r,s)&&i.push({multiaddr:s,isCertified:n})})),i}var mr=U("libp2p:peer-store:key-book"),Wg="change:pubkey",$a=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async set(t,e){if(t=Kt(t),!(e instanceof Uint8Array))throw mr.error("publicKey must be an instance of Uint8Array to store data"),new w("publicKey must be an instance of PublicKey",Y.ERR_INVALID_PARAMETERS);mr.trace("set await write lock");let n=await this.store.lock.writeLock();mr.trace("set got write lock");let i=!1,s;try{try{if(s=await this.store.load(t),s.pubKey!=null&&xt(s.pubKey,e))return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}await this.store.patchOrCreate(t,{pubKey:e}),i=!0}finally{mr.trace("set release write lock"),n()}i&&this.dispatchEvent(new $(Wg,{detail:{peerId:t,publicKey:e,oldPublicKey:s?.pubKey}}))}async get(t){t=Kt(t),mr.trace("get await write lock");let e=await this.store.lock.readLock();mr.trace("get got write lock");try{return(await this.store.load(t)).pubKey}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{mr("get release write lock"),e()}}async delete(t){t=Kt(t),mr.trace("delete await write lock");let e=await this.store.lock.writeLock();mr.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{pubKey:void 0})}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{mr.trace("delete release write lock"),e()}this.dispatchEvent(new $(Wg,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Wt=U("libp2p:peer-store:metadata-book"),za="change:metadata",Ha=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){t=Kt(t),Wt.trace("get await read lock");let e=await this.store.lock.readLock();Wt.trace("get got read lock");try{return(await this.store.load(t)).metadata}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Wt.trace("get release read lock"),e()}return new Map}async getValue(t,e){t=Kt(t),Wt.trace("getValue await read lock");let n=await this.store.lock.readLock();Wt.trace("getValue got read lock");try{return(await this.store.load(t)).metadata.get(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{Wt.trace("getValue release write lock"),n()}}async set(t,e){if(t=Kt(t),!(e instanceof Map))throw Wt.error("valid metadata must be provided to store data"),new w("valid metadata must be provided",Y.ERR_INVALID_PARAMETERS);Wt.trace("set await write lock");let n=await this.store.lock.writeLock();Wt.trace("set got write lock");let i;try{try{i=await this.store.load(t)}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}await this.store.mergeOrCreate(t,{metadata:e})}finally{Wt.trace("set release write lock"),n()}this.dispatchEvent(new $(za,{detail:{peerId:t,metadata:e,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(t,e,n){if(t=Kt(t),typeof e!="string"||!(n instanceof Uint8Array))throw Wt.error("valid key and value must be provided to store data"),new w("valid key and value must be provided",Y.ERR_INVALID_PARAMETERS);Wt.trace("setValue await write lock");let i=await this.store.lock.writeLock();Wt.trace("setValue got write lock");let s,o;try{try{s=await this.store.load(t);let a=s.metadata.get(e);if(a!=null&&xt(n,a))return}catch(a){if(a.code!==Y.ERR_NOT_FOUND)throw a}o=await this.store.mergeOrCreate(t,{metadata:new Map([[e,n]])})}finally{Wt.trace("setValue release write lock"),i()}this.dispatchEvent(new $(za,{detail:{peerId:t,metadata:o.metadata,oldMetadata:s==null?new Map:s.metadata}}))}async delete(t){t=Kt(t),Wt.trace("delete await write lock");let e=await this.store.lock.writeLock();Wt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(t,{metadata:new Map})}finally{Wt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $(za,{detail:{peerId:t,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(t,e){t=Kt(t),Wt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();Wt.trace("deleteValue got write lock");let i,s;try{s=await this.store.load(t),i=s.metadata,i.delete(e),await this.store.patch(t,{metadata:i})}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}finally{Wt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new $(za,{detail:{peerId:t,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var Qt=U("libp2p:peer-store:proto-book"),Ga="change:protocols",Ya=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){Qt.trace("get wait for read lock");let e=await this.store.lock.readLock();Qt.trace("get got read lock");try{return(await this.store.load(t)).protocols}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Qt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("set await write lock");let n=await this.store.lock.writeLock();Qt.trace("set got write lock");let i,s;try{try{if(i=await this.store.load(t),new Set([...e]).size===i.protocols.length)return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(t,{protocols:e}),Qt("stored provided protocols for %p",t)}finally{Qt.trace("set release write lock"),n()}this.dispatchEvent(new $(Ga,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("add await write lock");let n=await this.store.lock.writeLock();Qt.trace("add got write lock");let i,s;try{try{if(i=await this.store.load(t),new Set([...i.protocols,...e]).size===i.protocols.length)return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.mergeOrCreate(t,{protocols:e}),Qt("added provided protocols for %p",t)}finally{Qt.trace("add release write lock"),n()}this.dispatchEvent(new $(Ga,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("remove await write lock");let n=await this.store.lock.writeLock();Qt.trace("remove got write lock");let i,s;try{try{i=await this.store.load(t);let o=new Set(i.protocols);for(let a of e)o.delete(a);if(i.protocols.length===o.size)return;e=Array.from(o)}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(t,{protocols:e})}finally{Qt.trace("remove release write lock"),n()}this.dispatchEvent(new $(Ga,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(t){t=Kt(t),Qt.trace("delete await write lock");let e=await this.store.lock.writeLock();Qt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{protocols:[]})}finally{Qt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $(Ga,{detail:{peerId:t,protocols:[],oldProtocols:n.protocols}}))}};var qs;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.addresses!=null)for(let s of e.addresses)n.uint32(10),Wa.codec().encode(s,n);if(e.protocols!=null)for(let s of e.protocols)n.uint32(18),n.string(s);if(e.metadata!=null)for(let s of e.metadata)n.uint32(26),Qa.codec().encode(s,n);e.pubKey!=null&&(n.uint32(34),n.bytes(e.pubKey)),e.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(e.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={addresses:[],protocols:[],metadata:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.addresses.push(Wa.codec().decode(e,e.uint32()));break;case 2:i.protocols.push(e.string());break;case 3:i.metadata.push(Qa.codec().decode(e,e.uint32()));break;case 4:i.pubKey=e.bytes();break;case 5:i.peerRecordEnvelope=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(qs||(qs={}));var Wa;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.multiaddr=e.bytes();break;case 2:i.isCertified=e.bool();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Wa||(Wa={}));var Qa;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.key!=null&&e.key!==""&&(n.uint32(10),n.string(e.key)),e.value!=null&&e.value.byteLength>0&&(n.uint32(18),n.bytes(e.value)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={key:"",value:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.key=e.string();break;case 2:i.value=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Qa||(Qa={}));var sw=N(Xg(),1);var zs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},uf=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Zg=r=>globalThis.DOMException===void 0?new uf(r):new DOMException(r),Jg=r=>{let t=r.reason===void 0?Zg("This operation was aborted."):r.reason;return t instanceof Error?t:Zg(t)};function ff(r,t,e,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(r);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(Jg(c)),c.addEventListener("abort",()=>{a(Jg(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof e=="function"){try{o(e())}catch(u){a(u)}return}let c=typeof e=="string"?e:`Promise timed out after ${t} milliseconds`,l=e instanceof Error?e:new zs(c);typeof r.cancel=="function"&&r.cancel(),a(l)},t),(async()=>{try{o(await r)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function hf(r,t,e){let n=0,i=r.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;e(r[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Wn=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Mr,Hs=class{constructor(){Mr.set(this,[])}enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&Wn(this,Mr,"f")[this.size-1].priority>=e.priority){Wn(this,Mr,"f").push(n);return}let i=hf(Wn(this,Mr,"f"),n,(s,o)=>o.priority-s.priority);Wn(this,Mr,"f").splice(i,0,n)}dequeue(){let t=Wn(this,Mr,"f").shift();return t?.run}filter(t){return Wn(this,Mr,"f").filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return Wn(this,Mr,"f").length}};Mr=new WeakMap;var Dt=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},k=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},$t,Ys,Ws,fn,rc,Qs,Za,Ze,Gs,Ie,Ja,Te,Xs,un,ja,jg,tw,nw,ew,rw,tc,df,pf,nc,iw,ec,ic=class extends Error{},Ki=class extends sw.default{constructor(t){var e,n,i,s;if(super(),$t.add(this),Ys.set(this,void 0),Ws.set(this,void 0),fn.set(this,0),rc.set(this,void 0),Qs.set(this,void 0),Za.set(this,0),Ze.set(this,void 0),Gs.set(this,void 0),Ie.set(this,void 0),Ja.set(this,void 0),Te.set(this,0),Xs.set(this,void 0),un.set(this,void 0),ja.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Hs,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(e=t.intervalCap)===null||e===void 0?void 0:e.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Dt(this,Ys,t.carryoverConcurrencyCount,"f"),Dt(this,Ws,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Dt(this,rc,t.intervalCap,"f"),Dt(this,Qs,t.interval,"f"),Dt(this,Ie,new t.queueClass,"f"),Dt(this,Ja,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Dt(this,ja,t.throwOnTimeout===!0,"f"),Dt(this,un,t.autoStart===!1,"f")}get concurrency(){return k(this,Xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Dt(this,Xs,t,"f"),k(this,$t,"m",nc).call(this)}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:k(this,ja,"f"),...e},new Promise((n,i)=>{k(this,Ie,"f").enqueue(async()=>{var s,o,a;Dt(this,Te,(o=k(this,Te,"f"),o++,o),"f"),Dt(this,fn,(a=k(this,fn,"f"),a++,a),"f");try{if(!((s=e.signal)===null||s===void 0)&&s.aborted)throw new ic("The task was aborted.");let c=t({signal:e.signal});e.timeout&&(c=ff(Promise.resolve(c),e.timeout)),e.signal&&(c=Promise.race([c,k(this,$t,"m",iw).call(this,e.signal)]));let l=await c;n(l),this.emit("completed",l)}catch(c){if(c instanceof zs&&!e.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{k(this,$t,"m",nw).call(this)}},e),this.emit("add"),k(this,$t,"m",tc).call(this)})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return k(this,un,"f")?(Dt(this,un,!1,"f"),k(this,$t,"m",nc).call(this),this):this}pause(){Dt(this,un,!0,"f")}clear(){Dt(this,Ie,new(k(this,Ja,"f")),"f")}async onEmpty(){k(this,Ie,"f").size!==0&&await k(this,$t,"m",ec).call(this,"empty")}async onSizeLessThan(t){k(this,Ie,"f").size<t||await k(this,$t,"m",ec).call(this,"next",()=>k(this,Ie,"f").size<t)}async onIdle(){k(this,Te,"f")===0&&k(this,Ie,"f").size===0||await k(this,$t,"m",ec).call(this,"idle")}get size(){return k(this,Ie,"f").size}sizeBy(t){return k(this,Ie,"f").filter(t).length}get pending(){return k(this,Te,"f")}get isPaused(){return k(this,un,"f")}};Ys=new WeakMap,Ws=new WeakMap,fn=new WeakMap,rc=new WeakMap,Qs=new WeakMap,Za=new WeakMap,Ze=new WeakMap,Gs=new WeakMap,Ie=new WeakMap,Ja=new WeakMap,Te=new WeakMap,Xs=new WeakMap,un=new WeakMap,ja=new WeakMap,$t=new WeakSet,jg=function(){return k(this,Ws,"f")||k(this,fn,"f")<k(this,rc,"f")},tw=function(){return k(this,Te,"f")<k(this,Xs,"f")},nw=function(){var t;Dt(this,Te,(t=k(this,Te,"f"),t--,t),"f"),k(this,$t,"m",tc).call(this),this.emit("next")},ew=function(){k(this,$t,"m",pf).call(this),k(this,$t,"m",df).call(this),Dt(this,Gs,void 0,"f")},rw=function(){let t=Date.now();if(k(this,Ze,"f")===void 0){let e=k(this,Za,"f")-t;if(e<0)Dt(this,fn,k(this,Ys,"f")?k(this,Te,"f"):0,"f");else return k(this,Gs,"f")===void 0&&Dt(this,Gs,setTimeout(()=>{k(this,$t,"m",ew).call(this)},e),"f"),!0}return!1},tc=function(){if(k(this,Ie,"f").size===0)return k(this,Ze,"f")&&clearInterval(k(this,Ze,"f")),Dt(this,Ze,void 0,"f"),this.emit("empty"),k(this,Te,"f")===0&&this.emit("idle"),!1;if(!k(this,un,"f")){let t=!k(this,$t,"a",rw);if(k(this,$t,"a",jg)&&k(this,$t,"a",tw)){let e=k(this,Ie,"f").dequeue();return e?(this.emit("active"),e(),t&&k(this,$t,"m",df).call(this),!0):!1}}return!1},df=function(){k(this,Ws,"f")||k(this,Ze,"f")!==void 0||(Dt(this,Ze,setInterval(()=>{k(this,$t,"m",pf).call(this)},k(this,Qs,"f")),"f"),Dt(this,Za,Date.now()+k(this,Qs,"f"),"f"))},pf=function(){k(this,fn,"f")===0&&k(this,Te,"f")===0&&k(this,Ze,"f")&&(clearInterval(k(this,Ze,"f")),Dt(this,Ze,void 0,"f")),Dt(this,fn,k(this,Ys,"f")?k(this,Te,"f"):0,"f"),k(this,$t,"m",nc).call(this)},nc=function(){for(;k(this,$t,"m",tc).call(this););},iw=async function(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(new ic("The task was aborted."))},{once:!0})})},ec=async function(t,e){return new Promise(n=>{let i=()=>{e&&!e()||(this.off(t,i),n())};this.on(t,i)})};var mf=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},yf=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},ow=r=>globalThis.DOMException===void 0?new yf(r):new DOMException(r),aw=r=>{let t=r.reason===void 0?ow("This operation was aborted."):r.reason;return t instanceof Error?t:ow(t)};function gf(r,t){let{milliseconds:e,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,o,a=new Promise((c,l)=>{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){c(r);return}if(t.signal){let{signal:f}=t;f.aborted&&l(aw(f)),f.addEventListener("abort",()=>{l(aw(f))})}let u=new mf;o=s.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){l(f)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?c():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{c(await r)}catch(f){l(f)}finally{s.clearTimeout.call(void 0,o)}})()});return a.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},a}var wf="lock:worker:request-read",Ef="lock:worker:release-read",xf="lock:master:grant-read",vf="lock:worker:request-write",bf="lock:worker:release-write",_f="lock:master:grant-write";var hn={},Vi=r=>{r.addEventListener("message",t=>{Vi.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{Vi.dispatchEvent("message",r,t)})};Vi.addEventListener=(r,t)=>{hn[r]==null&&(hn[r]=[]),hn[r].push(t)};Vi.removeEventListener=(r,t)=>{hn[r]!=null&&(hn[r]=hn[r].filter(e=>e===t))};Vi.dispatchEvent=function(r,t,e){hn[r]!=null&&hn[r].forEach(n=>n(t,e))};var Sf=Vi;var cw=(r,t,e,n,i)=>(s,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let l=u=>{if(u==null||u.data==null)return;let f={type:u.data.type,name:u.data.name,identifier:u.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",l),c())};s.addEventListener("message",l)}))}}))},lw=(r,t,e,n)=>async()=>{let i=ho();return globalThis.postMessage({type:t,identifier:i,name:r}),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===e&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:r})}))};globalThis.addEventListener("message",o)})},HS={singleProcess:!1},uw=r=>{if(r=Object.assign({},HS,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return Sf.addEventListener("message",cw(e,"requestReadLock",wf,Ef,xf)),Sf.addEventListener("message",cw(e,"requestWriteLock",vf,bf,_f)),e}return{isWorker:!0,readLock:e=>lw(e,wf,xf,Ef),writeLock:e=>lw(e,vf,_f,bf)}};var Qn={},dn;async function Af(r,t){let e,n=new Promise(i=>{e=i});return r.add(async()=>await gf((async()=>await new Promise(i=>{e(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var GS=(r,t)=>{if(dn.isWorker===!0)return{readLock:dn.readLock(r,t),writeLock:dn.writeLock(r,t)};let e=new Ki({concurrency:1}),n;return{async readLock(){if(n!=null)return await Af(n,t);n=new Ki({concurrency:t.concurrency,autoStart:!1});let i=n,s=Af(n,t);return e.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await Af(e,t)}}},YS={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Rf(r){let t=Object.assign({},YS,r);return dn==null&&(dn=uw(t),dn.isWorker!==!0&&(dn.addEventListener("requestReadLock",e=>{Qn[e.data.name]!=null&&Qn[e.data.name].readLock().then(async n=>await e.data.handler().finally(()=>n()))}),dn.addEventListener("requestWriteLock",async e=>{Qn[e.data.name]!=null&&Qn[e.data.name].writeLock().then(async n=>await e.data.handler().finally(()=>n()))}))),Qn[t.name]==null&&(Qn[t.name]=GS(t.name,t)),Qn[t.name]}var fw=U("libp2p:peer-store:store"),hw="/peers/",sc=class{constructor(t){this.components=t,this.lock=Rf({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw fw.error("peerId must be an instance of peer-id to store data"),new w("peerId must be an instance of peer-id",Y.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new Nt(`${hw}${e}`)}async has(t){return await this.components.datastore.has(this._peerIdToDatastoreKey(t))}async delete(t){await this.components.datastore.delete(this._peerIdToDatastoreKey(t))}async load(t){let e=await this.components.datastore.get(this._peerIdToDatastoreKey(t)),n=qs.decode(e),i=new Map;for(let s of n.metadata)i.set(s.key,s.value);return{...n,id:t,addresses:n.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:_t(s),isCertified:o??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(t){if(t.pubKey!=null&&t.id.publicKey!=null&&!xt(t.pubKey,t.id.publicKey))throw fw.error("peer publicKey bytes do not match peer id publicKey bytes"),new w("publicKey bytes do not match peer id publicKey bytes",Y.ERR_INVALID_PARAMETERS);let e=new Set,n=t.addresses.filter(o=>e.has(o.multiaddr.toString())?!1:(e.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=[];[...t.metadata.keys()].sort().forEach(o=>{let a=t.metadata.get(o);a!=null&&i.push({key:o,value:a})});let s=qs.encode({addresses:n,protocols:t.protocols.sort(),pubKey:t.pubKey,metadata:i,peerRecordEnvelope:t.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(t.id),s.subarray()),await this.load(t.id)}async patch(t,e){let n=await this.load(t);return await this._patch(t,e,n)}async patchOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._patch(t,e,n)}async _patch(t,e,n){return await this.save({...n,...e,id:t})}async merge(t,e){let n=await this.load(t);return await this._merge(t,e,n)}async mergeOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._merge(t,e,n)}async _merge(t,e,n){let i=new Map;return n.addresses.forEach(s=>{i.set(s.multiaddr.toString(),s.isCertified)}),(e.addresses??[]).forEach(s=>{let o=s.multiaddr.toString(),c=!!i.get(o)||s.isCertified;i.set(o,c)}),await this.save({id:t,addresses:Array.from(i.entries()).map(([s,o])=>({multiaddr:_t(s),isCertified:o})),protocols:Array.from(new Set([...n.protocols??[],...e.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...e.metadata?.entries()??[]]),pubKey:e.pubKey??n?.pubKey,peerRecordEnvelope:e.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let t of this.components.datastore.queryKeys({prefix:hw})){let e=t.toString().split("/")[2],n=xe.decode(e);yield this.load(qr(n))}}};var Ur;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.tags!=null)for(let s of e.tags)n.uint32(10),oc.codec().encode(s,n);i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={tags:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.tags.push(oc.codec().decode(e,e.uint32()));break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Ur||(Ur={}));var oc;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.name!=null&&e.name!==""&&(n.uint32(10),n.string(e.name)),e.value!=null&&(n.uint32(16),n.uint32(e.value)),e.expiry!=null&&(n.uint32(24),n.uint64(e.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={name:""},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.name=e.string();break;case 2:i.value=e.uint32();break;case 3:i.expiry=e.uint64();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(oc||(oc={}));var Ue=U("libp2p:peer-store"),ac=class extends Pt{constructor(t,e={}){super(),this.components=t,this.store=new sc(t),this.addressBook=new qa(this.dispatchEvent.bind(this),this.store,e.addressFilter),this.keyBook=new $a(this.dispatchEvent.bind(this),this.store),this.metadataBook=new Ha(this.dispatchEvent.bind(this),this.store),this.protoBook=new Ya(this.dispatchEvent.bind(this),this.store)}async forEach(t){Ue.trace("getPeers await read lock");let e=await this.store.lock.readLock();Ue.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{Ue.trace("getPeers release read lock"),e()}}async all(){let t=[];return await this.forEach(e=>{t.push(e)}),t}async delete(t){Ue.trace("delete await write lock");let e=await this.store.lock.writeLock();Ue.trace("delete got write lock");try{await this.store.delete(t)}finally{Ue.trace("delete release write lock"),e()}}async get(t){Ue.trace("get await read lock");let e=await this.store.lock.readLock();Ue.trace("get got read lock");try{return await this.store.load(t)}finally{Ue.trace("get release read lock"),e()}}async has(t){Ue.trace("has await read lock");let e=await this.store.lock.readLock();Ue.trace("has got read lock");try{return await this.store.has(t)}finally{Ue.trace("has release read lock"),e()}}async tagPeer(t,e,n={}){let i=n.value??0,s=Math.round(i),o=n.ttl??void 0;if(s!==i||s<0||s>100)throw new w("Tag value must be between 0-100","ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(t,"tags"),c=[];a!=null&&(c=Ur.decode(a).tags),c=c.filter(l=>l.name!==e),c.push({name:e,value:s,expiry:o==null?void 0:BigInt(Date.now()+o)}),await this.metadataBook.setValue(t,"tags",Ur.encode({tags:c}).subarray())}async unTagPeer(t,e){let n=await this.metadataBook.getValue(t,"tags"),i=[];n!=null&&(i=Ur.decode(n).tags),i=i.filter(s=>s.name!==e),await this.metadataBook.setValue(t,"tags",Ur.encode({tags:i}).subarray())}async getTags(t){let e=await this.metadataBook.getValue(t,"tags"),n=[];e!=null&&(n=Ur.decode(e).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(t,"tags",Ur.encode({tags:s}).subarray()),s.map(o=>({name:o.name,value:o.value??0}))}};var cc=class{constructor(t){this.dht=t}async provide(t){await Ke(this.dht.provide(t))}async*findProviders(t,e={}){for await(let n of this.dht.findProviders(t,e))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,e,n){await Ke(this.dht.put(t,e,n))}async get(t,e){for await(let n of this.dht.get(t,e))if(n.name==="VALUE")return n.value;throw new w("Not found","ERR_NOT_FOUND")}};var If;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.id!=null&&(n.uint32(10),n.bytes(e.id)),e.pubKey!=null&&(n.uint32(18),n.bytes(e.pubKey)),e.privKey!=null&&(n.uint32(26),n.bytes(e.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.id=e.bytes();break;case 2:i.pubKey=e.bytes();break;case 3:i.privKey=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(If||(If={}));var lc=async()=>{let r=await va("Ed25519"),t=await WS(r);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function WS(r){return await $r(Vy(r.public),qy(r))}var Bf=N(er(),1);var uc=globalThis.CustomEvent??Event;async function*Tf(r,t={}){let e=t.concurrency??1/0;e<1&&(e=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,s=[],o=cn(),a=cn(),c=!1,l,u=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let p of r){if(s.length===e&&(o=cn(),await o.promise),u)break;let m={done:!1};s.push(m),p().then(y=>{m.done=!0,m.ok=!0,m.value=y,i.dispatchEvent(new uc("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new uc("task-complete"))})}c=!0,i.dispatchEvent(new uc("task-complete"))}catch(p){l=p,i.dispatchEvent(new uc("task-complete"))}});function f(){return n?s[0]?.done:!!s.find(p=>p.done)}function*h(){for(;s.length>0&&s[0].done;){let p=s[0];if(s.shift(),p.ok)yield p.value;else throw u=!0,o.resolve(),p.err;o.resolve()}}function*d(){for(;f();)for(let p=0;p<s.length;p++)if(s[p].done){let m=s[p];if(s.splice(p,1),p--,m.ok)yield m.value;else throw u=!0,o.resolve(),m.err;o.resolve()}}for(;;){if(f()||(a=cn(),await a.promise),l!=null)throw l;if(n?yield*h():yield*d(),c&&s.length===0)break}}var Df=N(_r(),1);var fc="/libp2p/autonat/1.0.0";var G;(function(r){let t;(function(l){l.DIAL="DIAL",l.DIAL_RESPONSE="DIAL_RESPONSE"})(t=r.MessageType||(r.MessageType={}));let e;(function(l){l[l.DIAL=0]="DIAL",l[l.DIAL_RESPONSE=1]="DIAL_RESPONSE"})(e||(e={})),function(l){l.codec=()=>Gr(e)}(t=r.MessageType||(r.MessageType={}));let n;(function(l){l.OK="OK",l.E_DIAL_ERROR="E_DIAL_ERROR",l.E_DIAL_REFUSED="E_DIAL_REFUSED",l.E_BAD_REQUEST="E_BAD_REQUEST",l.E_INTERNAL_ERROR="E_INTERNAL_ERROR"})(n=r.ResponseStatus||(r.ResponseStatus={}));let i;(function(l){l[l.OK=0]="OK",l[l.E_DIAL_ERROR=100]="E_DIAL_ERROR",l[l.E_DIAL_REFUSED=101]="E_DIAL_REFUSED",l[l.E_BAD_REQUEST=200]="E_BAD_REQUEST",l[l.E_INTERNAL_ERROR=300]="E_INTERNAL_ERROR"})(i||(i={})),function(l){l.codec=()=>Gr(i)}(n=r.ResponseStatus||(r.ResponseStatus={}));let s;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{if(d.lengthDelimited!==!1&&h.fork(),f.id!=null&&(h.uint32(10),h.bytes(f.id)),f.addrs!=null)for(let p of f.addrs)h.uint32(18),h.bytes(p);d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={addrs:[]},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.id=f.bytes();break;case 2:d.addrs.push(f.bytes());break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(s=r.PeerInfo||(r.PeerInfo={}));let o;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.peer!=null&&(h.uint32(10),r.PeerInfo.codec().encode(f.peer,h)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.peer=r.PeerInfo.codec().decode(f,f.uint32());break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(o=r.Dial||(r.Dial={}));let a;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.status!=null&&(h.uint32(8),r.ResponseStatus.codec().encode(f.status,h)),f.statusText!=null&&(h.uint32(18),h.string(f.statusText)),f.addr!=null&&(h.uint32(26),h.bytes(f.addr)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.status=r.ResponseStatus.codec().decode(f);break;case 2:d.statusText=f.string();break;case 3:d.addr=f.bytes();break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(a=r.DialResponse||(r.DialResponse={}));let c;r.codec=()=>(c==null&&(c=mt((l,u,f={})=>{f.lengthDelimited!==!1&&u.fork(),l.type!=null&&(u.uint32(8),r.MessageType.codec().encode(l.type,u)),l.dial!=null&&(u.uint32(18),r.Dial.codec().encode(l.dial,u)),l.dialResponse!=null&&(u.uint32(26),r.DialResponse.codec().encode(l.dialResponse,u)),f.lengthDelimited!==!1&&u.ldelim()},(l,u)=>{let f={},h=u==null?l.len:l.pos+u;for(;l.pos<h;){let d=l.uint32();switch(d>>>3){case 1:f.type=r.MessageType.codec().decode(l);break;case 2:f.dial=r.Dial.codec().decode(l,l.uint32());break;case 3:f.dialResponse=r.DialResponse.codec().decode(l,l.uint32());break;default:l.skipType(d&7);break}}return f})),c),r.encode=l=>pt(l,r.codec()),r.decode=l=>dt(l,r.codec())})(G||(G={}));var lt=U("libp2p:autonat"),Cf=4,QS=5e3,XS=6e4,hc=class{constructor(t,e){this.components=t,this.started=!1,this._init=e,this.startupDelay=e.startupDelay??QS,this.refreshInterval=e.refreshInterval??XS,this._verifyExternalAddresses=this._verifyExternalAddresses.bind(this)}isStarted(){return this.started}async start(){this.started||(await this.components.registrar.handle(fc,t=>{this.handleIncomingAutonatStream(t).catch(e=>{lt.error(e)})},{maxInboundStreams:this._init.maxInboundStreams,maxOutboundStreams:this._init.maxOutboundStreams}),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.startupDelay),this.started=!0)}async stop(){await this.components.registrar.unhandle(fc),clearTimeout(this.verifyAddressTimeout),this.started=!1}async handleIncomingAutonatStream(t){let e=new Df.TimeoutController(this._init.timeout);try{(0,Bf.setMaxListeners)?.(1/0,e.signal)}catch{}let n=this.components.addressManager.getAddresses().map(i=>i.toOptions().host);try{let i=ye(t.stream,e.signal),s=this;await Ft(i,me(),async function*(o){let a=await se(o);if(a==null){lt("No message received"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"No message was sent"}});return}let c;try{c=G.decode(a)}catch(m){lt.error("Could not decode message",m),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"Could not decode message"}});return}let l=c.dial;if(l==null){lt.error("Dial was missing from message"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"No Dial message found in message"}});return}let u,f=l.peer;if(f==null||f.id==null){lt.error("PeerId missing from message"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"missing peer info"}});return}try{u=qr(f.id)}catch(m){lt.error("Invalid PeerId",m),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"bad peer id"}});return}if(lt("Incoming request from %p",u),!t.connection.remotePeer.equals(u)){lt("Target peer %p did not equal sending peer %p",u,t.connection.remotePeer),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"peer id mismatch"}});return}let h=f.addrs.map(m=>_t(m)).filter(m=>{let y=m.toOptions().host===t.connection.remoteAddr.toOptions().host;return lt.trace("Request to dial %s was sent from %s is same host %s",m,t.connection.remoteAddr,y),y}).filter(m=>{let y=m.toOptions().host,g=!(Yn(y)??!1);return lt.trace("Host %s was public %s",y,g),g}).filter(m=>{let y=m.toOptions().host,g=!n.includes(y);return lt.trace("Host %s was not our host %s",y,g),g}).filter(m=>{let y=!!s.components.transportManager.transportForMultiaddr(m);return lt.trace("Transport for %s is supported %s",m,y),y}).map(m=>(m.getPeerId()==null&&(m=m.encapsulate(`/p2p/${u.toString()}`)),m));if(h.length===0){lt("No valid multiaddrs for %p in message",u),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_DIAL_REFUSED,statusText:"no dialable addresses"}});return}lt("Dial multiaddrs %s for peer %p",h.map(m=>m.toString()).join(", "),u);let d="",p=h[0];for await(let m of h){let y;p=m;try{if(y=await s.components.dialer.dial(m,{signal:e.signal}),!y.remoteAddr.equals(m))throw lt.error("Tried to dial %s but dialed %s",m,y.remoteAddr),new Error("Unexpected remote address");lt("Success %p",u),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.OK,addr:y.remoteAddr.decapsulateCode(j("p2p").code).bytes}});return}catch(g){lt("Could not dial %p",u,g),d=g.message}finally{y!=null&&await y.close()}}yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_DIAL_ERROR,statusText:d,addr:p.bytes}})},Re(),t.stream)}finally{e.clear()}}_verifyExternalAddresses(){this.verifyExternalAddresses().catch(t=>{lt.error(t)})}async verifyExternalAddresses(){if(clearTimeout(this.verifyAddressTimeout),!this.isStarted())return;let t=this.components.addressManager,e=t.getObservedAddrs().filter(s=>{let o=s.toOptions();return!(Yn(o.host)??!1)});if(e.length===0){lt("No public addresses found, not requesting verification"),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval);return}let n=new Df.TimeoutController(this._init.timeout);try{(0,Bf.setMaxListeners)?.(1/0,n.signal)}catch{}let i=this;try{lt("verify multiaddrs %s",e.map(f=>f.toString()).join(", "));let s=G.encode({type:G.MessageType.DIAL,dial:{peer:{id:this.components.peerId.toBytes(),addrs:e.map(f=>f.bytes)}}}),a=(await lc()).toBytes(),c={},l=[];async function u(f){try{lt("Asking %p to verify multiaddr",f.id);let h=await i.components.connectionManager.openConnection(f.id,{signal:n.signal}),d=await h.newStream(fc,{signal:n.signal}),p=ye(d,n.signal),m=await Ft([s],Re(),p,me(),async g=>await se(g));if(m==null){lt("No response received from %s",h.remotePeer);return}let y=G.decode(m);if(y.type!==G.MessageType.DIAL_RESPONSE||y.dialResponse==null){lt("Invalid autonat response from %s",h.remotePeer);return}if(y.dialResponse.status===G.ResponseStatus.OK){let g=h.remoteAddr.toOptions(),x;if(g.family===4)x=g.host.split(".")[0];else if(g.family===6)x=g.host.split(":")[0];else{lt('Remote address "%s" was not IP4 or IP6?',g.host);return}if(l.includes(x)){lt("Already have response from network segment %d - %s",x,g.host);return}l.push(x)}return y.dialResponse}catch(h){lt.error(h)}}for await(let f of Tf(Qi(this.components.peerRouting.getClosestPeers(a,{signal:n.signal}),h=>async()=>await u(h)),{concurrency:Cf}))try{if(f==null)continue;let h=f.addr==null?e[0]:_t(f.addr);if(lt("Autonat response for %s is %s",h,f.status),f.status===G.ResponseStatus.E_BAD_REQUEST||f.status===G.ResponseStatus.E_DIAL_REFUSED||f.addr==null&&e.length>1)continue;if(!e.some(p=>p.equals(h))){lt("Peer reported %s as %s but it was not in our observed address list",h,f.status);continue}let d=h.toString();if(c[d]==null&&(c[d]={success:0,failure:0}),f.status===G.ResponseStatus.OK?c[d].success++:f.status===G.ResponseStatus.E_DIAL_ERROR&&c[d].failure++,c[d].success===Cf){lt("%s is externally dialable",h),t.confirmObservedAddr(h);return}if(c[d].failure===Cf){lt("%s is not externally dialable",h),t.removeObservedAddr(h);return}}catch(h){lt.error("Could not verify external address",h)}}finally{n.clear(),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval)}}};var dc=class{constructor(t={}){this._started=!1,this._peerId=t.peerId,this._addressManager=t.addressManager,this._peerStore=t.peerStore,this._upgrader=t.upgrader,this._metrics=t.metrics,this._registrar=t.registrar,this._connectionManager=t.connectionManager,this._transportManager=t.transportManager,this._connectionGater=t.connectionGater,this._contentRouting=t.contentRouting,this._peerRouting=t.peerRouting,this._datastore=t.datastore,this._connectionProtector=t.connectionProtector,this._dht=t.dht,this._pubsub=t.pubsub,this._dialer=t.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.beforeStart!=null&&await t.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{await t.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.beforeStop!=null&&await t.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{await t.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.afterStop!=null&&await t.afterStop()}))}get peerId(){if(this._peerId==null)throw new w("peerId not set","ERR_SERVICE_MISSING");return this._peerId}set peerId(t){this._peerId=t}get addressManager(){if(this._addressManager==null)throw new w("addressManager not set","ERR_SERVICE_MISSING");return this._addressManager}set addressManager(t){this._addressManager=t}get peerStore(){if(this._peerStore==null)throw new w("peerStore not set","ERR_SERVICE_MISSING");return this._peerStore}set peerStore(t){this._peerStore=t}get upgrader(){if(this._upgrader==null)throw new w("upgrader not set","ERR_SERVICE_MISSING");return this._upgrader}set upgrader(t){this._upgrader=t}get registrar(){if(this._registrar==null)throw new w("registrar not set","ERR_SERVICE_MISSING");return this._registrar}set registrar(t){this._registrar=t}get connectionManager(){if(this._connectionManager==null)throw new w("connectionManager not set","ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(t){this._connectionManager=t}get transportManager(){if(this._transportManager==null)throw new w("transportManager not set","ERR_SERVICE_MISSING");return this._transportManager}set transportManager(t){this._transportManager=t}get connectionGater(){if(this._connectionGater==null)throw new w("connectionGater not set","ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(t){this._connectionGater=t}get contentRouting(){if(this._contentRouting==null)throw new w("contentRouting not set","ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(t){this._contentRouting=t}get peerRouting(){if(this._peerRouting==null)throw new w("peerRouting not set","ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(t){this._peerRouting=t}get datastore(){if(this._datastore==null)throw new w("datastore not set","ERR_SERVICE_MISSING");return this._datastore}set datastore(t){this._datastore=t}get connectionProtector(){return this._connectionProtector}set connectionProtector(t){this._connectionProtector=t}get dialer(){if(this._dialer==null)throw new w("dialer not set","ERR_SERVICE_MISSING");return this._dialer}set dialer(t){this._dialer=t}get metrics(){return this._metrics}set metrics(t){this._metrics=t}get dht(){return this._dht}set dht(t){this._dht=t}get pubsub(){return this._pubsub}set pubsub(t){this._pubsub=t}};var Pf=N(Ac(),1),Nf=N(mw(),1);var yw=globalThis.fetch,gw=globalThis.Headers,Zk=globalThis.Request,Jk=globalThis.Response;function pc(r,t,e){return`${r}?name=${t}&type=${e}`}async function ww(r,t){return await(await yw(r,{headers:new gw({accept:"application/dns-json"}),signal:t})).json()}function Xn(r,t){return`${t}_${r}`}var Lf=Object.assign((0,Pf.default)("dns-over-http-resolver"),{error:(0,Pf.default)("dns-over-http-resolver:error")}),kf=class{constructor(t={}){this._cache=new Nf.default({max:t?.maxCache??100}),this._TXTcache=new Nf.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??ww,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>t.abort())}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*e),i=t[e];t[e]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,e="A"){switch(e){case"A":return await this.resolve4(t);case"AAAA":return await this.resolve6(t);case"TXT":return await this.resolveTxt(t);default:throw new Error(`${e} is not supported`)}}async resolve4(t){let e="A",n=this._cache.get(Xn(t,e));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(pc(s,t,e),o.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Lf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolve6(t){let e="AAAA",n=this._cache.get(Xn(t,e));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(pc(s,t,e),o.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Lf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolveTxt(t){let e="TXT",n=this._TXTcache.get(Xn(t,e));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(pc(s,t,e),o.signal),c=a.Answer.map(u=>[u.data.replace(/['"]+/g,"")]),l=Math.min(...a.Answer.map(u=>u.TTL));return this._TXTcache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Lf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Ew=kf;var xw=Ew;var{code:eA}=j("dnsaddr");async function vw(r,t={}){let e=new xw;t.signal!=null&&t.signal.addEventListener("abort",()=>{e.cancel()});let n=r.getPeerId(),[,i]=r.stringTuples().find(([a])=>a===eA)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await e.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}function Of(r){try{let{address:t}=r.nodeAddress();return!!Yn(t)}catch{return!0}}function mc(r,t){let e=Of(r.multiaddr),n=Of(t.multiaddr);return e&&!n?1:!e&&n||r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}var iA={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{maxConnections:300,minConnections:50,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:vw},addressSorter:mc},connectionGater:{},transportManager:{faultTolerance:an.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},identify:{protocolPrefix:"ipfs",host:{agentVersion:rf},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1,maxObservedAddresses:10},ping:{protocolPrefix:"ipfs",maxInboundStreams:2,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},autonat:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:3e4,startupDelay:5e3,refreshInterval:6e4}};function bw(r){let t=De(iA,r);if(t.transports==null||t.transports.length<1)throw new w(W.ERR_TRANSPORTS_REQUIRED,S.ERR_TRANSPORTS_REQUIRED);if(t.connectionEncryption==null||t.connectionEncryption.length===0)throw new w(W.CONN_ENCRYPTION_REQUIRED,S.CONN_ENCRYPTION_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(W.ERR_PROTECTOR_REQUIRED,S.ERR_PROTECTOR_REQUIRED);return t.identify.host.agentVersion===rf&&(Ng||Lg?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Ks||kg||Pg||Og)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var _w=Symbol.for("@libp2p/peer-discovery");var yc=class extends Pt{get[_w](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get lan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findProviders(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findPeer(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}getClosestPeers(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}provide(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}put(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async getMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async setMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async refreshRoutingTable(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}};var gc=class extends Pt{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}get multicodecs(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getPeers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getTopics(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}subscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}unsubscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getSubscribers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}async publish(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}};var Kw=N(_r(),1),$f=N(Vf(),1),Vw=N(er(),1);var Mw=N(Vf(),1),Uw=N(kw(),1),qf=N(er(),1);var Ow=U("libp2p:dialer:dial-request"),wc=class{constructor(t){let{addrs:e,dialAction:n,dialer:i}=t;this.addrs=e,this.dialer=i,this.dialAction=n}async run(t={}){let e=this.dialer.getTokens(this.addrs.length);if(e.length<1)throw new w("No dial tokens available",S.ERR_NO_DIAL_TOKENS);let n=new Uw.default;for(let a of e)n.push(a).catch(c=>{Ow.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,qf.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,qf.setMaxListeners)?.(1/0,t.signal)}catch{}let s=0,o=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let l=await n.shift();if(o)throw this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0]),new w("dialAction already succeeded",S.ERR_ALREADY_SUCCEEDED);let u=i[c];if(u==null)throw new w("dialAction did not come with an AbortController",S.ERR_INVALID_PARAMETERS);let f;try{let h=u.signal;f=await this.dialAction(a,{...t,signal:t.signal!=null?(0,Mw.anySignal)([h,t.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=e.length?n.push(l).catch(h=>{Ow.error(h)}):this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0])}if(f==null)throw new w("dialAction led to empty object",S.ERR_TRANSPORT_DIAL_FAILED);return o=!0,f}))}catch(a){throw this.addrs.length===1&&a.name==="AggregateError"?a.errors[0]:a}finally{i.forEach(a=>{a!==void 0&&a.abort()}),e.forEach(a=>{this.dialer.releaseToken(a)})}}};var ge=U("libp2p:dialer"),Ec=class{constructor(t,e={}){this.started=!1,this.addressSorter=e.addressSorter??mc,this.maxAddrsToDial=e.maxAddrsToDial??25,this.timeout=e.dialTimeout??3e4,this.maxDialsPerPeer=e.maxDialsPerPeer??4,this.tokens=[...new Array(e.maxParallelDials??100)].map((n,i)=>i),this.components=t,this.pendingDials=Is({name:"libp2p_dialler_pending_dials",metrics:t.metrics}),this.pendingDialTargets=Is({name:"libp2p_dialler_pending_dial_targets",metrics:t.metrics});for(let[n,i]of Object.entries(e.resolvers??{}))ll.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let t of this.pendingDials.values())try{t.controller.abort()}catch(e){ge.error(e)}this.pendingDials.clear();for(let t of this.pendingDialTargets.values())t.abort();this.pendingDialTargets.clear()}async dial(t,e={}){let{peerId:n,multiaddr:i}=Po(t);if(n!=null){if(this.components.peerId.equals(n))throw new w("Tried to dial self",S.ERR_DIALED_SELF);if(i!=null&&(ge("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer?.(n)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",S.ERR_PEER_DIAL_INTERCEPTED)}ge("creating dial target for %p",n);let s=new AbortController,o=Fw();this.pendingDialTargets.set(o,s);let a=s.signal;e.signal!=null&&(a=(0,$f.anySignal)([a,e.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...e,signal:a})}finally{this.pendingDialTargets.delete(o)}if(c.addrs.length===0)throw new w("The dial request has no valid addresses",S.ERR_NO_VALID_ADDRESSES);let l=this.pendingDials.get(c.id)??this._createPendingDial(c,e);try{let u=await l.promise;return ge("dial succeeded to %s",c.id),u}catch(u){if(ge("dial failed to %s",c.id,u),l.controller.signal.aborted){let f=new w(u.message,S.ERR_TIMEOUT);throw ge.error(f),f}throw ge.error(u),u}finally{l.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return ve(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,e){let n=[];ve(t.multiaddr)&&n.push(t.multiaddr),!ve(t.multiaddr)&&bn(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async c=>await this._resolve(c,e)))).flat();let i=n.filter(c=>!!this.components.transportManager.transportForMultiaddr(c)),o=[...new Set(i.map(c=>c.toString()))].map(c=>_t(c));if(o.length>this.maxAddrsToDial)throw ge("addresses after filtering",o.map(c=>c.toString())),new w("dial with more addresses than allowed",S.ERR_TOO_MANY_ADDRESSES);o.length===0&&(ge("addresses before filtering",n.map(c=>c.toString())),ge("addresses after filtering",o.map(c=>c.toString())));let a=bn(t.peerId)?t.peerId:void 0;if(a!=null){let c=`/p2p/${a.toString()}`;o=o.map(l=>{let u=l.getPeerId();return l.protos().pop()?.path===!0?l:u==null?l.encapsulate(c):l})}return{id:a==null?Fw():a.toString(),addrs:o}}async _loadAddresses(t){let e=await this.components.peerStore.addressBook.get(t);return(await Promise.all(e.map(async n=>await this.components.connectionGater.denyDialMultiaddr?.(t,n.multiaddr)===!0?!1:n))).filter(aA).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(t,e={}){let n=async(l,u={})=>{if(u.signal?.aborted===!0)throw new w("already aborted",S.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(l,u).catch(f=>{throw ge.error("dial to %s failed",l,f),f})},i=new wc({addrs:t.addrs,dialAction:n,dialer:this}),s=new Kw.TimeoutController(this.timeout),o=[s.signal];e.signal!=null&&o.push(e.signal);let a=(0,$f.anySignal)(o);try{(0,Vw.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:s,promise:i.run({...e,signal:a}),destroy:()=>{s.clear(),this.pendingDials.delete(t.id)}};return this.pendingDials.set(t.id,c),c}getTokens(t){let e=Math.min(t,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,e);return ge("%d tokens request, returning %d, %d remaining",t,e,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(ge("token %d released",t),this.tokens.push(t))}async _resolve(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let i=await this._resolveRecord(t,e);return(await Promise.all(i.map(async a=>await this._resolve(a,e)))).flat().reduce((a,c)=>(a.find(l=>l.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(t,e){try{return t=_t(t.toString()),await t.resolve(e)}catch(n){return ge.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function aA(r){return!!r}function Fw(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var yr=U("libp2p"),zf=class extends Pt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let e=this.components=new dc({peerId:t.peerId,datastore:t.datastore??new mo,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),...t.connectionGater}});e.peerStore=new ac(e,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore}),this.services=[e],t.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(t.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",o=>{let{detail:a}=o;this.dispatchEvent(new $("peer:discovery",{detail:a}))}),t.connectionProtector!=null&&(this.components.connectionProtector=t.connectionProtector(e)),this.components.upgrader=new Da(this.components,{connectionEncryption:(t.connectionEncryption??[]).map(o=>this.configureComponent(o(this.components))),muxers:(t.streamMuxers??[]).map(o=>this.configureComponent(o(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new Ec(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new ko(this.components,t.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",o=>{this.dispatchEvent(new $("peer:disconnect",{detail:o.detail}))}),this.components.connectionManager.addEventListener("peer:connect",o=>{this.dispatchEvent(new $("peer:connect",{detail:o.detail}))}),this.registrar=this.components.registrar=new Ba(this.components),this.components.transportManager=new _a(this.components,t.transportManager),this.components.addressManager=new Ao(this.components,t.addresses),this.configureComponent(new Fa(this.components));let n=qn.generateOptions();this.keychain=this.configureComponent(new qn(this.components,{...n,...t.keychain})),this.services.push(new Ua(this.components,t.nat)),this.identifyService=new Fi(this.components,{...t.identify}),this.configureComponent(this.identifyService),t.dht!=null?this.dht=this.components.dht=t.dht(this.components):this.dht=new yc,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new gc;let i=(t.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Ka(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new bo(this.components,{...t.peerRouting,routers:i}));let s=(t.contentRouters??[]).map(o=>this.configureComponent(o(this.components)));t.dht!=null&&s.push(this.configureComponent(new cc(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new So(this.components,{routers:s})),this.fetchService=this.configureComponent(new Pa(this.components,{...t.fetch})),this.pingService=this.configureComponent(new Na(this.components,{...t.ping})),this.autonatService=this.configureComponent(new hc(this.components,{...t.autonat})),this.configureComponent(new Oo(this.components,{minConnections:t.connectionManager.minConnections,autoDialInterval:t.connectionManager.autoDialInterval})),t.relay!=null&&(this.circuitService=this.configureComponent(t.relay(this.components)));for(let o of t.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)});t.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))})}configureComponent(t){return Er(t)&&this.services.push(t),t}async start(){if(this.started)return;this.started=!0,yr("libp2p is starting"),(await this.keychain.listKeys()).find(e=>e.name==="self")==null&&(yr("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(async e=>{await e.start()})),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),yr("libp2p has started")}catch(e){throw yr.error("An error occurred starting libp2p",e),await this.stop(),e}}async stop(){this.started&&(yr("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(this.services.map(async t=>{await t.stop()})),await Promise.all(this.services.map(async t=>{t.afterStop!=null&&await t.afterStop()})),yr("libp2p has stopped"))}isStarted(){return this.started}getConnections(t){return this.components.connectionManager.getConnections(t)}getPeers(){let t=new Ir;for(let e of this.components.connectionManager.getConnections())t.add(e.remotePeer);return Array.from(t)}async dial(t,e={}){return await this.components.connectionManager.openConnection(t,e)}async dialProtocol(t,e,n={}){if(e==null)throw new w("no protocols were provided to open a stream",S.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(e=Array.isArray(e)?e:[e],e.length===0)throw new w("no protocols were provided to open a stream",S.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(t,n)).newStream(e,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t){ve(t)&&(t=at(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t)}async getPublicKey(t,e={}){if(yr("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw new w("Public key was not in the peer store and the DHT is not enabled",S.ERR_NO_ROUTERS_AVAILABLE);let i=Ut([F("/pk/"),t.multihash.digest]);for await(let s of this.dht.get(i,e))if(s.name==="VALUE"){let o=Ss(s.value);return await this.peerStore.keyBook.set(t,s.value),o.bytes}throw new w(`Node not responding with its public key: ${t.toString()}`,S.ERR_INVALID_RECORD)}async fetch(t,e,n={}){if(ve(t)){let i=at(t.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[t]),t=i}return await this.fetchService.fetch(t,e,n)}async ping(t,e={}){if(ve(t)){let n=at(t.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[t]),t=n}return await this.pingService.ping(t,e)}async handle(t,e,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,e,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async e=>{await this.components.registrar.unhandle(e)}))}async register(t,e){return await this.registrar.register(t,e)}unregister(t){this.registrar.unregister(t)}onDiscoveryPeer(t){let{detail:e}=t;if(e.id.toString()===this.peerId.toString()){yr.error(new Error(S.ERR_DISCOVERED_SELF));return}e.multiaddrs.length>0&&this.components.peerStore.addressBook.add(e.id,e.multiaddrs).catch(n=>{yr.error(n)}),e.protocols.length>0&&this.components.peerStore.protoBook.set(e.id,e.protocols).catch(n=>{yr.error(n)}),this.dispatchEvent(new $("peer:discovery",{detail:e}))}};async function qw(r){if(r.peerId==null){let t=r.datastore;if(t!=null)try{let e=new qn({datastore:t},De(qn.generateOptions(),r.keychain));r.peerId=await e.exportPeerId("self")}catch(e){if(e.code!=="ERR_NOT_FOUND")throw e}}return r.peerId==null&&(r.peerId=await lc()),new zf(bw(r))}async function cA(r){let t=await qw(r);return r.start!==!1&&await t.start(),t}return Ww(lA);})();
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),wv=new RegExp(`(?:^${Vt}$)|(?:^${$s}$)`),Ev=new RegExp(`^${Vt}$`),xv=new RegExp(`^${$s}$`),Gu=t=>t&&t.exact?wv:new RegExp(`(?:${Qr(t)}${Vt}${Qr(t)})|(?:${Qr(t)}${$s}${Qr(t)})`,"g");Gu.v4=t=>t&&t.exact?Ev:new RegExp(`${Qr(t)}${Vt}${Qr(t)}`,"g");Gu.v6=t=>t&&t.exact?xv:new RegExp(`${Qr(t)}${$s}${Qr(t)}`,"g");var M0=Gu;var q0=M(F0(),1),{isValid:vv,parse:bv}=q0.default,_v=["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"],Sv=_v.map(t=>new V0.Netmask(t));function Av(t){for(let e of Sv)if(e.contains(t))return!0;return!1}function K0(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 $0=t=>{if(vv(t)){let e=bv(t);if(e.kind()==="ipv4")return Av(e.toNormalizedString());if(e.kind()==="ipv6")return K0(t)}else if(si(t)&&M0.v6().test(t))return K0(t)};var Dn=$0;function Yu(t){try{let{address:e}=t.nodeAddress();return!!Dn(e)}catch{return!0}}function xi(t,e){let r=Yu(t.multiaddr),n=Yu(e.multiaddr);return r&&!n?1:!r&&n||t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}var Qu=M(Tc(),1),Xu=M(G0(),1);var Y0=globalThis.fetch,W0=globalThis.Headers,Y4=globalThis.Request,W4=globalThis.Response;function Hs(t,e,r){return`${t}?name=${e}&type=${r}`}async function Q0(t,e){return await(await Y0(t,{headers:new W0({accept:"application/dns-json"}),signal:e})).json()}function Bn(t,e){return`${e}_${t}`}var Wu=Object.assign((0,Qu.default)("dns-over-http-resolver"),{error:(0,Qu.default)("dns-over-http-resolver:error")}),Zu=class{constructor(e={}){this._cache=new Xu.default({max:e?.maxCache??100}),this._TXTcache=new Xu.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??Q0,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(Bn(e,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Hs(o,e,r),s.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Bn(e,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),Wu.error(`${o} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}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(Bn(e,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Hs(o,e,r),s.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Bn(e,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),Wu.error(`${o} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}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(Bn(e,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(Hs(o,e,r),s.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Bn(e,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),Wu.error(`${o} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}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()}},X0=Zu;var Z0=X0;var{code:Dv}=j("dnsaddr");async function vi(t,e={}){let r=new Z0;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===Dv)??[];if(i==null)throw new Error("No hostname found in multiaddr");let s=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(s=s.filter(a=>a.includes(n))),s}function J0(t){let e=new globalThis.AbortController;function r(){e.abort();for(let o of t)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of t){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of t)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}var Ju=M(Sr(),1),j0=U("libp2p:connection-manager:utils");async function ju(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await Bv(t,e),s=(await Promise.all(n.map(async a=>await ju(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return j0("resolved %s to",t,s.map(a=>a.toString())),s}async function Bv(t,e){try{return t=Te(t.toString()),await t.resolve(e)}catch(r){return j0.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}function el(...t){let e=[];for(let n of t)if(n!=null){try{(0,Ju.setMaxListeners)?.(1/0,n)}catch{}e.push(n)}let r=J0(e);try{(0,Ju.setMaxListeners)?.(1/0,r)}catch{}return r}function tr(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var st=U("libp2p:connection-manager:dial-queue"),po={addressSorter:xi,maxParallelDials:100,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:10,dialTimeout:3e4,resolvers:{dnsaddr:vi}},Gs=class{constructor(e,r={}){this.addressSorter=r.addressSorter??po.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??po.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??po.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??po.dialTimeout,this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController,this.pendingDialCount=e.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=e.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))hu.set(n,i);this.queue=new Kt({concurrency:r.maxParallelDials??po.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{st.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}stop(){this.shutDownController.abort()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=Bs(e),o=i.map(f=>({multiaddr:f,isCertified:!1})),{timeoutController:s,signal:a}=this.createDialAbortControllers(r.signal),c;try{c=await this.calculateMultiaddrs(n,o,{...r,signal:a})}catch(f){throw a.clear(),s.clear(),f}let u=this.pendingDials.find(f=>!!(f.peerId!=null&&n!=null&&f.peerId.equals(n)||c.map(({multiaddr:h})=>h.toString()).join()===f.multiaddrs.map(h=>h.toString()).join()));if(u!=null)return st("joining existing dial target for %p",n),a.clear(),s.clear(),await u.promise;st("creating dial target for",c.map(({multiaddr:f})=>f.toString()));let l={id:Pv(),status:"queued",peerId:n,multiaddrs:c.map(({multiaddr:f})=>f)};return l.promise=this.performDial(l,{...r,signal:a}).finally(()=>{this.pendingDials=this.pendingDials.filter(f=>f.id!==l.id),a.clear(),s.clear()}).catch(f=>{throw st.error("dial failed to %s",c.map(({multiaddr:h})=>h.toString()).join(", "),f),s.signal.aborted?new w(f.message,S.ERR_TIMEOUT):f}),this.pendingDials.push(l),await l.promise}createDialAbortControllers(e){let r=new ep.TimeoutController(this.dialTimeout),n=el(r.signal,this.shutDownController.signal,e);return{timeoutController:r,signal:n}}async calculateMultiaddrs(e,r=[],n={}){if(e!=null){if(this.peerId.equals(e))throw new w("Tried to dial self",S.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(e)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",S.ERR_PEER_DIAL_INTERCEPTED);r.length===0&&(st("loading multiaddrs for %p",e),r.push(...await this.peerStore.addressBook.get(e)),st("loaded multiaddrs for %p",e,r.map(({multiaddr:u})=>u.toString())))}let i=(await Promise.all(r.map(async u=>{let l=await ju(u.multiaddr,n);return l.length===1&&l[0].equals(u.multiaddr)?u:l.map(f=>({multiaddr:f,isCertified:!1}))}))).flat(),o=i.filter(u=>!!this.transportManager.transportForMultiaddr(u.multiaddr)),s=new Map;for(let u of o){let l=u.multiaddr.toString(),f=s.get(l);if(f!=null){f.isCertified=f.isCertified||u.isCertified||!1;continue}s.set(l,u)}let a=[...s.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(st("addresses for %p before filtering",e??"unknown peer",i.map(({multiaddr:u})=>u.toString())),st("addresses for %p after filtering",e??"unknown peer",a.map(({multiaddr:u})=>u.toString()))),a.length===0)throw new w("The dial request has no valid addresses",S.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("dial with more addresses than allowed",S.ERR_TOO_MANY_ADDRESSES);if(e!=null){let u=`/p2p/${e.toString()}`;a=a.map(l=>{let f=l.multiaddr.getPeerId();return l.multiaddr.protos().pop()?.path===!0?l:f==null?{multiaddr:l.multiaddr.encapsulate(u),isCertified:l.isCertified}:l})}let c=[];for(let u of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(u.multiaddr)||c.push(u);return c.sort(this.addressSorter)}async performDial(e,r={}){let n=e.multiaddrs.map(()=>new AbortController);try{let i=new Kt({concurrency:this.maxParallelDialsPerPeer});i.on("error",s=>{st.error("error dialling",s)});let o=await Promise.any(e.multiaddrs.map(async(s,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",S.ERR_INVALID_PARAMETERS);let u=el(c.signal,r.signal);u.addEventListener("abort",()=>{st("dial to %s aborted",s)});let l=tr();return await i.add(async()=>{if(u.aborted){st("dial to %s was aborted before reaching the head of the peer dial queue",s),l.reject(new vr);return}await this.queue.add(async()=>{try{if(u.aborted){st("dial to %s was aborted before reaching the head of the dial queue",s),l.reject(new vr);return}e.status="active";let f=await this.transportManager.dial(s,{...r,signal:u});if(c.signal.aborted){st("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{st.error("error closing superfluous connection",h)}),l.reject(new vr);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),st("dial to %s succeeded",s),l.resolve(f)}catch(f){st.error("error during dial of %s",s,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),await l.promise}));if(o==null)throw new w("successful dial led to empty object returned from peer dial queue",S.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",o}catch(i){throw e.status="error",e.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Pv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ys=U("libp2p:connection-manager:connection-pruner"),tp={maxConnections:300,allow:[]},Ws=class{constructor(e,r={}){this.maxConnections=r.maxConnections??tp.maxConnections,this.allow=r.allow??tp.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(Ys.trace("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Ys("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new Rr;for(let a of e){let c=a.remotePeer;if(i.has(c))continue;let u=await this.peerStore.getTags(c);i.set(c,u.reduce((l,f)=>l+f.value,0))}let o=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.stat.timeline.open,h=c.stat.timeline.open;return f<h?1:f>h?-1:0}),s=[];for(let a of o)if(Ys("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||s.push(a),s.length===n)break;await Promise.all(s.map(async a=>{try{await a.close()}catch(c){Ys.error(c)}})),this.connectionManager.dispatchEvent(new G("peer:prune",{detail:s.map(a=>a.remotePeer)}))}};var ut=U("libp2p:connection-manager"),Ov=50,bi={minConnections:50,maxConnections:300,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0},Qs=class extends Xe{constructor(e,r={}){super(),this.maxConnections=r.maxConnections??bi.maxConnections;let n=r.minConnections??bi.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",S.ERR_INVALID_PARAMETERS);this.connections=new Rr,this.started=!1;try{(0,rp.setMaxListeners)?.(1/0,this)}catch{}this.peerStore=e.peerStore,this.metrics=e.metrics,this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.allow=(r.allow??[]).map(i=>Te(i)),this.deny=(r.deny??[]).map(i=>Te(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??bi.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new np.RateLimiterMemory({points:r.inboundConnectionThreshold??bi.inboundConnectionThreshold,duration:1}),this.autoDial=new qs({connectionManager:this,peerStore:e.peerStore},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??bi.autoDialConcurrency,autoDialPriority:r.autoDialPriority??bi.autoDialPriority}),this.addEventListener("peer:disconnect",()=>{this.autoDial.autoDial().catch(i=>{ut.error(i)})}),this.connectionPruner=new Ws({connectionManager:this,peerStore:e.peerStore},{maxConnections:this.maxConnections,allow:this.allow}),this.addEventListener("peer:connect",()=>{this.connectionPruner.maybePruneConnections().catch(i=>{ut.error(i)})}),this.dialQueue=new Gs({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater},{addressSorter:r.addressSorter??xi,maxParallelDials:r.maxParallelDials??100,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:vi}}),e.upgrader.addEventListener("connection",this.onConnect),e.upgrader.addEventListener("connectionEnd",this.onDisconnect)}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.stat.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let o=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;e[o]=(e[o]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let o={};for(let s of i.streams){let a=`${s.stat.direction} ${s.stat.protocol??"unnegotiated"}`;o[a]=(o[a]??0)+1}for(let[s,a]of Object.entries(o))e[s]=e[s]??[],e[s].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((s,a)=>s-a);let o=Math.floor(i.length*.9);r[n]=i[o]}return r}}),this.autoDial.start(),this.started=!0,ut("started")}async afterStart(){Promise.resolve().then(async()=>{let e=[];for(let r of await this.peerStore.all())(await this.peerStore.getTags(r.id)).filter(o=>o.name===Td).length>0&&e.push(r.id);await Promise.all(e.map(async r=>{await this.openConnection(r).catch(n=>{ut.error(n)})}))}).catch(e=>{ut.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){ut.error(i)}})());ut("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),ut("stopped")}onConnect(e){this._onConnect(e).catch(r=>{ut.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n);i!=null?i.push(r):this.connections.set(n,[r]),n.publicKey!=null&&await this.peerStore.keyBook.set(n,n.publicKey),this.dispatchEvent(new G("peer:connect",{detail:r}))}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(o=>o.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new G("peer:disconnect",{detail:r})))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){let{peerId:n}=Bs(e);if(n!=null){ut("dial %p",n);let a=this.getConnections(n);if(a.length>0)return ut("had an existing connection to %p",n),a[0]}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??Ov}),o=this.connections.get(i.remotePeer);o==null&&(o=[],this.connections.set(i.remotePeer,o));let s=!1;for(let a of o)a.id===i.id&&(s=!0);return s||o.push(i),i}async closeConnections(e){let r=this.connections.get(e)??[];await Promise.all(r.map(async n=>{await n.close()}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return ut("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.maxIncomingPendingConnections)return ut("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 ut("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,e.remoteAddr),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(ut("connection from %s refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var kg=M(hp(),1);var vp=M(xp(),1),Zr=vp.default;var ee;(function(t){t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",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_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"})(ee||(ee={}));var wl=M(ll(),1),cm=M(em(),1),um=M(Pn(),1),El=M(gl(),1),lm=M(am(),1);function c2(){um.default._configure(),wl.default._configure(cm.default),El.default._configure(lm.default)}c2();var fm=["uint64","int64","sint64","fixed64","sfixed64"];function u2(t){for(let e of fm){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function xl(t){return u2(new wl.default(t))}function l2(t){for(let e of fm){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function vl(){return l2(El.default.create())}function de(t,e){let r=xl(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function pe(t,e){let r=vl();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Ri;(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"})(Ri||(Ri={}));function ra(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function en(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(o,s){let a=e(o);s.int32(a)},n=function(o){let s=o.int32();return e(s)};return ra("enum",Ri.VARINT,r,n)}function me(t,e){return ra("message",Ri.LENGTH_DELIMITED,t,e)}var Ce;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Ce||(Ce={}));var bl;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(bl||(bl={}));(function(t){t.codec=()=>en(bl)})(Ce||(Ce={}));var ir;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Ce.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=Ce.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(ir||(ir={}));var or;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Ce.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=Ce.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(or||(or={}));var dL=M(xo(),1),pL=M(Ry(),1),ka=M(fe(),1);var mt={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 rB=M(qe(),1),nB=M(wa(),1),Ty=M(fe(),1);function Gt(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=Me([new Uint8Array(e-r.length),r])}return $(r,"base64url")}function St(t){let e=Cy(t);return new Ty.default.jsbn.BigInteger($(e,"base16"),16)}function Cy(t,e){let r=F(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Me([new Uint8Array(e-r.length),r])}return r}var k_={"P-256":256,"P-384":384,"P-521":521},O_=Object.keys(k_),pB=O_.join(" / ");function Dy(){return typeof navigator<"u"&&navigator.userAgent.includes("Safari")&&navigator.userAgent.includes("Linux")&&!navigator.userAgent.includes("Chrome")}var By={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function ba(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",o=t?.saltLength??16,s=t?.iterations??32767,a=mt.get();r*=8;async function c(f,h){let d=a.getRandomValues(new Uint8Array(o)),p=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:p};typeof h=="string"&&(h=F(h));let y;if(h.length===0&&Dy())y=await a.subtle.importKey("jwk",By,{name:"AES-GCM"},!0,["encrypt"]);else{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},_=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,_,{name:e,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return Me([d,m.iv,new Uint8Array(g)])}async function u(f,h){let d=f.subarray(0,o),p=f.subarray(o,o+n),m=f.subarray(o+n),y={name:e,iv:p};typeof h=="string"&&(h=F(h));let g;if(h.length===0&&Dy())g=await a.subtle.importKey("jwk",By,{name:"AES-GCM"},!0,["decrypt"]);else{let _={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},k=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(_,k,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Py(t,e){let r=En.decode(t);return await ba().decrypt(r,e)}var tf={};rt(tf,{RsaPrivateKey:()=>Ui,RsaPublicKey:()=>Co,fromJwk:()=>aS,generateKeyPair:()=>cS,unmarshalRsaPrivateKey:()=>oS,unmarshalRsaPublicKey:()=>sS});var QB=M(Uy(),1),To=M(fe(),1);var U_=M(Tn(),1);var re=BigInt(0),Re=BigInt(1),an=BigInt(2),Ao=BigInt(3),Fy=BigInt(8),ke=Object.freeze({a:re,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Re,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Ky=(t,e)=>(t+e/an)/e,_a={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(t){let{n:e}=ke,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Re*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=Ky(o*t,e),c=Ky(-n*t,e),u=P(t-a*r-c*i,e),l=P(-a*n-c*o,e),f=u>s,h=l>s;if(f&&(u=e-u),h&&(l=e-l),u>s||l>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:h,k2:l}}},Yt=32,Pi=32,F_=32,Vy=Yt+1,qy=2*Yt+1;function $y(t){let{a:e,b:r}=ke,n=P(t*t),i=P(n*t);return P(i+e*t+r)}var Sa=ke.a===re,Ia=class extends Error{constructor(e){super(e)}};function zy(t){if(!(t instanceof se))throw new TypeError("JacobianPoint expected")}var se=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof ce))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(ce.ZERO)?se.ZERO:new se(e.x,e.y,Re)}static toAffineBatch(e){let r=z_(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return se.toAffineBatch(e).map(se.fromAffine)}equals(e){zy(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e,c=P(i*i),u=P(a*a),l=P(r*u),f=P(o*c),h=P(P(n*a)*u),d=P(P(s*i)*c);return l===f&&h===d}negate(){return new se(this.x,P(-this.y),this.z)}double(){let{x:e,y:r,z:n}=this,i=P(e*e),o=P(r*r),s=P(o*o),a=e+o,c=P(an*(P(a*a)-i-s)),u=P(Ao*i),l=P(u*u),f=P(l-an*c),h=P(u*(c-f)-Fy*s),d=P(an*r*n);return new se(f,h,d)}add(e){zy(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e;if(o===re||s===re)return this;if(r===re||n===re)return e;let c=P(i*i),u=P(a*a),l=P(r*u),f=P(o*c),h=P(P(n*a)*u),d=P(P(s*i)*c),p=P(f-l),m=P(d-h);if(p===re)return m===re?this.double():se.ZERO;let y=P(p*p),g=P(p*y),x=P(l*y),_=P(m*m-g-an*x),k=P(m*(x-_)-h*g),C=P(i*a*p);return new se(_,k,C)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=se.ZERO;if(typeof e=="bigint"&&e===re)return r;let n=Yy(e);if(n===Re)return this;if(!Sa){let f=r,h=this;for(;n>re;)n&Re&&(f=f.add(h)),h=h.double(),n>>=Re;return f}let{k1neg:i,k1:o,k2neg:s,k2:a}=_a.splitScalar(n),c=r,u=r,l=this;for(;o>re||a>re;)o&Re&&(c=c.add(l)),a&Re&&(u=u.add(l)),l=l.double(),o>>=Re,a>>=Re;return i&&(c=c.negate()),s&&(u=u.negate()),u=new se(P(u.x*_a.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=Sa?128/e+1:256/e+1,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(e-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(e,r){!r&&this.equals(se.BASE)&&(r=ce.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&&Wl.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=se.normalizeZ(i),Wl.set(r,i)));let o=se.ZERO,s=se.BASE,a=1+(Sa?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(e&u);e>>=f,p>c&&(p-=l,e+=Re);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?s=s.add(Aa(g,i[m])):o=o.add(Aa(x,i[y]))}return{p:o,f:s}}multiply(e,r){let n=Yy(e),i,o;if(Sa){let{k1neg:s,k1:a,k2neg:c,k2:u}=_a.splitScalar(n),{p:l,f}=this.wNAF(a,r),{p:h,f:d}=this.wNAF(u,r);l=Aa(s,l),h=Aa(c,h),h=new se(P(h.x*_a.beta),h.y,h.z),i=l.add(h),o=f.add(d)}else{let{p:s,f:a}=this.wNAF(n,r);i=s,o=a}return se.normalizeZ([i,o])[0]}toAffine(e){let{x:r,y:n,z:i}=this,o=this.equals(se.ZERO);e==null&&(e=o?Fy:Oi(i));let s=e,a=P(s*s),c=P(a*s),u=P(r*a),l=P(n*c),f=P(i*s);if(o)return ce.ZERO;if(f!==Re)throw new Error("invZ was invalid");return new ce(u,l)}};se.BASE=new se(ke.Gx,ke.Gy,Re);se.ZERO=new se(re,Re,re);function Aa(t,e){let r=e.negate();return t?r:e}var Wl=new WeakMap,ce=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,Wl.delete(this)}hasEvenY(){return this.y%an===re}static fromCompressedHex(e){let r=e.length===32,n=cn(r?e:e.subarray(1));if(!Yl(n))throw new Error("Point is not on curve");let i=$y(n),o=$_(i),s=(o&Re)===Re;r?s&&(o=P(-o)):(e[0]&1)===1!==s&&(o=P(-o));let a=new ce(n,o);return a.assertValidity(),a}static fromUncompressedHex(e){let r=cn(e.subarray(1,Yt+1)),n=cn(e.subarray(Yt+1,Yt*2+1)),i=new ce(r,n);return i.assertValidity(),i}static fromHex(e){let r=ki(e),n=r.length,i=r[0];if(n===Yt)return this.fromCompressedHex(r);if(n===Vy&&(i===2||i===3))return this.fromCompressedHex(r);if(n===qy&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Vy} compressed bytes or ${qy} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return ce.BASE.multiply(Ca(e))}static fromSignature(e,r,n){let{r:i,s:o}=Wy(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=Zl(ki(e)),{n:a}=ke,c=n===2||n===3?i+a:i,u=Oi(c,a),l=P(-s*u,a),f=P(o*u,a),h=n&1?"03":"02",d=ce.fromHex(h+Bi(c)),p=ce.BASE.multiplyAndAddUnsafe(d,l,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(e=!1){return Vn(this.toHex(e))}toHex(e=!1){let r=Bi(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${Bi(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(!Yl(r)||!Yl(n))throw new Error(e);let i=P(n*n),o=$y(r);if(P(i-o)!==re)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new ce(this.x,P(-this.y))}double(){return se.fromAffine(this).double().toAffine()}add(e){return se.fromAffine(this).add(se.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return se.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=se.fromAffine(this),o=r===re||r===Re||this!==ce.BASE?i.multiplyUnsafe(r):i.multiply(r),s=se.fromAffine(e).multiplyUnsafe(n),a=o.add(s);return a.equals(se.ZERO)?void 0:a.toAffine()}};ce.BASE=new ce(ke.Gx,ke.Gy);ce.ZERO=new ce(re,re);function Hy(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function Gy(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${Ni(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:cn(r),left:t.subarray(e+2)}}function K_(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${Ni(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=Gy(t.subarray(2)),{data:n,left:i}=Gy(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Ni(i)}`);return{r:e,s:n}}var hr=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?Ni(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new hr(Ta(i.slice(0,64)),Ta(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}=K_(r?e:Vn(e));return new hr(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!Io(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Io(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=ke.n>>Re;return this.s>e}normalizeS(){return this.hasHighS()?new hr(this.r,P(-this.s,ke.n)):this}toDERRawBytes(){return Vn(this.toDERHex())}toDERHex(){let e=Hy(So(this.s)),r=Hy(So(this.r)),n=e.length/2,i=r.length/2,o=So(n),s=So(i);return`30${So(i+n+4)}02${s}${r}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return Vn(this.toCompactHex())}toCompactHex(){return Bi(this.r)+Bi(this.s)}};function sn(...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 o=t[n];r.set(o,i),i+=o.length}return r}var V_=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ni(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=V_[t[r]];return e}var q_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Bi(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(re<=t&&t<q_))throw new Error("Expected number 0 <= n < 2^256");return t.toString(16).padStart(64,"0")}function Ql(t){let e=Vn(Bi(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function So(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ta(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function Vn(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),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[r]=o}return e}function cn(t){return Ta(Ni(t))}function ki(t){return t instanceof Uint8Array?Uint8Array.from(t):Vn(t)}function Yy(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&Io(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(t,e=ke.P){let r=t%e;return r>=re?r:e+r}function Lt(t,e){let{P:r}=ke,n=t;for(;e-- >re;)n*=n,n%=r;return n}function $_(t){let{P:e}=ke,r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=t*t*t%e,u=c*c*t%e,l=Lt(u,Ao)*u%e,f=Lt(l,Ao)*u%e,h=Lt(f,an)*c%e,d=Lt(h,n)*h%e,p=Lt(d,i)*d%e,m=Lt(p,s)*p%e,y=Lt(m,a)*m%e,g=Lt(y,s)*p%e,x=Lt(g,Ao)*u%e,_=Lt(x,o)*d%e,k=Lt(_,r)*c%e,C=Lt(k,an);if(C*C%e!==t)throw new Error("Cannot find square root");return C}function Oi(t,e=ke.P){if(t===re||e<=re)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=P(t,e),n=e,i=re,o=Re,s=Re,a=re;for(;r!==re;){let u=n/r,l=n%r,f=i-s*u,h=o-a*u;n=r,r=l,i=s,o=a,s=f,a=h}if(n!==Re)throw new Error("invert: does not exist");return P(i,e)}function z_(t,e=ke.P){let r=new Array(t.length),n=t.reduce((o,s,a)=>s===re?o:(r[a]=o,P(o*s,e)),Re),i=Oi(n,e);return t.reduceRight((o,s,a)=>s===re?o:(r[a]=P(o*r[a],e),P(o*s,e)),i),r}function H_(t){let e=t.length*8-Pi*8,r=cn(t);return e>0?r>>BigInt(e):r}function Zl(t,e=!1){let r=H_(t);if(e)return r;let{n}=ke;return r>=n?r-n:r}var Li,Ro,Xl=class{constructor(e,r){if(this.hashLen=e,this.qByteLen=r,typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(...e){return Wt.hmacSha256(this.k,...e)}hmacSync(...e){return Ro(this.k,...e)}checkSync(){if(typeof Ro!="function")throw new Ia("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),e.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),e.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return sn(...r)}generateSync(){this.checkSync(),this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return sn(...r)}};function Io(t){return re<t&&t<ke.n}function Yl(t){return re<t&&t<ke.P}function G_(t,e,r,n=!0){let{n:i}=ke,o=Zl(t,!0);if(!Io(o))return;let s=Oi(o,i),a=ce.BASE.multiply(o),c=P(a.x,i);if(c===re)return;let u=P(s*P(e+r*c,i),i);if(u===re)return;let l=new hr(c,u),f=(a.x===l.r?0:2)|Number(a.y&Re);return n&&l.hasHighS()&&(l=l.normalizeS(),f^=1),{sig:l,recovery:f}}function Ca(t){let e;if(typeof t=="bigint")e=t;else if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)e=BigInt(t);else if(typeof t=="string"){if(t.length!==2*Pi)throw new Error("Expected 32 bytes of private key");e=Ta(t)}else if(t instanceof Uint8Array){if(t.length!==Pi)throw new Error("Expected 32 bytes of private key");e=cn(t)}else throw new TypeError("Expected valid private key");if(!Io(e))throw new Error("Expected private key: 0 < key < n");return e}function Y_(t){return t instanceof ce?(t.assertValidity(),t):ce.fromHex(t)}function Wy(t){if(t instanceof hr)return t.assertValidity(),t;try{return hr.fromDER(t)}catch{return hr.fromCompact(t)}}function Jl(t,e=!1){return ce.fromPrivateKey(t).toRawBytes(e)}function Qy(t){let e=t.length>Yt?t.slice(0,Yt):t;return cn(e)}function W_(t){let e=Qy(t),r=P(e,ke.n);return Xy(r<re?e:r)}function Xy(t){return Ql(t)}function Q_(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ki(t),i=Ca(e),o=[Xy(i),W_(n)];if(r!=null){r===!0&&(r=Wt.randomBytes(Yt));let c=ki(r);if(c.length!==Yt)throw new Error(`sign: Expected ${Yt} bytes of extra data`);o.push(c)}let s=sn(...o),a=Qy(n);return{seed:s,m:a,d:i}}function X_(t,e){let{sig:r,recovery:n}=t,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},e),s=i?r.toDERRawBytes():r.toCompactRawBytes();return o?[s,n]:s}async function Zy(t,e,r={}){let{seed:n,m:i,d:o}=Q_(t,e,r.extraEntropy),s=new Xl(F_,Pi);await s.reseed(n);let a;for(;!(a=G_(await s.generate(),i,o,r.canonical));)await s.reseed();return X_(a,r)}var Z_={strict:!0};function Jy(t,e,r,n=Z_){let i;try{i=Wy(t),e=ki(e)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=Zl(e),c;try{c=Y_(r)}catch{return!1}let{n:u}=ke,l=Oi(s,u),f=P(a*l,u),h=P(o*l,u),d=ce.BASE.multiplyAndAddUnsafe(c,f,h);return d?P(d.x,u)===o:!1}ce.BASE._setWindowSize(8);var At={node:U_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Ra={},Wt={bytesToHex:Ni,hexToBytes:Vn,concatBytes:sn,mod:P,invert:Oi,isValidPrivateKey(t){try{return Ca(t),!0}catch{return!1}},_bigintTo32Bytes:Ql,_normalizePrivateKey:Ca,hashToPrivateKey:t=>{t=ki(t);let e=Pi+8;if(t.length<e||t.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=P(cn(t),ke.n-Re)+Re;return Ql(r)},randomBytes:(t=32)=>{if(At.web)return At.web.getRandomValues(new Uint8Array(t));if(At.node){let{randomBytes:e}=At.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Wt.hashToPrivateKey(Wt.randomBytes(Pi+8)),precompute(t=8,e=ce.BASE){let r=e===ce.BASE?e:new ce(e.x,e.y);return r._setWindowSize(t),r.multiply(Ao),r},sha256:async(...t)=>{if(At.web){let e=await At.web.subtle.digest("SHA-256",sn(...t));return new Uint8Array(e)}else if(At.node){let{createHash:e}=At.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(At.web){let r=await At.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=sn(...e),i=await At.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(At.node){let{createHmac:r}=At.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=Ra[t];if(r===void 0){let n=await Wt.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=sn(n,n),Ra[t]=r}return Wt.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof Li!="function")throw new Ia("sha256Sync is undefined, you need to set it");let r=Ra[t];if(r===void 0){let n=Li(Uint8Array.from(t,i=>i.charCodeAt(0)));r=sn(n,n),Ra[t]=r}return Li(r,...e)},_JacobianPoint:se};Object.defineProperties(Wt,{sha256Sync:{configurable:!1,get(){return Li},set(t){Li||(Li=t)}},hmacSha256Sync:{configurable:!1,get(){return Ro},set(t){Ro||(Ro=t)}}});function Lr(t){if(isNaN(t)||t<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Wt.randomBytes(t)}var qn={};rt(qn,{jwkToPkcs1:()=>eS,jwkToPkix:()=>rS,pkcs1ToJwk:()=>j_,pkixToJwk:()=>tS});var TB=M(xo(),1),CB=M(va(),1),Pr=M(fe(),1);function j_(t){let e=Pr.default.asn1.fromDer($(t,"ascii")),r=Pr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Gt(r.n),e:Gt(r.e),d:Gt(r.d),p:Gt(r.p),q:Gt(r.q),dp:Gt(r.dP),dq:Gt(r.dQ),qi:Gt(r.qInv),alg:"RS256"}}function eS(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let e=Pr.default.pki.privateKeyToAsn1({n:St(t.n),e:St(t.e),d:St(t.d),p:St(t.p),q:St(t.q),dP:St(t.dp),dQ:St(t.dq),qInv:St(t.qi)});return F(Pr.default.asn1.toDer(e).getBytes(),"ascii")}function tS(t){let e=Pr.default.asn1.fromDer($(t,"ascii")),r=Pr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Gt(r.n),e:Gt(r.e)}}function rS(t){if(t.n==null||t.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let e=Pr.default.pki.publicKeyToAsn1({n:St(t.n),e:St(t.e)});return F(Pr.default.asn1.toDer(e).getBytes(),"ascii")}var NB=M(va(),1),jl=M(fe(),1);function jy(t,e){return e.map(r=>St(t[r]))}function eg(t){return jl.default.pki.setRsaPrivateKey(...jy(t,["n","e","d","p","q","dp","dq","qi"]))}function tg(t){return jl.default.pki.setRsaPublicKey(...jy(t,["n","e"]))}async function rg(t){let e=await mt.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 og(e);return{privateKey:r[0],publicKey:r[1]}}async function ef(t){let r=[await mt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await nS(t)],n=await og({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function ng(t,e){let r=await mt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await mt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(e));return new Uint8Array(n,0,n.byteLength)}async function ig(t,e,r){let n=await mt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await mt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r)}async function og(t){if(t.privateKey==null||t.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([mt.get().subtle.exportKey("jwk",t.privateKey),mt.get().subtle.exportKey("jwk",t.publicKey)])}async function nS(t){return await mt.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 sg(t,e,r,n){let i=e?tg(t):eg(t),o=$(Uint8Array.from(r),"ascii"),s=n(o,i);return F(s,"ascii")}function ag(t,e){return sg(t,!0,e,(r,n)=>n.encrypt(r))}function cg(t,e){return sg(t,!1,e,(r,n)=>n.decrypt(r))}async function Mi(t,e){let n=await ba().encrypt(t,e);return En.encode(n)}var Co=class{constructor(e){this._key=e}async verify(e,r){return await ig(this._key,r,e)}marshal(){return qn.jwkToPkix(this._key)}get bytes(){return ir.encode({Type:Ce.RSA,Data:this.marshal()}).subarray()}encrypt(e){return ag(this._key,e)}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}},Ui=class{constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Lr(16)}async sign(e){return await ng(this._key,e)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Co(this._publicKey)}decrypt(e){return cg(this._key,e)}marshal(){return qn.jwkToPkcs1(this._key)}get bytes(){return or.encode({Type:Ce.RSA,Data:this.marshal()}).subarray()}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}async id(){let e=await this.public.hash();return $(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new To.default.util.ByteBuffer(this.marshal()),i=To.default.asn1.fromDer(n),o=To.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return To.default.pki.encryptRsaPrivateKey(o,e,s)}else{if(r==="libp2p-key")return await Mi(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function oS(t){let e=qn.pkcs1ToJwk(t),r=await ef(e);return new Ui(r.privateKey,r.publicKey)}function sS(t){let e=qn.pkixToJwk(t);return new Co(e)}async function aS(t){let e=await ef(t);return new Ui(e.privateKey,e.publicKey)}async function cS(t){let e=await rg(t);return new Ui(e.privateKey,e.publicKey)}var ff={};rt(ff,{Ed25519PrivateKey:()=>zn,Ed25519PublicKey:()=>No,generateKeyPair:()=>CS,generateKeyPairFromSeed:()=>_g,unmarshalEd25519PrivateKey:()=>IS,unmarshalEd25519PublicKey:()=>TS});var uS=M(Tn(),1);var tt=BigInt(0),ne=BigInt(1),fn=BigInt(2),lS=BigInt(8),ug=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Ie=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:ug,n:ug,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var pg=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),Do=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),ZB=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),fS=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),hS=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),dS=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),pS=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Z=class{constructor(e,r,n,i){this.x=e,this.y=r,this.z=n,this.t=i}static fromAffine(e){if(!(e instanceof Be))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(Be.ZERO)?Z.ZERO:new Z(e.x,e.y,ne,R(e.x*e.y))}static toAffineBatch(e){let r=gS(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){fg(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e,c=R(r*a),u=R(o*i),l=R(n*a),f=R(s*i);return c===u&&l===f}negate(){return new Z(R(-this.x),this.y,this.z,R(-this.t))}double(){let{x:e,y:r,z:n}=this,{a:i}=Ie,o=R(e*e),s=R(r*r),a=R(fn*R(n*n)),c=R(i*o),u=e+r,l=R(R(u*u)-o-s),f=c+s,h=f-a,d=c-s,p=R(l*h),m=R(f*d),y=R(l*d),g=R(h*f);return new Z(p,m,g,y)}add(e){fg(e);let{x:r,y:n,z:i,t:o}=this,{x:s,y:a,z:c,t:u}=e,l=R((n-r)*(a+s)),f=R((n+r)*(a-s)),h=R(f-l);if(h===tt)return this.double();let d=R(i*fn*u),p=R(o*fn*c),m=p+d,y=f+l,g=p-d,x=R(m*h),_=R(y*g),k=R(m*g),C=R(h*y);return new Z(x,_,C,k)}subtract(e){return this.add(e.negate())}precomputeWindow(e){let r=1+256/e,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(e-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(e,r){!r&&this.equals(Z.BASE)&&(r=Be.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&&af.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=Z.normalizeZ(i),af.set(r,i)));let o=Z.ZERO,s=Z.BASE,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);e>>=f,p>c&&(p-=l,e+=ne);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?s=s.add(lg(g,i[m])):o=o.add(lg(x,i[y]))}return Z.normalizeZ([o,s])[0]}multiply(e,r){return this.wNAF(Ba(e,Ie.l),r)}multiplyUnsafe(e){let r=Ba(e,Ie.l,!1),n=Z.BASE,i=Z.ZERO;if(r===tt)return i;if(this.equals(i)||r===ne)return this;if(this.equals(n))return this.wNAF(r);let o=i,s=this;for(;r>tt;)r&ne&&(o=o.add(s)),s=s.double(),r>>=ne;return o}isSmallOrder(){return this.multiplyUnsafe(Ie.h).equals(Z.ZERO)}isTorsionFree(){let e=this.multiplyUnsafe(Ie.l/fn).double();return Ie.l%fn&&(e=e.add(this)),e.equals(Z.ZERO)}toAffine(e){let{x:r,y:n,z:i}=this,o=this.equals(Z.ZERO);e==null&&(e=o?lS:La(i));let s=R(r*e),a=R(n*e),c=R(i*e);if(o)return Be.ZERO;if(c!==ne)throw new Error("invZ was invalid");return new Be(s,a)}fromRistrettoBytes(){nf()}toRistrettoBytes(){nf()}fromRistrettoHash(){nf()}};Z.BASE=new Z(Ie.Gx,Ie.Gy,ne,R(Ie.Gx*Ie.Gy));Z.ZERO=new Z(tt,ne,ne,tt);function lg(t,e){let r=e.negate();return t?r:e}function fg(t){if(!(t instanceof Z))throw new TypeError("ExtendedPoint expected")}function rf(t){if(!(t instanceof yt))throw new TypeError("RistrettoPoint expected")}function nf(){throw new Error("Legacy method: switch to RistrettoPoint")}var yt=class{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){let{d:r}=Ie,n=R(Do*e*e),i=R((n+ne)*dS),o=BigInt(-1),s=R((o-r*n)*R(n+r)),{isValid:a,value:c}=uf(i,s),u=R(c*e);ln(u)||(u=R(-u)),a||(c=u),a||(o=n);let l=R(o*(n-ne)*pS-s),f=c*c,h=R((c+c)*s),d=R(l*fS),p=R(ne-f),m=R(ne+f);return new Z(R(h*m),R(p*d),R(d*m),R(h*p))}static hashToCurve(e){e=hn(e,64);let r=of(e.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=of(e.slice(32,64)),o=this.calcElligatorRistrettoMap(i);return new yt(n.add(o))}static fromHex(e){e=hn(e,32);let{a:r,d:n}=Ie,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",o=of(e);if(!ES(Bo(o),e)||ln(o))throw new Error(i);let s=R(o*o),a=R(ne+r*s),c=R(ne-r*s),u=R(a*a),l=R(c*c),f=R(r*n*u-l),{isValid:h,value:d}=dg(R(f*l)),p=R(d*c),m=R(d*p*f),y=R((o+o)*p);ln(y)&&(y=R(-y));let g=R(a*m),x=R(y*g);if(!h||ln(x)||g===tt)throw new Error(i);return new yt(new Z(y,g,ne,x))}toRawBytes(){let{x:e,y:r,z:n,t:i}=this.ep,o=R(R(n+r)*R(n-r)),s=R(e*r),a=R(s*s),{value:c}=dg(R(o*a)),u=R(c*o),l=R(c*s),f=R(u*l*i),h;if(ln(i*f)){let p=R(r*Do),m=R(e*Do);e=p,r=m,h=R(u*hS)}else h=l;ln(e*f)&&(r=R(-r));let d=R((n-r)*h);return ln(d)&&(d=R(-d)),Bo(d)}toHex(){return Lo(this.toRawBytes())}toString(){return this.toHex()}equals(e){rf(e);let r=this.ep,n=e.ep,i=R(r.x*n.y)===R(r.y*n.x),o=R(r.y*n.y)===R(r.x*n.x);return i||o}add(e){return rf(e),new yt(this.ep.add(e.ep))}subtract(e){return rf(e),new yt(this.ep.subtract(e.ep))}multiply(e){return new yt(this.ep.multiply(e))}multiplyUnsafe(e){return new yt(this.ep.multiplyUnsafe(e))}};yt.BASE=new yt(Z.BASE);yt.ZERO=new yt(Z.ZERO);var af=new WeakMap,Be=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,af.delete(this)}static fromHex(e,r=!0){let{d:n,P:i}=Ie;e=hn(e,32);let o=e.slice();o[31]=e[31]&-129;let s=Po(o);if(r&&s>=i)throw new Error("Expected 0 < hex < P");if(!r&&s>=pg)throw new Error("Expected 0 < hex < 2**256");let a=R(s*s),c=R(a-ne),u=R(n*a+ne),{isValid:l,value:f}=uf(c,u);if(!l)throw new Error("Point.fromHex: invalid y coordinate");let h=(f&ne)===ne;return(e[31]&128)!==0!==h&&(f=R(-f)),new Be(f,s)}static async fromPrivateKey(e){return(await Pa(e)).point}toRawBytes(){let e=Bo(this.y);return e[31]|=this.x&ne?128:0,e}toHex(){return Lo(this.toRawBytes())}toX25519(){let{y:e}=this,r=R((ne+e)*La(ne-e));return Bo(r)}isTorsionFree(){return Z.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Be(R(-this.x),this.y)}add(e){return Z.fromAffine(this).add(Z.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return Z.fromAffine(this).multiply(e,this).toAffine()}};Be.BASE=new Be(Ie.Gx,Ie.Gy);Be.ZERO=new Be(tt,ne);var $n=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromHex(e){let r=hn(e,64),n=Be.fromHex(r.slice(0,32),!1),i=Po(r.slice(32,64));return new $n(n,i)}assertValidity(){let{r:e,s:r}=this;if(!(e instanceof Be))throw new Error("Expected Point instance");return Ba(r,Ie.l,!1),this}toRawBytes(){let e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(Bo(this.s),32),e}toHex(){return Lo(this.toRawBytes())}};function hg(...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 o=t[n];r.set(o,i),i+=o.length}return r}var mS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Lo(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=mS[t[r]];return e}function cf(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),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[r]=o}return e}function mg(t){let r=t.toString(16).padStart(64,"0");return cf(r)}function Bo(t){return mg(t).reverse()}function ln(t){return(R(t)&ne)===ne}function Po(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Lo(Uint8Array.from(t).reverse()))}var yS=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function of(t){return R(Po(t)&yS)}function R(t,e=Ie.P){let r=t%e;return r>=tt?r:e+r}function La(t,e=Ie.P){if(t===tt||e<=tt)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=R(t,e),n=e,i=tt,o=ne,s=ne,a=tt;for(;r!==tt;){let u=n/r,l=n%r,f=i-s*u,h=o-a*u;n=r,r=l,i=s,o=a,s=f,a=h}if(n!==ne)throw new Error("invert: does not exist");return R(i,e)}function gS(t,e=Ie.P){let r=new Array(t.length),n=t.reduce((o,s,a)=>s===tt?o:(r[a]=o,R(o*s,e)),ne),i=La(n,e);return t.reduceRight((o,s,a)=>s===tt?o:(r[a]=R(o*r[a],e),R(o*s,e)),i),r}function dr(t,e){let{P:r}=Ie,n=t;for(;e-- >tt;)n*=n,n%=r;return n}function wS(t){let{P:e}=Ie,r=BigInt(5),n=BigInt(10),i=BigInt(20),o=BigInt(40),s=BigInt(80),c=t*t%e*t%e,u=dr(c,fn)*c%e,l=dr(u,ne)*t%e,f=dr(l,r)*l%e,h=dr(f,n)*f%e,d=dr(h,i)*h%e,p=dr(d,o)*d%e,m=dr(p,s)*p%e,y=dr(m,s)*p%e,g=dr(y,n)*f%e;return{pow_p_5_8:dr(g,fn)*t%e,b2:c}}function uf(t,e){let r=R(e*e*e),n=R(r*r*e),i=wS(t*n).pow_p_5_8,o=R(t*r*i),s=R(e*o*o),a=o,c=R(o*Do),u=s===t,l=s===R(-t),f=s===R(-t*Do);return u&&(o=a),(l||f)&&(o=c),ln(o)&&(o=R(-o)),{isValid:u||l,value:o}}function dg(t){return uf(ne,t)}function Da(t){return R(Po(t),Ie.l)}function ES(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 hn(t,e){let r=t instanceof Uint8Array?Uint8Array.from(t):cf(t);if(typeof e=="number"&&r.length!==e)throw new Error(`Expected ${e} bytes`);return r}function Ba(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(tt<t)return t}else if(tt<=t)return t}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function xS(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function vS(t){if(t=typeof t=="bigint"||typeof t=="number"?mg(Ba(t,pg)):hn(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function bS(t){let e=xS(t.slice(0,32)),r=t.slice(32,64),n=Da(e),i=Be.BASE.multiply(n),o=i.toRawBytes();return{head:e,prefix:r,scalar:n,point:i,pointBytes:o}}var sf;async function Pa(t){return bS(await dn.sha512(vS(t)))}async function lf(t){return(await Pa(t)).pointBytes}async function yg(t,e){t=hn(t);let{prefix:r,scalar:n,pointBytes:i}=await Pa(e),o=Da(await dn.sha512(r,t)),s=Be.BASE.multiply(o),a=Da(await dn.sha512(s.toRawBytes(),i,t)),c=R(o+a*n,Ie.l);return new $n(s,c).toRawBytes()}function _S(t,e,r){e=hn(e),r instanceof Be||(r=Be.fromHex(r,!1));let{r:n,s:i}=t instanceof $n?t.assertValidity():$n.fromHex(t),o=Z.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:o,pub:r,msg:e}}function SS(t,e,r,n){let i=Da(n),o=Z.fromAffine(t).multiplyUnsafe(i);return Z.fromAffine(e).add(o).subtract(r).multiplyUnsafe(Ie.h).equals(Z.ZERO)}async function gg(t,e,r){let{r:n,SB:i,msg:o,pub:s}=_S(t,e,r),a=await dn.sha512(n.toRawBytes(),s.toRawBytes(),o);return SS(s,n,i,a)}Be.BASE._setWindowSize(8);var un={node:uS,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},dn={bytesToHex:Lo,hexToBytes:cf,concatBytes:hg,getExtendedPublicKey:Pa,mod:R,invert:La,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=hn(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return R(Po(t),Ie.l-ne)+ne},randomBytes:(t=32)=>{if(un.web)return un.web.getRandomValues(new Uint8Array(t));if(un.node){let{randomBytes:e}=un.node;return new Uint8Array(e(t).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>dn.randomBytes(32),sha512:async(...t)=>{let e=hg(...t);if(un.web){let r=await un.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(r)}else{if(un.node)return Uint8Array.from(un.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(t=8,e=Be.BASE){let r=e.equals(Be.BASE)?e:new Be(e.x,e.y);return r._setWindowSize(t),r.multiply(fn),r},sha512Sync:void 0};Object.defineProperties(dn,{sha512Sync:{configurable:!1,get(){return sf},set(t){sf||(sf=t)}}});var Fi=32,Nr=64,Na=32;async function wg(){let t=dn.randomPrivateKey(),e=await lf(t);return{privateKey:bg(t,e),publicKey:e}}async function Eg(t){if(t.length!==Na)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 lf(e);return{privateKey:bg(e,r),publicKey:r}}async function xg(t,e){let r=t.subarray(0,Na);return await yg(e,r)}async function vg(t,e,r){return await gg(e,r,t)}function bg(t,e){let r=new Uint8Array(Nr);for(let n=0;n<Na;n++)r[n]=t[n],r[Na+n]=e[n];return r}var No=class{constructor(e){this._key=Ki(e,Fi)}async verify(e,r){return await vg(this._key,r,e)}marshal(){return this._key}get bytes(){return ir.encode({Type:Ce.Ed25519,Data:this.marshal()}).subarray()}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}},zn=class{constructor(e,r){this._key=Ki(e,Nr),this._publicKey=Ki(r,Fi)}async sign(e){return await xg(this._key,e)}get public(){return new No(this._publicKey)}marshal(){return this._key}get bytes(){return or.encode({Type:Ce.Ed25519,Data:this.marshal()}).subarray()}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}async id(){let e=Kr.digest(this.public.bytes);return Oe.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await Mi(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function IS(t){if(t.length>Nr){t=Ki(t,Nr+Fi);let n=t.subarray(0,Nr),i=t.subarray(Nr,t.length);return new zn(n,i)}t=Ki(t,Nr);let e=t.subarray(0,Nr),r=t.subarray(Fi);return new zn(e,r)}function TS(t){return t=Ki(t,Fi),new No(t)}async function CS(){let{privateKey:t,publicKey:e}=await wg();return new zn(t,e)}async function _g(t){let{privateKey:e,publicKey:r}=await Eg(t);return new zn(e,r)}function Ki(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new w(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var df={};rt(df,{Secp256k1PrivateKey:()=>Oo,Secp256k1PublicKey:()=>ko,generateKeyPair:()=>PS,unmarshalSecp256k1PrivateKey:()=>BS,unmarshalSecp256k1PublicKey:()=>LS});function Sg(){return Wt.randomPrivateKey()}async function Ag(t,e){let{digest:r}=await nt.digest(e);try{return await Zy(r,t)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function Rg(t,e,r){try{let{digest:n}=await nt.digest(r);return Jy(e,n,t)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function Ig(t){return ce.fromHex(t).toRawBytes(!0)}function Tg(t){try{Jl(t,!0)}catch(e){throw new w(String(e),"ERR_INVALID_PRIVATE_KEY")}}function hf(t){try{ce.fromHex(t)}catch(e){throw new w(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Cg(t){try{return Jl(t,!0)}catch(e){throw new w(String(e),"ERR_INVALID_PRIVATE_KEY")}}var ko=class{constructor(e){hf(e),this._key=e}async verify(e,r){return await Rg(this._key,r,e)}marshal(){return Ig(this._key)}get bytes(){return ir.encode({Type:Ce.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}},Oo=class{constructor(e,r){this._key=e,this._publicKey=r??Cg(e),Tg(this._key),hf(this._publicKey)}async sign(e){return await Ag(this._key,e)}get public(){return new ko(this._publicKey)}marshal(){return this._key}get bytes(){return or.encode({Type:Ce.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return xe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await nt.digest(this.bytes);return e}async id(){let e=await this.public.hash();return $(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await Mi(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function BS(t){return new Oo(t)}function LS(t){return new ko(t)}async function PS(){let t=Sg();return new Oo(t)}var kr={rsa:tf,ed25519:ff,secp256k1:df};function pf(t){let e=Object.keys(kr).join(" / ");return new w(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function mf(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return kr[t];throw pf(t)}async function Oa(t,e){return await mf(t).generateKeyPair(e??2048)}function Mo(t){let e=ir.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Ce.RSA:return kr.rsa.unmarshalRsaPublicKey(r);case Ce.Ed25519:return kr.ed25519.unmarshalEd25519PublicKey(r);case Ce.Secp256k1:return kr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw pf(e.Type??"RSA")}}function Dg(t,e){return e=(e??"rsa").toLowerCase(),mf(e),t.bytes}async function Vi(t){let e=or.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Ce.RSA:return await kr.rsa.unmarshalRsaPrivateKey(r);case Ce.Ed25519:return kr.ed25519.unmarshalEd25519PrivateKey(r);case Ce.Secp256k1:return kr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw pf(e.Type??"RSA")}}function Bg(t,e){return e=(e??"rsa").toLowerCase(),mf(e),t.bytes}async function Uo(t,e){try{let i=await Py(t,e);return await Vi(i)}catch{}let r=ka.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=ka.default.asn1.toDer(ka.default.pki.privateKeyToAsn1(r));return n=F(n.getBytes(),"ascii"),await kr.rsa.unmarshalRsaPrivateKey(n)}var xL=M(la(),1),kS=M(fe(),1);var Pg=M(kl(),1),Ng=M(qe(),1);var Lg={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Fo(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(Lg).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let o=Lg[i],s=(0,Pg.default)(t,e,r,n,o);return Ng.default.encode64(s,null)}var Ma=U("libp2p:keychain"),US="/pkcs8/",Og="/info/",Hn=new WeakMap,Gn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},yf={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function Or(t){return t==null||typeof t!="string"?!1:t===(0,kg.default)(t.trim())&&t.length>0}async function ye(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function pr(t){return new Ne(US+t)}function pn(t){return new Ne(Og+t)}var Yn=class{constructor(e,r){if(this.components=e,this.init=Zr(yf,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<Gn.minKeyLength)throw new Error(`dek.keyLength must be least ${Gn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Gn.minSaltLength)throw new Error(`dek.saltLength must be least ${Gn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Gn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Gn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Fo(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Hn.set(this,{dek:n})}static generateOptions(){let e=Object.assign({},yf),r=Math.ceil(Gn.minSaltLength/3)*3;return e.dek.salt=$(Lr(r),"base64"),e}static get options(){return yf}async createKey(e,r,n=2048){if(!Or(e)||e==="self")throw await ye(),new w("Invalid key name",ee.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await ye(),new w("Invalid key type",ee.ERR_INVALID_KEY_TYPE);let i=pr(e);if(await this.components.datastore.has(i))throw await ye(),new w("Key name already exists",ee.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await ye(),new w("Invalid RSA key size",ee.ERR_INVALID_KEY_SIZE);break;default:break}let s;try{let a=await Oa(r,n),c=await a.id(),u=Hn.get(this);if(u==null)throw new w("dek missing",ee.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);s={name:e,id:c};let h=this.components.datastore.batch();h.put(i,F(f)),h.put(pn(e),F(JSON.stringify(s))),await h.commit()}catch(a){throw await ye(),a}return s}async listKeys(){let e={prefix:Og},r=[];for await(let n of this.components.datastore.query(e))r.push(JSON.parse($(n.value)));return r}async findKeyById(e){try{let n=(await this.listKeys()).find(i=>i.id===e);if(n==null)throw new w(`Key with id '${e}' does not exist.`,ee.ERR_KEY_NOT_FOUND);return n}catch(r){throw await ye(),r}}async findKeyByName(e){if(!Or(e))throw await ye(),new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);let r=pn(e);try{let n=await this.components.datastore.get(r);return JSON.parse($(n))}catch(n){throw await ye(),Ma.error(n),new w(`Key '${e}' does not exist.`,ee.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!Or(e)||e==="self")throw await ye(),new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);let r=pr(e),n=await this.findKeyByName(e),i=this.components.datastore.batch();return i.delete(r),i.delete(pn(e)),await i.commit(),n}async renameKey(e,r){if(!Or(e)||e==="self")throw await ye(),new w(`Invalid old key name '${e}'`,ee.ERR_OLD_KEY_NAME_INVALID);if(!Or(r)||r==="self")throw await ye(),new w(`Invalid new key name '${r}'`,ee.ERR_NEW_KEY_NAME_INVALID);let n=pr(e),i=pr(r),o=pn(e),s=pn(r);if(await this.components.datastore.has(i))throw await ye(),new w(`Key '${r}' already exists`,ee.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(o),l=JSON.parse($(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(s,F(JSON.stringify(l))),f.delete(n),f.delete(o),await f.commit(),l}catch(c){throw await ye(),c}}async exportKey(e,r){if(!Or(e))throw await ye(),new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);if(r==null)throw await ye(),new w("Password is required",ee.ERR_PASSWORD_REQUIRED);let n=pr(e);try{let i=await this.components.datastore.get(n),o=$(i),s=Hn.get(this);if(s==null)throw new w("dek missing",ee.ERR_INVALID_PARAMETERS);let a=s.dek;return await(await Uo(o,a)).export(r)}catch(i){throw await ye(),i}}async exportPeerId(e){let r="temporary-password",n=await this.exportKey(e,r),i=await Uo(n,r);return await Gr(i.public.bytes,i.bytes)}async importKey(e,r,n){if(!Or(e)||e==="self")throw await ye(),new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);if(r==null)throw await ye(),new w("PEM encoded key is required",ee.ERR_PEM_REQUIRED);let i=pr(e);if(await this.components.datastore.has(i))throw await ye(),new w(`Key '${e}' already exists`,ee.ERR_KEY_ALREADY_EXISTS);let s;try{s=await Uo(r,n)}catch{throw await ye(),new w("Cannot read the key, most likely the password is wrong",ee.ERR_CANNOT_READ_KEY)}let a;try{a=await s.id();let l=Hn.get(this);if(l==null)throw new w("dek missing",ee.ERR_INVALID_PARAMETERS);let f=l.dek;r=await s.export(f)}catch(l){throw await ye(),l}let c={name:e,id:a},u=this.components.datastore.batch();return u.put(i,F(r)),u.put(pn(e),F(JSON.stringify(c))),await u.commit(),c}async importPeer(e,r){try{if(!Or(e))throw new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",ee.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",ee.ERR_MISSING_PRIVATE_KEY);let n=await Vi(r.privateKey),i=pr(e);if(await this.components.datastore.has(i))throw await ye(),new w(`Key '${e}' already exists`,ee.ERR_KEY_ALREADY_EXISTS);let s=Hn.get(this);if(s==null)throw new w("dek missing",ee.ERR_INVALID_PARAMETERS);let a=s.dek,c=await n.export(a),u={name:e,id:r.toString()},l=this.components.datastore.batch();return l.put(i,F(c)),l.put(pn(e),F(JSON.stringify(u))),await l.commit(),u}catch(n){throw await ye(),n}}async getPrivateKey(e){if(!Or(e))throw await ye(),new w(`Invalid key name '${e}'`,ee.ERR_INVALID_KEY_NAME);try{let r=pr(e),n=await this.components.datastore.get(r);return $(n)}catch(r){throw await ye(),Ma.error(r),new w(`Key '${e}' does not exist.`,ee.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(e,r){if(typeof e!="string")throw await ye(),new w(`Invalid old pass type '${typeof e}'`,ee.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await ye(),new w(`Invalid new pass type '${typeof r}'`,ee.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await ye(),new w(`Invalid pass length ${r.length}`,ee.ERR_INVALID_PASS_LENGTH);Ma("recreating keychain");let n=Hn.get(this);if(n==null)throw new w("dek missing",ee.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let o=r!=null&&this.init.dek?.salt!=null?Fo(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Hn.set(this,{dek:o});let s=await this.listKeys();for(let a of s){let c=await this.components.datastore.get(pr(a.name)),u=$(c),l=await Uo(u,i),f=o.toString(),h=await l.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(pr(a.name),F(h)),d.put(pn(a.name),F(JSON.stringify(p))),await d.commit()}Ma("keychain reconstructed")}};var HL=Symbol.for("@libp2p/transport");var mn;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(mn||(mn={}));var gf=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 Mg(t){let{name:e,metrics:r}=t,n;return r!=null?n=new gf({name:e,metrics:r}):n=new Map,n}var Wn=U("libp2p:transports"),Ua=class extends Xe{constructor(e,r={}){super(),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Mg({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??mn.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",S.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,S.ERR_DUPLICATE_TRANSPORT);Wn("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(Wn("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),Wn("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new w(`No transport available for address ${String(e)}`,S.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=S.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){Wn("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let o=i.filter(e),s=[];for(let u of o){Wn("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 G("listener:listening",{detail:l}))}),l.addEventListener("close",()=>{this.dispatchEvent(new G("listener:close",{detail:l}))}),s.push(l.listen(u))}if(s.length===0){r.push(n);continue}if((await Promise.allSettled(s)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==mn.NO_FATAL)throw new w(`Transport (${n}) could not listen on any available address`,S.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===mn.FATAL_ALL)throw new w(n,S.ERR_NO_VALID_ADDRESSES);Wn(`libp2p in dial mode only: ${n}`)}}async remove(e){Wn("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 Mr="/multistream/1.0.0";var Fg=Symbol.for("@achingbrain/uint8arraylist");function Ug(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 Fa(t){return!!t?.[Fg]}var be=class{constructor(...e){Object.defineProperty(this,Fg,{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(Fa(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(Fa(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=Ug(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Ug(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(Fa(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 Me(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Me(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),o=new be;return o.length=i,o.bufs=n,o}_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 o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.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(s);break}let f=e-a;n.push(s.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(s);continue}n.push(s.subarray(e-a));continue}if(l){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!Fa(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 o=256,s=new Int32Array(o);for(let f=0;f<o;f++)s[f]=-1;for(let f=0;f<i;f++)s[n[f]]=f;let a=s,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=Mt(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=xr(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=xr(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=xr(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=Mt(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=xr(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=xr(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=xr(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=xr(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=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof be)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!xe(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new be;return n.bufs=e,r==null&&(r=e.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};function Ka(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 Kg=4294967296,Rt=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 Rt(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 Rt(r,n)}toBytes(e,r=0){let n=Ka(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 Rt;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>Kg&&(i=0,++n>Kg&&(n=0))),new Rt(n,i)}static fromNumber(e){if(e===0)return new Rt;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 Rt(i,n)}static fromBytes(e,r=0){let n=Ka(e),i=new Rt,o=0;if(e.length-r>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(r)&127)<<o*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;o=0}else for(;o<4;++o){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i}if(e.length-r>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}else if(r<e.byteLength)for(;o<5;++o){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var FS=Math.pow(2,7),KS=Math.pow(2,14),VS=Math.pow(2,21),qS=Math.pow(2,28),$S=Math.pow(2,35),zS=Math.pow(2,42),HS=Math.pow(2,49),GS=Math.pow(2,56),YS=Math.pow(2,63),it={encodingLength(t){return t<FS?1:t<KS?2:t<VS?3:t<qS?4:t<$S?5:t<zS?6:t<HS?7:t<GS?8:t<YS?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=Mt(it.encodingLength(t))),Rt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return Rt.fromBytes(t,e).toNumber(!0)}};function Va(t){return t[Symbol.asyncIterator]!=null}var qa=t=>{let e=it.encodingLength(t),r=Mt(e);return it.encode(t,r),qa.bytes=e,r};qa.bytes=0;function $a(t,e){e=e??{};let r=e.lengthEncoder??qa;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return Va(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}$a.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??qa;return new be(r(t.byteLength),t)};var qi=M(gs(),1);var WS=8,QS=1024*1024*4,Qn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(Qn||(Qn={}));var wf=t=>{let e=it.decode(t);return wf.bytes=it.encodingLength(e),e};wf.bytes=0;function Ko(t,e){let r=new be,n=Qn.LENGTH,i=-1,o=e?.lengthDecoder??wf,s=e?.maxLengthLength??WS,a=e?.maxDataLength??QS;function*c(){for(;r.byteLength>0;){if(n===Qn.LENGTH)try{if(i=o(r),i<0)throw(0,qi.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,qi.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=Qn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,qi.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Qn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=Qn.LENGTH}}}return Va(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,qi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,qi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Ko.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await t.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Ko(n,{...e??{},onLength:o=>{r=o}})};function ZS(t){return t[Symbol.asyncIterator]!=null}function JS(t){if(ZS(t))return(async()=>{for await(let e of t)return e})();for(let e of t)return e}var Vg=JS;var Vo=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function qg(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 za(t,e,r){let n=r??{},i=qg(t);async function*o(){let s,a=()=>{s?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:l,abortCode:f}=n;throw new Vo(l,f)}let u=new Promise((l,f)=>{s=()=>{let{abortMessage:h,abortCode:d}=n;f(new Vo(h,d))}});c=await Promise.race([u,i.next()]),s=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 o()}function jS(t,e,r){return n=>t(za(n,e,r))}function gt(t,e,r){return{sink:jS(t.sink,e,{...r,onAbort:void 0}),source:za(t.source,e,r)}}var tA=U("libp2p:mss"),$g=F(`
49
+ `);function qo(t){let e=new be(t,$g);return $a.single(e)}function Xn(t,e,r={}){let n=qo(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function zg(t,e,r={}){let n=new be;for(let i of e)n.append(qo(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function rA(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await t.next(r)},i=n;e?.signal!=null&&(i=za(n,e.signal));let o=a=>{r=a},s=await Ue(i,a=>Ko(a,{onLength:o,maxDataLength:1024}),async a=>await Vg(a));if(s==null||s.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(s.get(s.byteLength-1)!==$g[0])throw tA.error("Invalid mss message - missing newline - %s",s.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return s.sublist(0,-1)}async function $i(t,e){let r=await rA(t,e);return $(r.subarray())}function Ef(t){let e=async function*(){let r=yield,n=new be;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new be;continue}for(n.append(i);n.length>=r;){let o=n.sublist(0,r);if(n.consume(r),r=yield o,r==null){n.length>0&&(r=yield n,n=new be);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 Ha(t){let e=Sn(),r=Ef(t.source),n=tr(),i,o=t.sink(async function*(){yield*e,yield*await n.promise}());return o.catch(a=>{i=a}),{reader:r,writer:e,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await o),source:r},rest:()=>e.end(),write:e.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var $o=U("libp2p:mss:select");async function zo(t,e,r={}){e=Array.isArray(e)?[...e]:[e];let{reader:n,writer:i,rest:o,stream:s}=Ha(t),a=e.shift();if(a==null)throw new Error("At least one protocol must be specified");$o('select: write ["%s", "%s"]',Mr,a);let c=F(Mr),u=F(a);zg(i,[c,u],r);let l=await $i(n,r);if($o('select: read "%s"',l),l===Mr&&(l=await $i(n,r),$o('select: read "%s"',l)),l===a)return o(),{stream:s,protocol:a};for(let f of e){$o('select: write "%s"',f),Xn(i,F(f),r);let h=await $i(n,r);if($o('select: read "%s" for "%s"',h,f),h===f)return o(),{stream:s,protocol:f}}throw o(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Ho=U("libp2p:mss:handle");async function Go(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:o,stream:s}=Ha(t);for(;;){let a=await $i(i,r);if(Ho('read "%s"',a),a===Mr){Ho('respond with "%s" for "%s"',Mr,a),Xn(n,F(Mr),r);continue}if(e.includes(a))return Xn(n,F(a),r),Ho('respond with "%s" for "%s"',a,a),o(),{stream:s,protocol:a};if(a==="ls"){Xn(n,new be(...e.map(c=>qo(F(c)))),r),Ho('respond with "%s" for %s',e,a);continue}Xn(n,F("na"),r),Ho('respond with "na" for "%s"',a)}}var Gg="OPEN",xf="CLOSING",Ga="CLOSED";var Yg=Symbol.for("@libp2p/connection");var iA=U("libp2p:connection"),vf=class{constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:o,getStreams:s,stat:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.stat={...a,status:Gg},this._newStream=i,this._close=o,this._getStreams=s,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[Yg](){return!0}get streams(){return this._getStreams()}async newStream(e,r){if(this.stat.status===xf)throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Ga)throw new w("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===Ga||this._closing)){this.stat.status=xf;try{this.streams.forEach(e=>{e.close()})}catch(e){iA.error(e)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Ga}}};function Wg(t){return new vf(t)}var oA=Symbol.for("@libp2p/topology");function Qg(t){return t!=null&&!!t[oA]}var bf=U("libp2p:registrar"),_f=32,Sf=64,Ya=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 new w(`No handler registered for protocol ${e}`,S.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new w(`Handler already registered for protocol ${e}`,S.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Zr.bind({ignoreUndefined:!0})({maxInboundStreams:_f,maxOutboundStreams:Sf},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(!Qg(r))throw bf.error("topology must be an instance of interfaces/topology"),new w("topology must be an instance of interfaces/topology",S.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 o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onDisconnect(r.remotePeer)}}).catch(n=>{bf.error(n)})}_onConnect(e){let r=e.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onConnect(r.remotePeer,r)}}).catch(n=>{bf.error(n)})}_onProtocolChange(e){let{peerId:r,protocols:n,oldProtocols:i}=e.detail,o=i.filter(a=>!n.includes(a)),s=n.filter(a=>!i.includes(a));for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let u of c.values())u.onDisconnect(r)}for(let a of s){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 Af=M(qr(),1);var Rf=M(Sr(),1);var _e=U("libp2p:upgrader");function aA(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return _f}function cA(t,e){try{let{options:r}=e.getHandler(t);return r.maxOutboundStreams}catch(r){if(r.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Sf}function Xg(t,e,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===e&&i.stat.protocol===t&&n++}),n}var Wa=class extends Xe{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??3e4}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new w("connection denied",S.ERR_CONNECTION_DENIED);let i,o,s,a,c,u=new Af.TimeoutController(this.inboundUpgradeTimeout);try{(0,Rf.setMaxListeners)?.(1/0,u.signal)}catch{}try{let l=gt(e,u.signal);if(e.source=l.source,e.sink=l.sink,await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",S.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),_e("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(_e("protecting the inbound connection"),f=await h.protect(e))}try{if(i=f,r?.skipEncryption!==!0){if({conn:i,remotePeer:o,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection?.(o,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{let h=e.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",S.ERR_INVALID_MULTIADDR);let d=ae(h);c="native",o=d}if(s=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,s=h.stream}}catch(h){throw _e.error("Failed to upgrade inbound connection",h),h}if(await this.components.connectionGater.denyInboundUpgradedConnection?.(o,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return _e("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:s,muxerFactory:a,remotePeer:o})}finally{this.components.connectionManager.afterUpgradeInbound(),u.clear()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;if(n!=null&&(i=ae(n),await this.components.connectionGater.denyOutboundConnection?.(i,e)===!0))throw new w("The multiaddr connection is blocked by connectionGater.denyOutboundConnection",S.ERR_CONNECTION_INTERCEPTED);let o,s,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),_e("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(o=l,r?.skipEncryption!==!0){if({conn:o,remotePeer:s,protocol:c}=await this._encryptOutbound(l,i),await this.components.connectionGater.denyOutboundEncryptedConnection?.(s,{...l,...o})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw new w("Encryption was skipped but no peer id was passed",S.ERR_INVALID_PEER);c="native",s=i}if(a=o,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...o},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw _e.error("Failed to upgrade outbound connection",f),await e.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection?.(s,{...l,...o})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return _e("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:s})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:o,remotePeer:s,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:m,protocol:y}=await Go(d,p);if(_e("%s: incoming stream opened on %s",n,y),l==null)return;let g=aA(y,this.components.registrar);if(Xg(y,"inbound",l)===g){d.abort(new w(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`,S.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}d.source=m.source,d.sink=m.sink,d.stat.protocol=y,this.components.peerStore.protoBook.add(s,[y]).catch(_=>{_e.error(_)}),l.addStream(d),this.components.metrics?.trackProtocolStream(d,l),this._onStream({connection:l,stream:d,protocol:y})}).catch(p=>{_e.error(p),d.stat.timeline.close==null&&d.close()})},onStreamEnd:d=>{l?.removeStream(d.id)}}),u=async(d,p={})=>{if(c==null)throw new w("Stream is not multiplexed",S.ERR_MUXER_UNAVAILABLE);_e("%s: starting new stream on %s",n,d);let m=await c.newStream(),y;try{if(p.signal==null){_e("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),y=new Af.TimeoutController(3e4),p.signal=y.signal;try{(0,Rf.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:x}=await zo(m,d,p),_=cA(x,this.components.registrar);if(Xg(x,"outbound",l)===_){let C=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${_}`,S.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(s,[x]).catch(C=>{_e.error(C)}),m.source=g.source,m.sink=g.sink,m.stat.protocol=x,this.components.metrics?.trackProtocolStream(m,l),m}catch(g){throw _e.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:new w(String(g),S.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(o.source),o.sink(c.source)]).catch(d=>{_e.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){_e.error(p)}finally{this.dispatchEvent(new G("connectionEnd",{detail:l}))}})().catch(p=>{_e.error(p)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let h=()=>{throw new w("connection is not multiplexed",S.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=Wg({remoteAddr:i.remoteAddr,remotePeer:s,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 G("connection",{detail:l})),l}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:o}=this.components.registrar.getHandler(i);o({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());_e("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Go(e,r,{writeBytes:!0}),o=this.connectionEncryption.get(i);if(o==null)throw new Error(`no crypto module found for ${i}`);return _e("encrypting inbound connection..."),{...await o.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),S.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());_e("selecting outbound crypto protocol",n);try{let{stream:i,protocol:o}=await zo(e,n,{writeBytes:!0}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return _e("encrypting outbound connection to %p",r),{...await s.secureOutbound(this.components.peerId,i,r),protocol:o}}catch(i){throw new w(String(i),S.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());_e("outbound selecting muxer %s",n);try{let{stream:i,protocol:o}=await zo(e,n,{writeBytes:!0});_e("%s selected as muxer protocol",o);let s=r.get(o);return{stream:i,muxerFactory:s}}catch(i){throw _e.error("error multiplexing outbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());_e("inbound handling muxers %s",n);try{let{stream:i,protocol:o}=await Go(e,n,{writeBytes:!0}),s=r.get(o);return{stream:i,muxerFactory:s}}catch(i){throw _e.error("error multiplexing inbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}};function Zg(t){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}var Qa=t=>{let e=it.encodingLength(t),r=Zg(e);return it.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 o=e(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}}}Qt.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Qa;return new be(r(t.byteLength),t)};var Yo=M(gs(),1),uA=8,lA=1024*1024*4,Zn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(Zn||(Zn={}));var If=t=>{let e=it.decode(t);return If.bytes=it.encodingLength(e),e};If.bytes=0;function Pt(t){return async function*(r){let n=new be,i=Zn.LENGTH,o=-1,s=t?.lengthDecoder??If,a=t?.maxLengthLength??uA,c=t?.maxDataLength??lA;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===Zn.LENGTH)try{if(o=s(n),o<0)throw(0,Yo.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,Yo.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let l=s.bytes;n.consume(l),t?.onLength!=null&&t.onLength(o),i=Zn.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Yo.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===Zn.DATA){if(n.byteLength<o)break;let l=n.sublist(0,o);n.consume(o),t?.onData!=null&&t.onData(l),yield l,i=Zn.LENGTH}}if(n.byteLength>0)throw(0,Yo.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Pt.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await t.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Pt({...e??{},onLength:o=>{r=o}})(n)};var Jn;(function(t){let e;t.codec=()=>(e==null&&(e=me((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 o of r.listenAddrs)n.uint32(18),n.bytes(o);if(r.observedAddr!=null&&(n.uint32(34),n.bytes(r.observedAddr)),r.protocols!=null)for(let o of r.protocols)n.uint32(26),n.string(o);r.signedPeerRecord!=null&&(n.uint32(66),n.bytes(r.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={listenAddrs:[],protocols:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>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(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(Jn||(Jn={}));var Jg={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Wo;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>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(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(Wo||(Wo={}));var fA,Qe=class{constructor(e){let{peerId:r,payloadType:n,payload:i,signature:o}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=o}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Wo.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return xe(this.marshal(),e.marshal())}async validate(e){let r=jg(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await Mo(this.peerId.publicKey).verify(r.subarray(),this.signature)}};fA=Qe;Qe.createFromProtobuf=async t=>{let e=Wo.decode(t),r=await Gr(e.publicKey);return new Qe({peerId:r,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};Qe.seal=async(t,e)=>{if(e.privateKey==null)throw new Error("Missing private key");let r=t.domain,n=t.codec,i=t.marshal(),o=jg(r,n,i),a=await(await Vi(e.privateKey)).sign(o.subarray());return new Qe({peerId:e,payloadType:n,payload:i,signature:a})};Qe.openAndCertify=async(t,e)=>{let r=await Qe.createFromProtobuf(t);if(!await r.validate(e))throw new w("envelope signature is not valid for the given domain",Jg.ERR_SIGNATURE_NOT_VALID);return r};var jg=(t,e,r)=>{let n=F(t),i=it.encode(n.byteLength),o=it.encode(e.length),s=it.encode(r.length);return new be(i,n,o,e,s,r)};function ew(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 Qo;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=me((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),o.multiaddr!=null&&o.multiaddr.byteLength>0&&(s.uint32(10),s.bytes(o.multiaddr)),a.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let a={multiaddr:new Uint8Array(0)},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let u=o.uint32();switch(u>>>3){case 1:a.multiaddr=o.bytes();break;default:o.skipType(u&7);break}}return a})),i),n.encode=o=>pe(o,n.codec()),n.decode=o=>de(o,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=me((n,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let s of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(s,i);o.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let o={peerId:new Uint8Array(0),seq:0n,addresses:[]},s=i==null?n.len:n.pos+i;for(;n.pos<s;){let a=n.uint32();switch(a>>>3){case 1:o.peerId=n.bytes();break;case 2:o.seq=n.uint64();break;case 3:o.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return o})),r),t.encode=n=>pe(n,t.codec()),t.decode=n=>de(n,t.codec())})(Qo||(Qo={}));var tw="libp2p-peer-record",rw=Uint8Array.from([3,1]);var He=class{constructor(e){this.domain=He.DOMAIN,this.codec=He.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=Qo.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof He)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!ew(this.multiaddrs,e.multiaddrs))}};He.createFromProtobuf=t=>{let e=Qo.decode(t),r=Hr(e.peerId),n=(e.addresses??[]).map(o=>Te(o.multiaddr)),i=e.seq;return new He({peerId:r,multiaddrs:n,seqNumber:i})};He.DOMAIN=tw;He.CODEC=rw;var Xa="0.0.0",nw="libp2p";var Cf=`js-libp2p/${Xa}`;var iw="0.1.0",ow="id",sw="id/push",aw="1.0.0",cw="1.0.0";var Xo=M(qr(),1);var Zo=M(Sr(),1),ge=U("libp2p:identify"),uw=1024*8,zi=class{constructor(e,r){this.components=e,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${ow}/${aw}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${sw}/${cw}`,this.host={protocolVersion:`${r.protocolPrefix}/${iw}`,...r.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(ge.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>{ge.error(o)})}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>{ge.error(o)})})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",F(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",F(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,e=>{this._handleIdentify(e).catch(r=>{ge.error(r)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,e=>{this._handlePush(e).catch(r=>{ge.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(s=>s.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),o=e.map(async s=>{let a,c=new Xo.TimeoutController(this.init.timeout);try{(0,Zo.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await s.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await gt(a,c.signal).sink(Ue([Jn.encode({listenAddrs:n,signedPeerRecord:r,protocols:i})],Qt()))}catch(u){ge.error("could not push identify update to peer",u)}finally{a?.close(),c.clear()}});await Promise.all(o)}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,o;if(i==null){n=new Xo.TimeoutController(this.init.timeout),i=n.signal;try{(0,Zo.setMaxListeners)?.(1/0,n.signal)}catch{}}try{o=await e.newStream([this.identifyProtocolStr],{signal:i});let s=gt(o,i),a=await Ue([],s,Pt({maxDataLength:this.init.maxIdentifyMessageSize??uw}),async c=>await dt(c));if(a==null)throw new w("No data could be retrieved",S.ERR_CONNECTION_ENDED);try{return Jn.decode(a)}catch(c){throw new w(String(c),S.ERR_INVALID_MESSAGE)}}finally{n?.clear(),o?.close()}}async identify(e,r={}){let n=await this._identify(e,r),{publicKey:i,listenAddrs:o,protocols:s,observedAddr:a,signedPeerRecord:c,agentVersion:u,protocolVersion:l}=n;if(i==null)throw new w("public key was missing from identify message",S.ERR_MISSING_PUBLIC_KEY);let f=await Gr(i);if(!e.remotePeer.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw new w("identified peer is our own peer id?",S.ERR_INVALID_PEER);let h=zi.getCleanMultiaddr(a);if(c!=null){ge("received signed peer record from %p",f);try{let d=await Qe.openAndCertify(c,He.DOMAIN);if(!d.peerId.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(d)){await this.components.peerStore.protoBook.set(f,s),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(l)),ge("identify completed for peer %p with protocols %o",f,s);return}}catch(d){ge("received invalid envelope, discard it and fallback to listenAddrs is available",d)}}else ge("no signed peer record received from %p",f);ge("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,o.map(d=>Te(d)))}catch(d){ge.error("received invalid addrs",d)}await this.components.peerStore.protoBook.set(f,s),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(l)),ge("identify completed for peer %p and protocols %o",f,s),ge("our observed address is %s",h),h!=null&&this.components.addressManager.getObservedAddrs().length<(this.init.maxObservedAddresses??1/0)&&(ge("storing our observed address %s",h?.toString()),this.components.addressManager.addObservedAddr(h))}async _handleIdentify(e){let{connection:r,stream:n}=e,i=new Xo.TimeoutController(this.init.timeout);try{(0,Zo.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=this.components.peerId.publicKey??new Uint8Array(0),s=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(h=>h.decapsulateCode(j("p2p").code)),c=s.peerRecordEnvelope;if(a.length>0&&c==null){let h=new He({peerId:this.components.peerId,multiaddrs:a}),d=await Qe.seal(h,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(d),c=d.marshal().subarray()}let u=Jn.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:o,listenAddrs:a.map(h=>h.bytes),signedPeerRecord:c,observedAddr:r.remoteAddr.bytes,protocols:s.protocols}),l=gt(n,i.signal),f=Ue([u],Qt());await l.sink(f)}catch(o){ge.error("could not respond to identify request",o)}finally{n.close(),i.clear()}}async _handlePush(e){let{connection:r,stream:n}=e,i=new Xo.TimeoutController(this.init.timeout);try{(0,Zo.setMaxListeners)?.(1/0,i.signal)}catch{}let o;try{let a=gt(n,i.signal),c=await Ue([],a,Pt({maxDataLength:this.init.maxIdentifyMessageSize??uw}),async u=>await dt(u));c!=null&&(o=Jn.decode(c))}catch(a){ge.error("received invalid message",a);return}finally{n.close(),i.clear()}if(o==null){ge.error("received invalid message");return}let s=r.remotePeer;if(this.components.peerId.equals(s)){ge("received push from ourselves?");return}if(ge("received push from %p",s),o.signedPeerRecord!=null){ge("received signedPeerRecord in push");try{let a=await Qe.openAndCertify(o.signedPeerRecord,He.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){ge("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(s,o.protocols);return}else ge("failed to consume signedPeerRecord sent in push")}catch(a){ge("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else ge("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(s,o.listenAddrs.map(a=>Te(a)))}catch(a){ge.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(s,o.protocols)}catch(a){ge.error("received invalid protocols",a)}ge("handled push from %p",s)}static getCleanMultiaddr(e){if(e!=null&&e.length>0)try{return Te(e)}catch{}}};var Jo;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.identifier!=null&&r.identifier!==""&&(n.uint32(10),n.string(r.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identifier:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identifier=r.string();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(Jo||(Jo={}));var Xt;(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=()=>en(r)}(e=t.StatusCode||(t.StatusCode={}));let n;t.codec=()=>(n==null&&(n=me((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.status!=null&&r[i.status]!==0&&(o.uint32(8),t.StatusCode.codec().encode(i.status,o)),i.data!=null&&i.data.byteLength>0&&(o.uint32(18),o.bytes(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={status:e.OK,data:new Uint8Array(0)},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.status=t.StatusCode.codec().decode(i);break;case 2:s.data=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),t.encode=i=>pe(i,t.codec()),t.decode=i=>de(i,t.codec())})(Xt||(Xt={}));var lw="0.0.1",fw="fetch";var hw=M(qr(),1),dw=M(Sr(),1);var Nt=U("libp2p:fetch"),Za=class{constructor(e,r){this.started=!1,this.components=e,this.protocol=`/${r.protocolPrefix??"libp2p"}/${fw}/${lw}`,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=>{Nt.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={}){Nt("dialing %s to %p",this.protocol,e);let i=await this.components.connectionManager.openConnection(e,n),o,s=n.signal,a;if(s==null){Nt("using default timeout of %d ms",this.init.timeout),o=new hw.TimeoutController(this.init.timeout),s=o.signal;try{(0,dw.setMaxListeners)?.(1/0,o.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:s});let c=gt(a,s);return Nt("fetch %s",r),await Ue([Jo.encode({identifier:r})],Qt(),c,Pt(),async function(l){let f=await dt(l);if(f==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let h=Xt.decode(f);switch(h.status){case Xt.StatusCode.OK:return Nt("received status for %s ok",r),h.data;case Xt.StatusCode.NOT_FOUND:return Nt("received status for %s not found",r),null;case Xt.StatusCode.ERROR:{Nt("received status for %s error",r);let d=$(h.data);throw new w("Error in fetch protocol response: "+d,S.ERR_INVALID_PARAMETERS)}default:throw Nt("received status for %s unknown",r),new w("Unknown response status",S.ERR_INVALID_MESSAGE)}})??null}finally{o?.clear(),a?.close()}}async handleMessage(e){let{stream:r}=e,n=this;await Ue(r,Pt(),async function*(i){let o=await dt(i);if(o==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let s=Jo.decode(o),a,c=n._getLookupFunction(s.identifier);if(c!=null){Nt("look up data with identifier %s",s.identifier);let u=await c(s.identifier);u!=null?(Nt("sending status for %s ok",s.identifier),a={status:Xt.StatusCode.OK,data:u}):(Nt("sending status for %s not found",s.identifier),a={status:Xt.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Nt("sending status for %s error",s.identifier);let u=F(`No lookup function registered for key: ${s.identifier}`);a={status:Xt.StatusCode.ERROR,data:u}}yield Xt.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 new w(`Fetch protocol handler for key prefix '${e}' already registered`,S.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(e,r)}unregisterLookupFunction(e,r){r!=null&&this.lookupFunctions.get(e)!==r||this.lookupFunctions.delete(e)}};var pw="1.0.0",mw="ping";var gw=M(qr(),1),ww=M(Sr(),1),yw=U("libp2p:ping"),Ja=class{constructor(e,r){this.components=e,this.started=!1,this.protocol=`/${r.protocolPrefix}/${mw}/${pw}`,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;Ue(r,r).catch(n=>{yw.error(n)})}async ping(e,r={}){yw("dialing %s to %p",this.protocol,e);let n=Date.now(),i=Lr(32),o=await this.components.connectionManager.openConnection(e,r),s,a=r.signal,c;if(a==null){s=new gw.TimeoutController(this.init.timeout),a=s.signal;try{(0,ww.setMaxListeners)?.(1/0,s.signal)}catch{}}try{c=await o.newStream([this.protocol],{signal:a});let u=gt(c,a),l=await Ue([i],u,async h=>await dt(h)),f=Date.now();if(l==null||!xe(i,l.subarray()))throw new w("Received wrong ping ack",S.ERR_WRONG_PING_ACK);return f-n}finally{s?.clear(),c?.close()}}};async function Ew(){throw new Error("Not supported in browsers")}var bw=M(vw(),1),Df=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,ja=(0,bw.default)(),jo=Df&&!ja,_w=ja&&!Df,Sw=ja&&Df,Aw=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!ja,Rw=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,uk=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Iw=typeof navigator<"u"&&navigator.product==="ReactNative";function Tw(t){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(t)||/^::1$/.test(t)}function Cw(t){let{address:e}=t.nodeAddress();return Tw(e)}var Bf=U("libp2p:nat"),Lf=7200;function mA(t=1024,e=65535){return Math.floor(Math.random()*(e-t+1)+t)}var ec=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??`${nw}@${Xa} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Lf,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Lf)throw new w(`NatManager ttl should be at least ${Lf} seconds`,S.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){jo||!this.enabled||this.started||(this.started=!0,this._start().catch(e=>{Bf.error(e)}))}async _start(){let e=this.components.transportManager.getAddrs();for(let r of e){let{family:n,host:i,port:o,transport:s}=r.toOptions();if(!r.isThinWaistAddress()||s!=="tcp"||Cw(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=Dn(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=mA();Bf(`opening uPnP connection from ${c}:${l} to ${i}:${o}`),await a.map({publicPort:l,localPort:o,localAddress:this.localAddress,protocol:s.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(Xh({family:4,address:c,port:l},s))}}async _getClient(){return this.client!=null?this.client:(this.client=await Ew({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(jo||this.client==null))try{await this.client.close(),this.client=void 0}catch(e){Bf.error(e)}}};var yA=U("libp2p:peer-record-updater"),tc=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 He({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(j("p2p").code))}),r=await Qe.seal(e,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(r)}).catch(e=>{yA.error("Could not update self peer record: %o",e)})}};var rc=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 new w(W.NOT_FOUND,S.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 Y={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};var we=U("libp2p:peer-store:address-book"),nc="change:multiaddrs";async function gA(){return!0}var ic=class{constructor(e,r,n){this.dispatchEvent=e,this.store=r,this.addressFilter=n??gA}async consumePeerRecord(e){we.trace("consumePeerRecord await write lock");let r=await this.store.lock.writeLock();we.trace("consumePeerRecord got write lock");let n,i,o;try{let s;try{s=He.createFromProtobuf(e.payload)}catch{return we.error("invalid peer record received"),!1}n=s.peerId;let a=s.multiaddrs;if(!n.equals(e.peerId))return we("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 Qe.createFromProtobuf(i.peerRecordEnvelope),l=He.createFromProtobuf(u.payload);if(l.seqNumber>=s.seqNumber)return we("sequence number was lower or equal to existing sequence number - stored: %d received: %d",l.seqNumber,s.seqNumber),!1}let c=await Pf(n,a,this.addressFilter,!0);o=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:e.marshal().subarray()}),we("stored provided peer record for %p",s.peerId)}finally{we.trace("consumePeerRecord release write lock"),r()}return this.dispatchEvent(new G(nc,{detail:{peerId:n,multiaddrs:o.addresses.map(({multiaddr:s})=>s),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:s})=>s)}})),!0}async getRawEnvelope(e){we.trace("getRawEnvelope await read lock");let r=await this.store.lock.readLock();we.trace("getRawEnvelope got read lock");try{return(await this.store.load(e)).peerRecordEnvelope}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{we.trace("getRawEnvelope release read lock"),r()}}async getPeerRecord(e){let r=await this.getRawEnvelope(e);if(r!=null)return await Qe.createFromProtobuf(r)}async get(e){e=Fe(e),we.trace("get wait for read lock");let r=await this.store.lock.readLock();we.trace("get got read lock");try{return(await this.store.load(e)).addresses}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{we.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Fe(e),!Array.isArray(r))throw we.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);we.trace("set await write lock");let n=await this.store.lock.writeLock();we.trace("set got write lock");let i=!1,o,s;try{let a=await Pf(e,r,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length&&a.length===o.addresses.length)return}catch(c){if(c.code!==Y.ERR_NOT_FOUND)throw c}s=await this.store.patchOrCreate(e,{addresses:a}),we("set multiaddrs for %p",e)}finally{we.trace("set multiaddrs for %p",e),we("set release write lock"),n()}this.dispatchEvent(new G(nc,{detail:{peerId:e,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new G("peer",{detail:{id:e,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async add(e,r){if(e=Fe(e),!Array.isArray(r))throw we.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);we.trace("add await write lock");let n=await this.store.lock.writeLock();we.trace("add got write lock");let i=!1,o,s;try{let a=await Pf(e,r,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length)return}catch(c){if(c.code!==Y.ERR_NOT_FOUND)throw c}s=await this.store.mergeOrCreate(e,{addresses:a}),we("added multiaddrs for %p",e)}finally{we.trace("set release write lock"),n()}this.dispatchEvent(new G(nc,{detail:{peerId:e,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new G("peer",{detail:{id:e,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async delete(e){e=Fe(e),we.trace("delete await write lock");let r=await this.store.lock.writeLock();we.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{addresses:[]})}finally{we.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new G(nc,{detail:{peerId:e,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Pf(t,e,r,n=!1){let i=[];return await Promise.all(e.map(async o=>{if(!br(o))throw we.error("multiaddr must be an instance of Multiaddr"),new w("multiaddr must be an instance of Multiaddr",Y.ERR_INVALID_PARAMETERS);await r(t,o)&&i.push({multiaddr:o,isCertified:n})})),i}var mr=U("libp2p:peer-store:key-book"),Dw="change:pubkey",oc=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async set(e,r){if(e=Fe(e),!(r instanceof Uint8Array))throw mr.error("publicKey must be an instance of Uint8Array to store data"),new w("publicKey must be an instance of PublicKey",Y.ERR_INVALID_PARAMETERS);mr.trace("set await write lock");let n=await this.store.lock.writeLock();mr.trace("set got write lock");let i=!1,o;try{try{if(o=await this.store.load(e),o.pubKey!=null&&xe(o.pubKey,r))return}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}await this.store.patchOrCreate(e,{pubKey:r}),i=!0}finally{mr.trace("set release write lock"),n()}i&&this.dispatchEvent(new G(Dw,{detail:{peerId:e,publicKey:r,oldPublicKey:o?.pubKey}}))}async get(e){e=Fe(e),mr.trace("get await write lock");let r=await this.store.lock.readLock();mr.trace("get got write lock");try{return(await this.store.load(e)).pubKey}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{mr("get release write lock"),r()}}async delete(e){e=Fe(e),mr.trace("delete await write lock");let r=await this.store.lock.writeLock();mr.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{pubKey:void 0})}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{mr.trace("delete release write lock"),r()}this.dispatchEvent(new G(Dw,{detail:{peerId:e,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Ge=U("libp2p:peer-store:metadata-book"),sc="change:metadata",ac=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){e=Fe(e),Ge.trace("get await read lock");let r=await this.store.lock.readLock();Ge.trace("get got read lock");try{return(await this.store.load(e)).metadata}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Ge.trace("get release read lock"),r()}return new Map}async getValue(e,r){e=Fe(e),Ge.trace("getValue await read lock");let n=await this.store.lock.readLock();Ge.trace("getValue got read lock");try{return(await this.store.load(e)).metadata.get(r)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{Ge.trace("getValue release write lock"),n()}}async set(e,r){if(e=Fe(e),!(r instanceof Map))throw Ge.error("valid metadata must be provided to store data"),new w("valid metadata must be provided",Y.ERR_INVALID_PARAMETERS);Ge.trace("set await write lock");let n=await this.store.lock.writeLock();Ge.trace("set got write lock");let i;try{try{i=await this.store.load(e)}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}await this.store.mergeOrCreate(e,{metadata:r})}finally{Ge.trace("set release write lock"),n()}this.dispatchEvent(new G(sc,{detail:{peerId:e,metadata:r,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(e,r,n){if(e=Fe(e),typeof r!="string"||!(n instanceof Uint8Array))throw Ge.error("valid key and value must be provided to store data"),new w("valid key and value must be provided",Y.ERR_INVALID_PARAMETERS);Ge.trace("setValue await write lock");let i=await this.store.lock.writeLock();Ge.trace("setValue got write lock");let o,s;try{try{o=await this.store.load(e);let a=o.metadata.get(r);if(a!=null&&xe(n,a))return}catch(a){if(a.code!==Y.ERR_NOT_FOUND)throw a}s=await this.store.mergeOrCreate(e,{metadata:new Map([[r,n]])})}finally{Ge.trace("setValue release write lock"),i()}this.dispatchEvent(new G(sc,{detail:{peerId:e,metadata:s.metadata,oldMetadata:o==null?new Map:o.metadata}}))}async delete(e){e=Fe(e),Ge.trace("delete await write lock");let r=await this.store.lock.writeLock();Ge.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(e,{metadata:new Map})}finally{Ge.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new G(sc,{detail:{peerId:e,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(e,r){e=Fe(e),Ge.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();Ge.trace("deleteValue got write lock");let i,o;try{o=await this.store.load(e),i=o.metadata,i.delete(r),await this.store.patch(e,{metadata:i})}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}finally{Ge.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new G(sc,{detail:{peerId:e,metadata:i,oldMetadata:o==null?new Map:o.metadata}}))}};var Ye=U("libp2p:peer-store:proto-book"),cc="change:protocols",uc=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){Ye.trace("get wait for read lock");let r=await this.store.lock.readLock();Ye.trace("get got read lock");try{return(await this.store.load(e)).protocols}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Ye.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Fe(e),!Array.isArray(r))throw Ye.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Ye.trace("set await write lock");let n=await this.store.lock.writeLock();Ye.trace("set got write lock");let i,o;try{try{if(i=await this.store.load(e),new Set([...r]).size===i.protocols.length)return}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(e,{protocols:r}),Ye("stored provided protocols for %p",e)}finally{Ye.trace("set release write lock"),n()}this.dispatchEvent(new G(cc,{detail:{peerId:e,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(e,r){if(e=Fe(e),!Array.isArray(r))throw Ye.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Ye.trace("add await write lock");let n=await this.store.lock.writeLock();Ye.trace("add got write lock");let i,o;try{try{if(i=await this.store.load(e),new Set([...i.protocols,...r]).size===i.protocols.length)return}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}o=await this.store.mergeOrCreate(e,{protocols:r}),Ye("added provided protocols for %p",e)}finally{Ye.trace("add release write lock"),n()}this.dispatchEvent(new G(cc,{detail:{peerId:e,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(e,r){if(e=Fe(e),!Array.isArray(r))throw Ye.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Ye.trace("remove await write lock");let n=await this.store.lock.writeLock();Ye.trace("remove got write lock");let i,o;try{try{i=await this.store.load(e);let s=new Set(i.protocols);for(let a of r)s.delete(a);if(i.protocols.length===s.size)return;r=Array.from(s)}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(e,{protocols:r})}finally{Ye.trace("remove release write lock"),n()}this.dispatchEvent(new G(cc,{detail:{peerId:e,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(e){e=Fe(e),Ye.trace("delete await write lock");let r=await this.store.lock.writeLock();Ye.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{protocols:[]})}finally{Ye.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new G(cc,{detail:{peerId:e,protocols:[],oldProtocols:n.protocols}}))}};var es;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.addresses!=null)for(let o of r.addresses)n.uint32(10),lc.codec().encode(o,n);if(r.protocols!=null)for(let o of r.protocols)n.uint32(18),n.string(o);if(r.metadata!=null)for(let o of r.metadata)n.uint32(26),fc.codec().encode(o,n);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:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.addresses.push(lc.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(fc.codec().decode(r,r.uint32()));break;case 4:i.pubKey=r.bytes();break;case 5:i.peerRecordEnvelope=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(es||(es={}));var lc;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(lc||(lc={}));var fc;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key!==""&&(n.uint32(10),n.string(r.key)),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)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.key=r.string();break;case 2:i.value=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(fc||(fc={}));var Nf=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},kf=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Bw=t=>globalThis.DOMException===void 0?new kf(t):new DOMException(t),Lw=t=>{let e=t.reason===void 0?Bw("This operation was aborted."):t.reason;return e instanceof Error?e:Bw(e)};function Of(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=e,s,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:f}=e;f.aborted&&u(Lw(f)),f.addEventListener("abort",()=>{u(Lw(f))})}let l=new Nf;s=o.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){u(f)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?c():i instanceof Error?u(i):(l.message=i??`Promise timed out after ${r} milliseconds`,u(l))},r),(async()=>{try{c(await t)}catch(f){u(f)}finally{o.clearTimeout.call(void 0,s)}})()});return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}var Mf="lock:worker:request-read",Uf="lock:worker:release-read",Ff="lock:master:grant-read",Kf="lock:worker:request-write",Vf="lock:worker:release-write",qf="lock:master:grant-write";var yn={},Hi=t=>{t.addEventListener("message",e=>{Hi.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Hi.dispatchEvent("message",t,e)})};Hi.addEventListener=(t,e)=>{yn[t]==null&&(yn[t]=[]),yn[t].push(e)};Hi.removeEventListener=(t,e)=>{yn[t]!=null&&(yn[t]=yn[t].filter(r=>r===e))};Hi.dispatchEvent=function(t,e,r){yn[t]!=null&&yn[t].forEach(n=>n(e,r))};var $f=Hi;var Pw=(t,e,r,n,i)=>(o,s)=>{if(s.data.type!==r)return;let a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>(o.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&&(o.removeEventListener("message",u),c())};o.addEventListener("message",u)}))}}))},Nw=(t,e,r,n)=>async()=>{let i=ms();return globalThis.postMessage({type:e,identifier:i,name:t}),await new Promise(o=>{let s=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",s),o(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",s)})},wA={singleProcess:!1},kw=t=>{if(t=Object.assign({},wA,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return $f.addEventListener("message",Pw(r,"requestReadLock",Mf,Uf,Ff)),$f.addEventListener("message",Pw(r,"requestWriteLock",Kf,Vf,qf)),r}return{isWorker:!0,readLock:r=>Nw(r,Mf,Ff,Uf),writeLock:r=>Nw(r,Kf,qf,Vf)}};var jn={},gn;async function zf(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await Of((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var EA=(t,e)=>{if(gn.isWorker===!0)return{readLock:gn.readLock(t,e),writeLock:gn.writeLock(t,e)};let r=new Kt({concurrency:1}),n;return{async readLock(){if(n!=null)return await zf(n,e);n=new Kt({concurrency:e.concurrency,autoStart:!1});let i=n,o=zf(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await zf(r,e)}}},xA={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Hf(t){let e=Object.assign({},xA,t);return gn==null&&(gn=kw(e),gn.isWorker!==!0&&(gn.addEventListener("requestReadLock",r=>{jn[r.data.name]!=null&&jn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),gn.addEventListener("requestWriteLock",async r=>{jn[r.data.name]!=null&&jn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),jn[e.name]==null&&(jn[e.name]=EA(e.name,e)),jn[e.name]}var Ow=U("libp2p:peer-store:store"),Mw="/peers/",hc=class{constructor(e){this.components=e,this.lock=Hf({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(e){if(e.type==null)throw Ow.error("peerId must be an instance of peer-id to store data"),new w("peerId must be an instance of peer-id",Y.ERR_INVALID_PARAMETERS);let r=e.toCID().toString();return new Ne(`${Mw}${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=es.decode(r),i=new Map;for(let o of n.metadata)i.set(o.key,o.value);return{...n,id:e,addresses:n.addresses.map(({multiaddr:o,isCertified:s})=>({multiaddr:Te(o),isCertified:s??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(e){if(e.pubKey!=null&&e.id.publicKey!=null&&!xe(e.pubKey,e.id.publicKey))throw Ow.error("peer publicKey bytes do not match peer id publicKey bytes"),new w("publicKey bytes do not match peer id publicKey bytes",Y.ERR_INVALID_PARAMETERS);let r=new Set,n=e.addresses.filter(s=>r.has(s.multiaddr.toString())?!1:(r.add(s.multiaddr.toString()),!0)).sort((s,a)=>s.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:s,isCertified:a})=>({multiaddr:s.bytes,isCertified:a})),i=[];[...e.metadata.keys()].sort().forEach(s=>{let a=e.metadata.get(s);a!=null&&i.push({key:s,value:a})});let o=es.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),o.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!==Y.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!==Y.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(o=>{i.set(o.multiaddr.toString(),o.isCertified)}),(r.addresses??[]).forEach(o=>{let s=o.multiaddr.toString(),c=!!i.get(s)||o.isCertified;i.set(s,c)}),await this.save({id:e,addresses:Array.from(i.entries()).map(([o,s])=>({multiaddr:Te(o),isCertified:s})),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:Mw})){let r=e.toString().split("/")[2],n=xt.decode(r);yield this.load(Hr(n))}}};var Ur;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.tags!=null)for(let o of r.tags)n.uint32(10),dc.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={tags:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.tags.push(dc.codec().decode(r,r.uint32()));break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(Ur||(Ur={}));var dc;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.name!=null&&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:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>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(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(dc||(dc={}));var kt=U("libp2p:peer-store"),pc=class extends Xe{constructor(e,r={}){super(),this.components=e,this.store=new hc(e),this.addressBook=new ic(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new oc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new ac(this.dispatchEvent.bind(this),this.store),this.protoBook=new uc(this.dispatchEvent.bind(this),this.store)}async forEach(e){kt.trace("getPeers await read lock");let r=await this.store.lock.readLock();kt.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||e(n)}finally{kt.trace("getPeers release read lock"),r()}}async all(){let e=[];return await this.forEach(r=>{e.push(r)}),e}async delete(e){kt.trace("delete await write lock");let r=await this.store.lock.writeLock();kt.trace("delete got write lock");try{await this.store.delete(e)}finally{kt.trace("delete release write lock"),r()}}async get(e){kt.trace("get await read lock");let r=await this.store.lock.readLock();kt.trace("get got read lock");try{return await this.store.load(e)}finally{kt.trace("get release read lock"),r()}}async has(e){kt.trace("has await read lock");let r=await this.store.lock.readLock();kt.trace("has got read lock");try{return await this.store.has(e)}finally{kt.trace("has release read lock"),r()}}async tagPeer(e,r,n={}){let i=n.value??0,o=Math.round(i),s=n.ttl??void 0;if(o!==i||o<0||o>100)throw new w("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=Ur.decode(a).tags),c=c.filter(u=>u.name!==r),c.push({name:r,value:o,expiry:s==null?void 0:BigInt(Date.now()+s)}),await this.metadataBook.setValue(e,"tags",Ur.encode({tags:c}).subarray())}async unTagPeer(e,r){let n=await this.metadataBook.getValue(e,"tags"),i=[];n!=null&&(i=Ur.decode(n).tags),i=i.filter(o=>o.name!==r),await this.metadataBook.setValue(e,"tags",Ur.encode({tags:i}).subarray())}async getTags(e){let r=await this.metadataBook.getValue(e,"tags"),n=[];r!=null&&(n=Ur.decode(r).tags);let i=BigInt(Date.now()),o=n.filter(s=>s.expiry==null||s.expiry>i);return o.length!==n.length&&await this.metadataBook.setValue(e,"tags",Ur.encode({tags:o}).subarray()),o.map(s=>({name:s.name,value:s.value??0}))}};var mc=class{constructor(e){this.dht=e}async provide(e){await zr(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 zr(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 new w("Not found","ERR_NOT_FOUND")}};var Gf;(function(t){let e;t.codec=()=>(e==null&&(e=me((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>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(s&7);break}}return i})),e),t.encode=r=>pe(r,t.codec()),t.decode=r=>de(r,t.codec())})(Gf||(Gf={}));var yc=async()=>{let t=await Oa("Ed25519"),e=await vA(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function vA(t){return await Gr(Dg(t.public),Bg(t))}var Qf=M(Sr(),1);var gc=globalThis.CustomEvent??Event;async function*Yf(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,i=new EventTarget,o=[],s=tr(),a=tr(),c=!1,u,l=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let p of t){if(o.length===r&&(s=tr(),await s.promise),l)break;let m={done:!1};o.push(m),p().then(y=>{m.done=!0,m.ok=!0,m.value=y,i.dispatchEvent(new gc("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new gc("task-complete"))})}c=!0,i.dispatchEvent(new gc("task-complete"))}catch(p){u=p,i.dispatchEvent(new gc("task-complete"))}});function f(){return n?o[0]?.done:!!o.find(p=>p.done)}function*h(){for(;o.length>0&&o[0].done;){let p=o[0];if(o.shift(),p.ok)yield p.value;else throw l=!0,s.resolve(),p.err;s.resolve()}}function*d(){for(;f();)for(let p=0;p<o.length;p++)if(o[p].done){let m=o[p];if(o.splice(p,1),p--,m.ok)yield m.value;else throw l=!0,s.resolve(),m.err;s.resolve()}}for(;;){if(f()||(a=tr(),await a.promise),u!=null)throw u;if(n?yield*h():yield*d(),c&&o.length===0)break}}var Xf=M(qr(),1);var wc="/libp2p/autonat/1.0.0";var H;(function(t){let e;(function(u){u.DIAL="DIAL",u.DIAL_RESPONSE="DIAL_RESPONSE"})(e=t.MessageType||(t.MessageType={}));let r;(function(u){u[u.DIAL=0]="DIAL",u[u.DIAL_RESPONSE=1]="DIAL_RESPONSE"})(r||(r={})),function(u){u.codec=()=>en(r)}(e=t.MessageType||(t.MessageType={}));let n;(function(u){u.OK="OK",u.E_DIAL_ERROR="E_DIAL_ERROR",u.E_DIAL_REFUSED="E_DIAL_REFUSED",u.E_BAD_REQUEST="E_BAD_REQUEST",u.E_INTERNAL_ERROR="E_INTERNAL_ERROR"})(n=t.ResponseStatus||(t.ResponseStatus={}));let i;(function(u){u[u.OK=0]="OK",u[u.E_DIAL_ERROR=100]="E_DIAL_ERROR",u[u.E_DIAL_REFUSED=101]="E_DIAL_REFUSED",u[u.E_BAD_REQUEST=200]="E_BAD_REQUEST",u[u.E_INTERNAL_ERROR=300]="E_INTERNAL_ERROR"})(i||(i={})),function(u){u.codec=()=>en(i)}(n=t.ResponseStatus||(t.ResponseStatus={}));let o;(function(u){let l;u.codec=()=>(l==null&&(l=me((f,h,d={})=>{if(d.lengthDelimited!==!1&&h.fork(),f.id!=null&&(h.uint32(10),h.bytes(f.id)),f.addrs!=null)for(let p of f.addrs)h.uint32(18),h.bytes(p);d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={addrs:[]},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.id=f.bytes();break;case 2:d.addrs.push(f.bytes());break;default:f.skipType(m&7);break}}return d})),l),u.encode=f=>pe(f,u.codec()),u.decode=f=>de(f,u.codec())})(o=t.PeerInfo||(t.PeerInfo={}));let s;(function(u){let l;u.codec=()=>(l==null&&(l=me((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.peer!=null&&(h.uint32(10),t.PeerInfo.codec().encode(f.peer,h)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.peer=t.PeerInfo.codec().decode(f,f.uint32());break;default:f.skipType(m&7);break}}return d})),l),u.encode=f=>pe(f,u.codec()),u.decode=f=>de(f,u.codec())})(s=t.Dial||(t.Dial={}));let a;(function(u){let l;u.codec=()=>(l==null&&(l=me((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.status!=null&&(h.uint32(8),t.ResponseStatus.codec().encode(f.status,h)),f.statusText!=null&&(h.uint32(18),h.string(f.statusText)),f.addr!=null&&(h.uint32(26),h.bytes(f.addr)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.status=t.ResponseStatus.codec().decode(f);break;case 2:d.statusText=f.string();break;case 3:d.addr=f.bytes();break;default:f.skipType(m&7);break}}return d})),l),u.encode=f=>pe(f,u.codec()),u.decode=f=>de(f,u.codec())})(a=t.DialResponse||(t.DialResponse={}));let c;t.codec=()=>(c==null&&(c=me((u,l,f={})=>{f.lengthDelimited!==!1&&l.fork(),u.type!=null&&(l.uint32(8),t.MessageType.codec().encode(u.type,l)),u.dial!=null&&(l.uint32(18),t.Dial.codec().encode(u.dial,l)),u.dialResponse!=null&&(l.uint32(26),t.DialResponse.codec().encode(u.dialResponse,l)),f.lengthDelimited!==!1&&l.ldelim()},(u,l)=>{let f={},h=l==null?u.len:u.pos+l;for(;u.pos<h;){let d=u.uint32();switch(d>>>3){case 1:f.type=t.MessageType.codec().decode(u);break;case 2:f.dial=t.Dial.codec().decode(u,u.uint32());break;case 3:f.dialResponse=t.DialResponse.codec().decode(u,u.uint32());break;default:u.skipType(d&7);break}}return f})),c),t.encode=u=>pe(u,t.codec()),t.decode=u=>de(u,t.codec())})(H||(H={}));var ue=U("libp2p:autonat"),Wf=4,bA=5e3,_A=6e4,Ec=class{constructor(e,r){this.components=e,this.started=!1,this._init=r,this.startupDelay=r.startupDelay??bA,this.refreshInterval=r.refreshInterval??_A,this._verifyExternalAddresses=this._verifyExternalAddresses.bind(this)}isStarted(){return this.started}async start(){this.started||(await this.components.registrar.handle(wc,e=>{this.handleIncomingAutonatStream(e).catch(r=>{ue.error(r)})},{maxInboundStreams:this._init.maxInboundStreams,maxOutboundStreams:this._init.maxOutboundStreams}),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.startupDelay),this.started=!0)}async stop(){await this.components.registrar.unhandle(wc),clearTimeout(this.verifyAddressTimeout),this.started=!1}async handleIncomingAutonatStream(e){let r=new Xf.TimeoutController(this._init.timeout);try{(0,Qf.setMaxListeners)?.(1/0,r.signal)}catch{}let n=this.components.addressManager.getAddresses().map(i=>i.toOptions().host);try{let i=gt(e.stream,r.signal),o=this;await Ue(i,Pt(),async function*(s){let a=await dt(s);if(a==null){ue("No message received"),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"No message was sent"}});return}let c;try{c=H.decode(a)}catch(m){ue.error("Could not decode message",m),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"Could not decode message"}});return}let u=c.dial;if(u==null){ue.error("Dial was missing from message"),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"No Dial message found in message"}});return}let l,f=u.peer;if(f==null||f.id==null){ue.error("PeerId missing from message"),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"missing peer info"}});return}try{l=Hr(f.id)}catch(m){ue.error("Invalid PeerId",m),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"bad peer id"}});return}if(ue("Incoming request from %p",l),!e.connection.remotePeer.equals(l)){ue("Target peer %p did not equal sending peer %p",l,e.connection.remotePeer),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_BAD_REQUEST,statusText:"peer id mismatch"}});return}let h=f.addrs.map(m=>Te(m)).filter(m=>{let y=m.toOptions().host===e.connection.remoteAddr.toOptions().host;return ue.trace("Request to dial %s was sent from %s is same host %s",m,e.connection.remoteAddr,y),y}).filter(m=>{let y=m.toOptions().host,g=!(Dn(y)??!1);return ue.trace("Host %s was public %s",y,g),g}).filter(m=>{let y=m.toOptions().host,g=!n.includes(y);return ue.trace("Host %s was not our host %s",y,g),g}).filter(m=>{let y=!!o.components.transportManager.transportForMultiaddr(m);return ue.trace("Transport for %s is supported %s",m,y),y}).map(m=>(m.getPeerId()==null&&(m=m.encapsulate(`/p2p/${l.toString()}`)),m));if(h.length===0){ue("No valid multiaddrs for %p in message",l),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_DIAL_REFUSED,statusText:"no dialable addresses"}});return}ue("Dial multiaddrs %s for peer %p",h.map(m=>m.toString()).join(", "),l);let d="",p=h[0];for await(let m of h){let y;p=m;try{if(y=await o.components.connectionManager.openConnection(m,{signal:r.signal}),!y.remoteAddr.equals(m))throw ue.error("Tried to dial %s but dialed %s",m,y.remoteAddr),new Error("Unexpected remote address");ue("Success %p",l),yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.OK,addr:y.remoteAddr.decapsulateCode(j("p2p").code).bytes}});return}catch(g){ue("Could not dial %p",l,g),d=g.message}finally{y!=null&&await y.close()}}yield H.encode({type:H.MessageType.DIAL_RESPONSE,dialResponse:{status:H.ResponseStatus.E_DIAL_ERROR,statusText:d,addr:p.bytes}})},Qt(),e.stream)}finally{r.clear()}}_verifyExternalAddresses(){this.verifyExternalAddresses().catch(e=>{ue.error(e)})}async verifyExternalAddresses(){if(clearTimeout(this.verifyAddressTimeout),!this.isStarted())return;let e=this.components.addressManager,r=e.getObservedAddrs().filter(o=>{let s=o.toOptions();return!(Dn(s.host)??!1)});if(r.length===0){ue("No public addresses found, not requesting verification"),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval);return}let n=new Xf.TimeoutController(this._init.timeout);try{(0,Qf.setMaxListeners)?.(1/0,n.signal)}catch{}let i=this;try{ue("verify multiaddrs %s",r.map(f=>f.toString()).join(", "));let o=H.encode({type:H.MessageType.DIAL,dial:{peer:{id:this.components.peerId.toBytes(),addrs:r.map(f=>f.bytes)}}}),a=(await yc()).toBytes(),c={},u=[];async function l(f){try{ue("Asking %p to verify multiaddr",f.id);let h=await i.components.connectionManager.openConnection(f.id,{signal:n.signal}),d=await h.newStream(wc,{signal:n.signal}),p=gt(d,n.signal),m=await Ue([o],Qt(),p,Pt(),async g=>await dt(g));if(m==null){ue("No response received from %s",h.remotePeer);return}let y=H.decode(m);if(y.type!==H.MessageType.DIAL_RESPONSE||y.dialResponse==null){ue("Invalid autonat response from %s",h.remotePeer);return}if(y.dialResponse.status===H.ResponseStatus.OK){let g=h.remoteAddr.toOptions(),x;if(g.family===4)x=g.host.split(".")[0];else if(g.family===6)x=g.host.split(":")[0];else{ue('Remote address "%s" was not IP4 or IP6?',g.host);return}if(u.includes(x)){ue("Already have response from network segment %d - %s",x,g.host);return}u.push(x)}return y.dialResponse}catch(h){ue.error(h)}}for await(let f of Yf(Es(this.components.peerRouting.getClosestPeers(a,{signal:n.signal}),h=>async()=>await l(h)),{concurrency:Wf}))try{if(f==null)continue;let h=f.addr==null?r[0]:Te(f.addr);if(ue("Autonat response for %s is %s",h,f.status),f.status===H.ResponseStatus.E_BAD_REQUEST||f.status===H.ResponseStatus.E_DIAL_REFUSED||f.addr==null&&r.length>1)continue;if(!r.some(p=>p.equals(h))){ue("Peer reported %s as %s but it was not in our observed address list",h,f.status);continue}let d=h.toString();if(c[d]==null&&(c[d]={success:0,failure:0}),f.status===H.ResponseStatus.OK?c[d].success++:f.status===H.ResponseStatus.E_DIAL_ERROR&&c[d].failure++,c[d].success===Wf){ue("%s is externally dialable",h),e.confirmObservedAddr(h);return}if(c[d].failure===Wf){ue("%s is not externally dialable",h),e.removeObservedAddr(h);return}}catch(h){ue.error("Could not verify external address",h)}}finally{n.clear(),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval)}}};var xc=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}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{e.beforeStart!=null&&await e.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{await e.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{e.beforeStop!=null&&await e.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{await e.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(e=>Er(e)).map(async e=>{e.afterStop!=null&&await e.afterStop()}))}get peerId(){if(this._peerId==null)throw new w("peerId not set","ERR_SERVICE_MISSING");return this._peerId}set peerId(e){this._peerId=e}get addressManager(){if(this._addressManager==null)throw new w("addressManager not set","ERR_SERVICE_MISSING");return this._addressManager}set addressManager(e){this._addressManager=e}get peerStore(){if(this._peerStore==null)throw new w("peerStore not set","ERR_SERVICE_MISSING");return this._peerStore}set peerStore(e){this._peerStore=e}get upgrader(){if(this._upgrader==null)throw new w("upgrader not set","ERR_SERVICE_MISSING");return this._upgrader}set upgrader(e){this._upgrader=e}get registrar(){if(this._registrar==null)throw new w("registrar not set","ERR_SERVICE_MISSING");return this._registrar}set registrar(e){this._registrar=e}get connectionManager(){if(this._connectionManager==null)throw new w("connectionManager not set","ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(e){this._connectionManager=e}get transportManager(){if(this._transportManager==null)throw new w("transportManager not set","ERR_SERVICE_MISSING");return this._transportManager}set transportManager(e){this._transportManager=e}get connectionGater(){if(this._connectionGater==null)throw new w("connectionGater not set","ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(e){this._connectionGater=e}get contentRouting(){if(this._contentRouting==null)throw new w("contentRouting not set","ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(e){this._contentRouting=e}get peerRouting(){if(this._peerRouting==null)throw new w("peerRouting not set","ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(e){this._peerRouting=e}get datastore(){if(this._datastore==null)throw new w("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 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 SA={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:vi},addressSorter:xi},transportManager:{faultTolerance:mn.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},identify:{protocolPrefix:"ipfs",host:{agentVersion:Cf},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1,maxObservedAddresses:10},ping:{protocolPrefix:"ipfs",maxInboundStreams:2,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},autonat:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:3e4,startupDelay:5e3,refreshInterval:6e4}};function Uw(t){let e=Zr(SA,t);if(e.transports==null||e.transports.length<1)throw new w(W.ERR_TRANSPORTS_REQUIRED,S.ERR_TRANSPORTS_REQUIRED);if(e.connectionEncryption==null||e.connectionEncryption.length===0)throw new w(W.CONN_ENCRYPTION_REQUIRED,S.CONN_ENCRYPTION_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(W.ERR_PROTECTOR_REQUIRED,S.ERR_PROTECTOR_REQUIRED);return e.identify.host.agentVersion===Cf&&(Aw||_w?e.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(jo||Rw||Sw||Iw)&&(e.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),e}var Fw=Symbol.for("@libp2p/peer-discovery");var vc=class extends Xe{get[Fw](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get lan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findProviders(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findPeer(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}getClosestPeers(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}provide(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}put(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async getMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async setMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async refreshRoutingTable(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}};var bc=class extends Xe{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}get multicodecs(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getPeers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getTopics(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}subscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}unsubscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getSubscribers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}async publish(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}};var yr=U("libp2p"),Zf=class extends Xe{constructor(e){super(),this.started=!1,this.peerId=e.peerId;let r=this.components=new xc({peerId:e.peerId,datastore:e.datastore??new ws,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 pc(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",s=>{let{detail:a}=s;this.dispatchEvent(new G("peer:discovery",{detail:a}))}),e.connectionProtector!=null&&(this.components.connectionProtector=e.connectionProtector(r)),this.components.upgrader=new Wa(this.components,{connectionEncryption:(e.connectionEncryption??[]).map(s=>this.configureComponent(s(this.components))),muxers:(e.streamMuxers??[]).map(s=>this.configureComponent(s(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.components.transportManager=new Ua(this.components,e.transportManager),this.connectionManager=this.components.connectionManager=new Qs(this.components,e.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",s=>{this.dispatchEvent(new G("peer:disconnect",{detail:s.detail}))}),this.components.connectionManager.addEventListener("peer:connect",s=>{this.dispatchEvent(new G("peer:connect",{detail:s.detail}))}),this.registrar=this.components.registrar=new Ya(this.components),this.components.addressManager=new Cs(this.components,e.addresses),this.configureComponent(new tc(this.components));let n=Yn.generateOptions();this.keychain=this.configureComponent(new Yn(this.components,{...n,...e.keychain})),this.services.push(new ec(this.components,e.nat)),this.identifyService=new zi(this.components,{...e.identify}),this.configureComponent(this.identifyService),e.dht!=null?this.dht=this.components.dht=e.dht(this.components):this.dht=new vc,e.pubsub!=null?this.pubsub=this.components.pubsub=e.pubsub(this.components):this.pubsub=new bc;let i=(e.peerRouters??[]).map(s=>this.configureComponent(s(this.components)));e.dht!=null&&(i.push(this.configureComponent(new rc(this.dht))),this.dht.addEventListener("peer",s=>{this.onDiscoveryPeer(s)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new Rs(this.components,{...e.peerRouting,routers:i}));let o=(e.contentRouters??[]).map(s=>this.configureComponent(s(this.components)));e.dht!=null&&o.push(this.configureComponent(new mc(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new Ts(this.components,{routers:o})),this.fetchService=this.configureComponent(new Za(this.components,{...e.fetch})),this.pingService=this.configureComponent(new Ja(this.components,{...e.ping})),this.autonatService=this.configureComponent(new Ec(this.components,{...e.autonat})),e.relay!=null&&(this.circuitService=this.configureComponent(e.relay(this.components)));for(let s of e.peerDiscovery??[])this.configureComponent(s(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)});e.transports.forEach(s=>{this.components.transportManager.add(this.configureComponent(s(this.components)))})}configureComponent(e){return Er(e)&&this.services.push(e),e}async start(){if(this.started)return;this.started=!0,yr("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(yr("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async r=>{r.beforeStart!=null&&await r.beforeStart()})),await Promise.all(this.services.map(async r=>{await r.start()})),await Promise.all(this.services.map(async r=>{r.afterStart!=null&&await r.afterStart()})),yr("libp2p has started")}catch(r){throw yr.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.started&&(yr("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(async e=>{await e.stop()})),await Promise.all(this.services.map(async e=>{e.afterStop!=null&&await e.afterStop()})),yr("libp2p has stopped"))}isStarted(){return this.started}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new Ir;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return await this.components.connectionManager.openConnection(e,r)}async dialProtocol(e,r,n={}){if(r==null)throw new w("no protocols were provided to open a stream",S.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new w("no protocols were provided to open a stream",S.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){br(e)&&(e=ae(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e)}async getPublicKey(e,r={}){if(yr("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 new w("Public key was not in the peer store and the DHT is not enabled",S.ERR_NO_ROUTERS_AVAILABLE);let i=Me([F("/pk/"),e.multihash.digest]);for await(let o of this.dht.get(i,r))if(o.name==="VALUE"){let s=Mo(o.value);return await this.peerStore.keyBook.set(e,o.value),s.bytes}throw new w(`Node not responding with its public key: ${e.toString()}`,S.ERR_INVALID_RECORD)}async fetch(e,r,n={}){if(br(e)){let i=ae(e.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[e]),e=i}return await this.fetchService.fetch(e,r,n)}async ping(e,r={}){if(br(e)){let n=ae(e.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[e]),e=n}return await this.pingService.ping(e,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()){yr.error(new Error(S.ERR_DISCOVERED_SELF));return}r.multiaddrs.length>0&&this.components.peerStore.addressBook.add(r.id,r.multiaddrs).catch(n=>{yr.error(n)}),r.protocols.length>0&&this.components.peerStore.protoBook.set(r.id,r.protocols).catch(n=>{yr.error(n)}),this.dispatchEvent(new G("peer:discovery",{detail:r}))}};async function Kw(t){if(t.peerId==null){let e=t.datastore;if(e!=null)try{let r=new Yn({datastore:e},Zr(Yn.generateOptions(),t.keychain));t.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return t.peerId==null&&(t.peerId=await yc()),new Zf(Uw(t))}async function AA(t){let e=await Kw(t);return t.start!==!1&&await e.start(),e}return Gw(RA);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/secp256k1/lib/esm/index.js: